robotframework-demo/Project/task4/Resource/RE7_Storage/KeyWord.robot

716 lines
47 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** Settings ***
Library SSHLibrary
Library Selenium2Library
Resource ElementPath.robot
Resource ../RE0_Common/KeyWord.robot
Resource ../RE10_System/KeyWord.robot
Resource ../RE3_DPM/File_KeyWord.robot
Library MongoDBLibrary
*** Keywords ***
介质添加
[Arguments] ${Create_Media_Name} ${Media_Type} ${Media_Path}=none
循环点击 ${Add_Media} ${Input_Media_name}
Sleep 10s
Run Keyword If '${Media_Type}'=='PT' 创建普通介质 ${Create_Media_Name} ${Media_Path}
... ELSE IF '${Media_Type}'=='YDCS' 创建源端重删介质 ${Create_Media_Name} ${Media_Path}
... ELSE IF '${Media_Type}'=='MBD' 创建目标端重删介质 ${Create_Media_Name} ${Media_Path}
... ELSE IF '${Media_Type}'=='CDK' 创建磁带介质
... ELSE IF '${Media_Type}'=='GPK' 添加OSM归档介质
... ELSE IF '${Media_Type}'=='S3_GD' 创建S3归档介质 ${Create_Media_Name}
... ELSE IF '${Media_Type}'=='S3_PT' 创建S3普通介质 ${Create_Media_Name}
... ELSE IF '${Media_Type}'=='D2T' 添加D2T介质 ${Create_Media_Name}
创建普通介质
[Arguments] ${PT_Name} ${PT_Path} # 普通介质名称|普通介质路径
循环点击 ${Select_BC_Node} ${Choice_BC}
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${PT_Name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_PT} 选择普通介质 定位普通介质输入框失败
元素输入 ${Input_Media_Path} ${PT_Path} 定位介质名称输入框失败
循环点击 ${Finish_AddMedia} ${Success_Confirm}
Sleep 20s
元素点击 ${Success_Confirm} 点击确认介质添加成功 定位添加成功确定按钮失败
元素点击 xpath=//td[text()="${PT_Name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${PT_Name}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${PT_Name}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 60s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
介质删除
[Arguments] ${PT_Name} # 普通介质名称
循环点击 xpath=//td[text()="${PT_Name}"]/..//button[text()="卸载"] ${Umount_MDS}
Sleep 5s
元素点击 ${Umount_MDS} 点击卸载确认框内的确定 定位卸载确认框失败
元素点击 ${Success_Confirm} 确定卸载成功 卸载介质失败
元素点击 ${Renovate} 点击刷新介质状态 定位刷新按钮失败
元素点击 ${Success_Confirm} 确定刷新成功 定位刷新成功弹窗
元素点击 xpath=//td[text()="${PT_Name}"]/..//button[text()="删除"] 点击删除介质 定位删除介质按钮失败
Sleep 5s
元素点击 ${Confirm_Delete_Disk} 确认删除介质 定位确认删除介质失败
元素点击 ${Success_Confirm} 确定删除成功 删除介质失败
创建源端重删介质
[Arguments] ${YDCS_Name} ${YDCS_Path} # 源端重删介质名称
元素输入 ${Input_Media_name} ${YDCS_Name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_YDCS} 选择普通介质 定位普通介质输入框失败
元素输入 ${Input_Media_Path} ${YDCS_Path} 定位介质名称输入框失败
元素点击 ${Finish_AddMedia} 点击介质添加按钮 定位介质添加按钮失败
Sleep 20s
元素点击 ${Success_Confirm} 点击确认介质添加成功 定位添加成功确定按钮失败
元素点击 xpath=//td[text()="${YDCS_Name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${YDCS_Name}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${YDCS_Name}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
创建目标端重删介质
[Arguments] ${MBD_Name} ${MBD_Path} # 目标端重删介质名称
元素输入 ${Input_Media_name} ${MBD_Name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_MBD} 选择普通介质 定位普通介质输入框失败
元素输入 ${Input_Media_Path} ${MBD_Path} 定位介质名称输入框失败
元素点击 ${Finish_AddMedia} 点击介质添加按钮 定位介质添加按钮失败
Sleep 20s
元素点击 ${Success_Confirm} 点击确认介质添加成功 定位添加成功确定按钮失败
元素点击 xpath=//td[text()="${MBD_Name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${MBD_Name}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${MBD_Name}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
主IP设置
[Documentation] 功能设置副IP为主IP再将原来的主IP设置回去
...
... 使用方法主IP设置
...
... 变量:无
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Interface_Setting} 点击切换到通信接口设置 定位通信接口设置页面失败
元素点击 xpath=//span[contains(text(),"${Legal_Public_IP}")]/../..//div[@class="address_item_second"]/span[text()="设为主IP"] 点击设置副IP${Legal_Public_IP}为主IP 定位设副IP为主IP失败
元素点击 ${Success_Confirm} 确认修改成功 定位确认修改成功失败
元素点击 xpath=//span[contains(text(),"${Plantform_BC_IP}")]/../..//div[@class="address_item_second"]/span[text()="设为主IP"] 点击设置副IP${Plantform_BC_IP}为主IP 定位设副IP为主IP失败
元素点击 ${Success_Confirm} 确认修改成功 定位确认修改成功失败
Wait Until Element Is Visible xpath=//span[text()="外网IP地址1: ${Plantform_BC_IP}"]/../..//span[text()="主IP"] 5s 切换主IP失败了
删除外网地址
[Arguments] ${ip} # 外网地址
元素点击 xpath=//span[contains(text(),"${ip}")]/../..//div[@class="address_item_second"]/span[text()="删除"] 点击删除外网IP 定位外网IP删除按钮失败
元素点击 ${Button_Del_Net} 点击确认删除按钮 定位确认删除按钮失败
元素点击 ${Button_Success_Confirm} 点击确认完成外网地址的删除 外网地址确认删除成功
创建卷组
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Storage_Manage} 进入磁盘管理页面 定位磁盘管理栏失败
Sleep 5s
元素点击 ${Volumegroup_Manage} 进入卷组管理页面 定位卷组管理栏失败
元素点击 ${Create_VolumeGroup} 点击创建卷组 定位创建卷组失败
元素输入 ${Input_VolumeGroupName} VG 定位卷组名称输入失败
元素点击 ${Select_disk} 点击选择磁盘 定位选择磁盘失败
Sleep 10s
元素点击 ${Chosen_Volume} 勾选指定磁盘 定位要勾选的磁盘失败
Sleep 5s
元素点击 ${Confirm_Chosen_Disk} 确定勾选的卷组 定位卷组勾选确定按钮失败
元素点击 ${Confirm_Create_VG} 确定创建卷组 定位卷组创建确定按钮失败
Wait Until Element Is Visible xpath=//td[contains(text(),"VG")] 30s 定位建成的卷组失败
Log 卷组创建完毕
创建卷
[Arguments] ${Volume_name}
元素点击 ${Volume_Manage} 进入卷管理页面 定位卷管理页面失败
Sleep 5s
元素点击 ${Create_Volume} 点击创建卷 定位创建卷按钮失败
Sleep 5s
元素点击 ${Select_VG_Group} 点击展开已创建的卷组 定位已经创建的卷组失败
元素点击 ${VG} 点击选择创建的VG卷 定位VG卷失败
元素输入 ${Input_VolumeName} ${Volume_name} 定位卷名称输入框失败
元素输入 ${Input_Capacity} 51 定位容量大小输入框失败
元素点击 ${Select_Capacity_Uint} 点击选择容量大小 定位容量类型选择框失败
元素点击 ${Option_Capacity_GB} 选择GB单位 定位GB单位失败
${Error_Alert} Run Keyword And Return Status Wait Until Element Is Visible ${Confirm_Button}
Run Keyword If '${Error_Alert}'=='True' 元素点击 ${Confirm_Button} 输入为空 定位输入报错弹窗失败
循环点击 ${Confirm_Create_Volume} ${Success_Confirm}
Sleep 2s
元素点击 ${Success_Confirm} 创建卷成功 定位创建卷成功确定按钮失败
Sleep 2s
创建阵列
[Arguments] ${Raid_Type}
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Storage_Manage} 进入磁盘管理页面 定位磁盘管理栏失败
元素点击 ${Raid_Manage} 进入阵列管理页面 定位阵列管理页面失败
元素点击 ${Create_Raid} 点击创建阵列按钮 定位创建阵列按钮失败
Run Keyword If '${Raid_Type}'=='Raid0' 创建Raid0
... ELSE IF '${Raid_Type}'=='Raid1' 创建Raid1
... ELSE IF '${Raid_Type}'=='Raid5' 创建Raid5
... ELSE IF '${Raid_Type}'=='Raid10' 创建Raid10
创建Raid0
元素点击 ${Select_Raid} 点击展开阵列类型选择 定位阵列类型失败
元素点击 ${Raid0} 选择创建Raid0 定位Raid0阵列创建失败
元素点击 ${Raid_Select_Disk} 点击选择磁盘 定位选择磁盘按钮失败
Sleep 5s
元素点击 ${Raid_First_Disk} 点击勾选第一行的磁盘 定位第一行的磁盘失败
元素点击 ${Finish_Chose_Disk} 确认选择的磁盘 定位确认选择的磁盘失败
循环点击 ${Confirm_Create_Raid} ${Success_Confirm}
Sleep 5s
元素点击 ${Success_Confirm} 阵列创建成功 定位创建成功弹窗失败
Sleep 60s
元素点击 ${Volumegroup_Manage} 进入卷组管理页面 定位卷组管理栏失败
元素点击 ${Raid_Manage} 进入阵列管理页面 定位阵列管理页面失败
Wait Until Element Is Visible ${Raid0_Status} 30s Raid0创建状态失败
Wait Until Element Is Visible ${Raid0_Capacity} 30s Raid0大小获取失败
创建Raid1
元素点击 ${Select_Raid} 点击展开阵列类型选择 定位阵列类型失败
元素点击 ${Raid1} 选择创建Raid1 定位Raid1阵列创建失败
元素点击 ${Raid_Select_Disk} 点击选择磁盘 定位选择磁盘按钮失败
Sleep 5s
元素点击 ${Raid_First_Disk} 点击勾选第一行的磁盘 定位第一行的磁盘失败
元素点击 ${Raid_Second_Disk} 点击勾选第二行的磁盘 定位第二行的磁盘失败
元素点击 ${Finish_Chose_Disk} 确认选择的磁盘 定位确认选择的磁盘失败
元素点击 ${Confirm_Create_Raid} 确认创建阵列 定位确认创建阵列按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 阵列创建成功 定位创建成功弹窗失败
Sleep 300s
Execute Javascript window.location.reload();
Wait Until Element Is Visible ${Raid1_Status} 30s Raid1创建状态失败
Wait Until Element Is Visible ${Raid1_Capacity} 30s Raid1大小获取失败
创建Raid5
元素点击 ${Select_Raid} 点击展开阵列类型选择 定位阵列类型失败
元素点击 ${Raid5} 选择创建Raid5 定位Raid5阵列创建失败
元素点击 ${Raid_Select_Disk} 点击选择磁盘 定位选择磁盘按钮失败
Sleep 5s
元素点击 ${Raid_First_Disk} 点击勾选第一行的磁盘 定位第一行的磁盘失败
元素点击 ${Raid_Second_Disk} 点击勾选第二行的磁盘 定位第二行的磁盘失败
元素点击 ${Raid_Third_Disk} 点击勾选第三行的磁盘 定位第三行的磁盘失败
元素点击 ${Finish_Chose_Disk} 确认选择的磁盘 定位确认选择的磁盘失败
元素点击 ${Confirm_Create_Raid} 确认创建阵列 定位确认创建阵列按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 阵列创建成功 定位创建成功弹窗失败
Sleep 300s
Execute Javascript window.location.reload();
Wait Until Element Is Visible ${Raid5_Status} 30s Raid5创建状态失败
Wait Until Element Is Visible ${Raid5_Capacity} 30s Raid5大小获取失败
创建Raid10
元素点击 ${Select_Raid} 点击展开阵列类型选择 定位阵列类型失败
元素点击 ${Raid10} 选择创建Raid10 定位Raid10阵列创建失败
元素点击 ${Raid_Select_Disk} 点击选择磁盘 定位选择磁盘按钮失败
Sleep 5s
元素点击 ${Raid_First_Disk} 点击勾选第一行的磁盘 定位第一行的磁盘失败
元素点击 ${Raid_Second_Disk} 点击勾选第二行的磁盘 定位第二行的磁盘失败
元素点击 ${Raid_Third_Disk} 点击勾选第三行的磁盘 定位第三行的磁盘失败
元素点击 ${Raid_forth_Disk} 点击勾选第四行的磁盘 定位第四行的磁盘失败
元素点击 ${Finish_Chose_Disk} 确认选择的磁盘 定位确认选择的磁盘失败
元素点击 ${Confirm_Create_Raid} 确认创建阵列 定位确认创建阵列按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 阵列创建成功 定位创建成功弹窗失败
Sleep 300s
Execute Javascript window.location.reload();
Wait Until Element Is Visible ${Raid10_Status} 30s Raid10创建状态失败
Wait Until Element Is Visible ${Raid10_Capacity} 30s Raid10大小获取失败
磁带库映射
[Arguments] ${BC_IP} ${CD_IP} # 黑方IP地址|磁带库IP地址
Open Connection ${BC_IP} ${CD_IP}
SSHLibrary.Login ${Plantform_BC_Name} ${Plantform_BC_PWD}
${CD}= Execute Command iscsiadm -m discovery -t sendtargets -p ${CD_IP}|awk '{print $NF}'
Start Command iscsiadm -m node -T ${CD} -p ${CD_IP} -l
Close Connection
解除磁带库映射
[Arguments] ${BC_IP} ${CD_IP} # 黑方IP地址|磁带库IP地址
Open Connection ${BC_IP} ${CD_IP}
SSHLibrary.Login ${Plantform_BC_Name} ${Plantform_BC_PWD}
${CD}= Execute Command iscsiadm --mode session|grep ${CD_IP}|awk '{print $4}'
Start Command iscsiadm --mode node --target ${CD} --logout
Close Connection
磁带库扫描
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Tape_Manager} 进入磁带库管理页面 定位磁带库管理失败
元素点击 ${Scan_Tape} 点击扫描磁带 定位磁带扫描按钮失败
Sleep 20s
${Tape_1} Get Text ${First_Tape_Name}
${Tape_2} Get Text ${Sec_Tape_Name}
元素点击 ${Scan_Tape_Confirm} 点击确认完成磁带添加 磁带添加失败
Sleep 20s
元素点击 ${Scan_Success_Confirm} 点击确定 定位导入成功弹窗失败
驱动配置 ${Tape_1} XYZZY_A1 XYZZY_A2 XYZZY_A3 XYZZY_A4
驱动配置 ${Tape_2} XYZZY_B1 XYZZY_B2 XYZZY_B3 XYZZY_B4
驱动配置
[Arguments] ${Tape_Name} ${SerialNumber_1} ${SerialNumber_2} ${SerialNumber_3} ${SerialNumber_4}
循环点击 xpath=//span[text()="${Tape_Name}"] ${Driver_Config}
循环点击 ${Driver_Config} ${Input_First_Driver}
元素输入 ${Input_First_Driver} ${SerialNumber_1} 定位第一行序列号输入失败
元素输入 ${Input_Sec_Driver} ${SerialNumber_2} 定位第一行序列号输入失败
元素输入 ${Input_Third_Driver} ${SerialNumber_3} 定位第一行序列号输入失败
元素输入 ${Input_Four_Driver} ${SerialNumber_4} 定位第一行序列号输入失败
元素点击 ${Driver_Config_Confirm} 点击确定完成驱动序列号配置 定位确定按钮失败
添加磁带存储池
[Arguments] ${CD_Name} ${Tape_Library} # 存储池名称|磁带库名称
[Documentation] 功能:创建磁带存储池
...
...
... 变量:存储池名称|所属磁带库名称
元素点击 ${Create_Tape_Pool} 点击新建按钮 定位新建按钮失败
元素输入 ${Input_Tape_Pool_Name} ${CD_Name} 定位存储池名称输入框失败
元素点击 ${Select_Tapelibrary} 点击展开磁带库下拉框 定位磁带库下拉框失败
元素点击 xpath=//option[@label="${Tape_Library}"] 选择所属磁带库成功 定位所属磁带库选项失败
BuiltIn.Run Keyword If '${Tape_Library}'=='L7000105XYZZY_A' Click Element xpath=//div[text()="E01005L4"]/../..//i
... ELSE IF '${Tape_Library}'=='L800105XYZZY_B' Click Element xpath=//div[text()="G03005TA"]/../..//i
元素点击 ${Create_Pool_Confirm} 点击确定完成存储池创建 定位确定按钮失败
元素点击 ${Create_Success_Confirm} 存储池创建成功 定位存储池创建成功,确定按钮失败
创建磁带介质
元素点击 ${Select_BC_Node} 点击展开介质节点列表 定位介质节点列表下拉框失败
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${D2D2T} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_CD} 选择磁带介质 定位磁带选项失败
元素点击 ${Select_CD_Pool} 点击展开存储池名称下拉列表 定位介质名称输入框失败
元素点击 xpath=//option[text()="${D2D2T}"] 选择指定磁带存储池 定位存储池失败
元素点击 ${Finish_AddMedia} 点击介质添加按钮 定位介质添加按钮失败
Sleep 20s
元素点击 ${Success_Confirm} 点击确认介质添加成功 定位添加成功确定按钮失败
元素点击 xpath=//td[text()="${D2D2T}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${D2D2T}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${D2D2T}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
创建重删库
[Arguments] ${CSK_Name} ${interValue_Type}
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
元素点击 ${Add_CSK} 点击添加重删库 定位添加重删库按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//*[@id="loadingPop"]/p
Exit For Loop If ${media_status}==False
Sleep 10s
END
元素点击 ${Dedup_SelectBC} 点击展开服务器下拉框 定位服务器下拉框失败
元素点击 ${Dedup_BC} 点击选择服务器 定位服务器失败
Sleep 15s
Log 等待存储刷新完毕
元素输入 ${Input_CSK_Name} ${CSK_Name} 定位重删库名称输入框失败
元素点击 ${interValue} 点击分块区间下拉框 定位分块区间下拉框失败
Run Keyword If '${interValue_Type}'=='16K' 元素点击 ${interValue16K} 点击分块区间16K 定位16K分块区间失败
... ELSE IF '${interValue_Type}'=='32K' 元素点击 ${interValue32K} 点击分块区间32K 定位32K分块区间失败
... ELSE IF '${interValue_Type}'=='64K' 元素点击 ${interValue64K} 点击分块区间64K 定位64K分块区间失败
... ELSE IF '${interValue_Type}'=='128K' 元素点击 ${interValue128K} 点击分块区间128K 定位128K分块区间失败
元素点击 ${dedupstore} 点击第一个存储 定位第一个存储失败
元素点击 ${addCSKSure} 点击确认 定位确认按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible ${addsuccessSure}
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${addsuccessSure} 确认重删库添加成功 定位添加成功按钮失败
启用重删库
[Arguments] ${CSK_Name} # 重删库名称
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
元素点击 xpath=//div[text()="${CSK_Name}"]/../..//span[@id="buttonItem1"] 定位对应重删库启用按钮成功 定位对应重删库启用按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible ${addsuccessSure}
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${addsuccessSure} 定位启用重删库成功按钮成功 定位启用重删库成功按钮失败
FOR ${n} IN RANGE 10
${dedup_status} Run Keyword And Return Status Wait Until Element Is Visible //div[text()="${CSK_Name}"]/../../div[2]/div[1]/div[3]/div/span[contains(text(),'已启用')]
Exit For Loop If ${dedup_status}==True
Sleep 10s
END
BuiltIn.Run Keyword If ${dedup_status}==True log 重删库启用成功
... ELSE log 重删库启用失败 Fail
校验重删库详情
[Arguments] ${CSK_Name} ${CSK_AllStore} ${CSK_interValue} ${CSK_Port} ${CSK_OriSize} ${CSK_ActSize} # 重删库名称|重删库总容量|分块区间|端口号|原始大小|实际大小
元素点击 xpath=//div[text()="${CSK_Name}"]/../div[2]/button[2] 重删库详情按钮定位成功 重删库详情按钮定位失败
验证文字 ${cskDetailName} ${CSK_Name}
log 重删库名称校验成功
Comment 验证文字 ${cskDetailAllStore} ${CSK_AllStore}
Comment log 重删库总容量校验成功
验证文字 ${cskDetailInterValue} ${CSK_interValue}
log 分块区间校验成功
验证文字 ${cskDetailPort} ${CSK_Port}
log 端口号校验成功
验证文字 ${cskDetailOriStore} ${CSK_OriSize}
log 原始大小校验成功
验证文字 ${cskDetailActStore} ${CSK_ActSize}
log 实际大小校验成功
停用重删库
[Arguments] ${CSK_Name} # 重删库名称
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
元素点击 xpath=//div[text()="${CSK_Name}"]/../..//span[@id="buttonItem2"] 定位对应重删库停用按钮成功 定位对应重删库停用按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible ${addsuccessSure}
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${addsuccessSure} 定位停用重删库成功按钮成功 定位停用重删库成功按钮失败
FOR ${n} IN RANGE 10
${dedup_status} Run Keyword And Return Status Wait Until Element Is Visible //div[text()="${CSK_Name}"]/../../div[2]/div[1]/div[3]/div/span[contains(text(),'可启用')]
Exit For Loop If ${dedup_status}==True
Sleep 10s
END
BuiltIn.Run Keyword If ${dedup_status}==True log 重删库停用成功
... ELSE log 重删库停用失败 Fail
扩容重删库并校验大小
[Arguments] ${CSK_Name} ${CSK_AllStore} # 重删库名称|重删库总容量
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
元素点击 xpath=//div[text()="${CSK_Name}"]/../..//span[@id="buttonItem5"] 定位对应重删库扩容按钮成功 定位对应重删库扩容按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//*[@id="loadingPop"]/p
Exit For Loop If ${media_status}==False
Sleep 10s
END
元素点击 ${dedupFristStore} 点击第一个存储 定位第一个存储失败
元素点击 ${addStoreSure} 点击确认 定位确认按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible ${addsuccessSure}
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${addsuccessSure} 确认重删库扩容成功 定位扩容成功按钮失败
元素点击 xpath=//div[text()="${CSK_Name}"]/../div[2]/button[2] 重删库详情按钮定位成功 重删库详情按钮定位失败
验证文字 //span[text()="重删库总容量:"]/../../div[2]/span ${CSK_AllStore}
log 重删库总容量校验成功
元素点击 ${CloseDetail} 点击关闭重删库详情 关闭重删库详情按钮定位失败
获取重删库指纹数量
[Arguments] ${CSK_Name} #重删库名称
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
sleep 2s
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
sleep 2s
元素点击 //div[text()="${CSK_Name}"]/../div[2]/button[2] 重删库详情按钮定位成功 重删库详情按钮定位失败
sleep 2s
${Text_zhiwenRecords}= Get Text ${cskDetailZhiwen}
元素点击 ${CloseDetail} 点击关闭重删库详情 关闭重删库详情按钮定位失败
${tmp}= Strip String ${Text_zhiwenRecords} characters=个
${Num_zhiwen}= Strip String ${tmp}
Return From Keyword ${Num_zhiwen}
Log 指纹数目获取成功
指纹数量对比
[Arguments] ${Num_zhiwenBefore} ${Num_zhiwenAfter}
log 开始指纹数量对比
${status}= Evaluate ${Num_zhiwenBefore}<=${Num_zhiwenAfter}
Should Be True ${status}
log '${Num_zhiwenBefore}'<='${Num_zhiwenAfter}',指纹校验成功
log 指纹数量对比校验通过
sleep 2s
删除备份集
[Arguments] ${agent_name} # 代理名称
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
Sleep 3s
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Sleep 3s
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 3s
元素输入 ${Input_PolicyName_Search} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Button_Search_Bk} 点击确定进行搜索 定位策略名搜索按钮失败
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup0"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 3s
循环点击 ${Del_Local_Confirm} ${Success_Confirm}
Sleep 10s
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
Sleep 30s
执行重删清理脚本
[Arguments] ${ip} ${user} ${pwd} ${CSK_Name} #黑方IP|黑方用户名|黑方密码|重删库名称
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
Execute Command /opt/bksoft/ubackup/bin/dedupserver_clean.sh ${CSK_Name}
log 执行清理脚本第一次
sleep 30s
Execute Command /opt/bksoft/ubackup/bin/dedupserver_clean.sh ${CSK_Name}
log 执行清理脚本第二次
sleep 30s
Close Connection
删除重删库
[Arguments] ${CSK_Name} #重删库名称
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${dedupManage} 进入重删库管理页面 定位重删库管理失败
元素点击 //div[text()="${CSK_Name}"]/../div[2]/button[3] 点击重删库删除按钮 定位重删库删除按钮失败
元素点击 ${deleteCSKSure} 点击重删库删除确认按钮 定位重删库删除确认按钮失败
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible ${addsuccessSure}
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${addsuccessSure} 定位删除重删库成功按钮成功 定位删除重删库成功按钮失败
光盘库存储映射
[Arguments] ${BC_IP} ${CD_IP} # 黑方IP地址|磁带库IP地址
Open Connection ${BC_IP} ${CD_IP}
SSHLibrary.Login ${SSHUser} ${SSHPwd}
Execute Command mkdir /osms
Execute Command mount -t nfs ${CD_IP}:/data/col1/wb \ /osms
Close Connection
添加OSM归档介质
循环点击 ${Select_BC_Node} ${Choice_BC}
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${D2D2B_Name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_D2D2} 选择归档介质 定位归档介质输入框失败
元素点击 ${Option_D2D2B} 选择光盘库 定位光盘库失败
元素输入 ${Severip} ${server} 光盘库IP输入失败
元素输入 ${Serverpath} ${d2d2b_path} 光盘库挂载路径输入失败
元素点击 ${add} D2D2B介质添加成功 D2D2B介质添加失败
sleep 5s
元素点击 ${D2D2B_confirm} 点击确认成功 点击确认失败
sleep 2s
元素点击 xpath=//td[text()="${D2D2B_Name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${D2D2B_Name}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${D2D2B_Name}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
创建S3归档介质
[Arguments] ${s3_name} # s3存储介质名称
循环点击 ${Select_BC_Node} ${Choice_BC}
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${s3_name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_CD} 选择归档介质用途 定位归档介质用途失败
元素点击 ${Choose_Use_Type} 点击展开介质类型 定位介质类型失败
元素点击 ${Option_S3} 选择S3介质类型 定位S3介质类型失败
元素输入 ${Input_AccessKey} ${S3_AccessKey} 定位公钥(AccessKey)输入框失败
元素输入 ${Input_SecretKey} ${S3_SecretKey} 定位密钥(SecretKey)输入框失败
元素输入 ${Input_Bucket} ${S3_Bucket_1} 定位桶名输入框失败
元素输入 ${Input_Url} ${S3_Url} 定位地址输入框失败
元素输入 ${Input_AuthRegion} ${S3_AuthRegion} 定位域名输入框失败
元素点击 ${Select_Transport_Protocol} 点击展开传输协议下拉框 定位传输协议下拉框失败
元素点击 ${Option_Http} 点击传输协议为http 定位传输协议为http失败
元素点击 ${Select_Request_Type} 点击展开请求类型下拉框 定位展开请求类型下拉框失败
元素点击 ${Option_PATH} 选择请求类型为PATH 定位请求类型为PATH失败
元素点击 ${Finish_AddMedia} 点击添加按钮 定位添加按钮失败
Sleep 20s
元素点击 ${Success_Confirm} 添加介质成功 添加介质失败
元素点击 xpath=//button[contains(@ng-click,'${s3_name}')] 点击初始化介质 定位介质初始化失败
Sleep 60s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//p[text()="初始化成功"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()='${s3_name}']/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
添加D2T介质
[Arguments] ${D2T_Name} # D2T介质名称
[Documentation] 功能进入介质管理界面添加D2T类型介质初始化并挂载
...
...
... 使用方法:创建介质
...
...
... 变量:创建的介质名称(与存储池名称一致)
循环点击 ${Select_BC_Node} ${Choice_BC}
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${D2T_Name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_PT} 选择普通介质 定位普通介质输入框失败
元素点击 ${Media_Type} 点击展开介质类型 定位介质类型失败
元素点击 ${Type_Tape} 选择磁带类型 定位磁带类型失败
元素点击 ${Tape_Storage} 点击展开存储池选择框 定位存储池选择框失败
元素点击 xpath=//option[text()="${D2T_Name}"] 选择存储池 定位存储池失败
循环点击 ${Finish_AddMedia} ${Success_Confirm}
Sleep 20s
元素点击 ${Success_Confirm} 点击确认介质添加成功 定位添加成功确定按钮失败
元素点击 xpath=//td[text()="${D2T_Name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 30s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${D2T_Name}"]/../td[text()="可挂载"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()="${D2T_Name}"]/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
外网IP配置
[Documentation] 功能新增外网IP地址删除新增的外网IP地址
...
... 使用方法外网IP地址 \ \ 外网ip地址
...
... 变量:${net_ip}
... 填写的外网ip地址
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Interface_Setting} 点击切换到通信接口设置 定位通信接口设置页面失败
元素点击 ${Add_OutNet} 点击添加外网IP地址 定位添加外网IP地址失败
元素输入 ${Input_Public_IP} ${Legal_Public_IP} 定位外网IP地址输入框失败
元素点击 ${Complete_Add_IP} 确认修改外网IP地址 定位外网IP地址确定按钮失败
元素点击 ${Success_Confirm} 外网IP新增成功 定位修改成功弹窗失败
元素点击 ${Add_OutNet} 点击添加外网IP地址 定位添加外网IP地址失败
元素输入 ${Input_Public_IP} ${Legal_Public_IP_1} 定位外网IP地址输入框失败
元素点击 ${Complete_Add_IP} 确认修改外网IP地址 定位外网IP地址确定按钮失败
元素点击 ${Success_Confirm} 外网IP新增成功 定位修改成功弹窗失败
FOR ${n} IN RANGE 5
${Deleted_Net}= Run Keyword And Return Status Wait Until Element Is Visible xpath=//span[contains(text(),"${Legal_Public_IP_1}")]/../..//div[@class="address_item_second"]/span[text()="删除"]
Run Keyword If ${Deleted_Net}==True 删除外网地址 ${Legal_Public_IP_1}
... ELSE Exit For Loop
END
创建S3普通介质
[Arguments] ${s3_name} # s3介质名称
循环点击 ${Select_BC_Node} ${Choice_BC}
元素点击 ${Choice_BC} 点击选择黑方服务器 定位要选择的黑方服务器失败
元素输入 ${Input_Media_name} ${s3_name} 定位介质名称输入框失败
元素点击 ${Choose_Media_Type} 点击展开介质用途 定位介质用途失败
元素点击 ${Option_PT} 选择普通介质用途 定位普通介质用途失败
元素点击 ${Choose_Use_Type} 点击展开介质类型 定位介质类型失败
元素点击 ${Option_S3} 选择S3介质类型 定位S3介质类型失败
元素输入 ${Input_AccessKey} ${S3_AccessKey} 定位公钥(AccessKey)输入框失败
元素输入 ${Input_SecretKey} ${S3_SecretKey} 定位密钥(SecretKey)输入框失败
元素输入 ${Input_Bucket} ${S3_Bucket_2} 定位桶名输入框失败
元素输入 ${Input_Url} ${S3_Url} 定位地址输入框失败
元素输入 ${Input_AuthRegion} ${S3_AuthRegion} 定位域名输入框失败
元素点击 ${Select_Transport_Protocol} 点击展开传输协议下拉框 定位传输协议下拉框失败
元素点击 ${Option_Http} 点击传输协议为http 定位传输协议为http失败
元素点击 ${Select_Request_Type} 点击展开请求类型下拉框 定位展开请求类型下拉框失败
元素点击 ${Option_PATH} 选择请求类型为PATH 定位请求类型为PATH失败
元素点击 ${Finish_AddMedia} 点击添加按钮 定位添加按钮失败
Sleep 20s
元素点击 ${Success_Confirm} 添加介质成功 添加介质失败
元素点击 xpath=//td[text()="${s3_name}"]/..//button[text()="初始化"] 点击初始化介质 定位介质初始化失败
Sleep 60s
FOR ${n} IN RANGE 100
${media_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//p[text()="初始化成功"]
Exit For Loop If ${media_status}==True
Sleep 10s
END
元素点击 ${Success_Confirm} 介质初始化成功 定位初始化成功确定按钮失败
元素点击 xpath=//td[text()='${s3_name}']/..//button[text()="挂载"] 点击挂载介质 定位介质挂载失败
Sleep 30s
元素点击 ${Success_Confirm} 介质挂载成功 定位初始化成功确定按钮失败
添加存储介质
[Arguments] ${Create_Media_Name} ${Media_Type} ${Media_Path}=none
进入介质管理页面
${Media_Name}= Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${Create_Media_Name}"] 10s
Run Keyword If ${Media_Name}==True Log 该存储已存在,不再创建!
... ELSE 介质添加 ${Create_Media_Name} ${Media_Type} ${Media_Path}
配置存储池
[Arguments] ${CD_Name} ${Tape_Library} # 存储池名称|磁带库名称
[Documentation] 功能:创建磁带存储池
...
...
... 变量:存储池名称|所属磁带库名称
元素点击 ${Tape_Pool} 点击进入磁带存储池栏 定位磁带存储池失败
${Tape_status}= Run Keyword And Return Status Wait Until Element Is Visible xpath=//span[text()="${CD_Name}"] 10s
Run Keyword If ${Tape_status}==True Log 该存储池已存在,不再创建!
... ELSE 添加磁带存储池 ${CD_Name} ${Tape_Library}
进入介质管理页面
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Media_Manage} 进入介质管理页面成功 定位介质管理菜单失败
指纹数查询
[Arguments] ${ip} ${user} ${pwd} ${CSK} # 黑方ip|ssh用户名|ssh密码|重删库名
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
Execute Command cd /opt/bksoft/ubackup/bin/;./mongo -uunary -pmonGo1223 dedup_db --eval "t=0;dbpre='${CSK}fingerdb';for(var i=0;i<16;i++){t+=db.getCollection(dbpre + i).count()}; print(t)">/finger.txt
${finger_num}= Execute Command cat /finger.txt |awk NR==5
Close Connection
[Return] ${finger_num}
立即清理指纹库
[Arguments] ${CSK_Name} # 重删库名称
停用重删库 ${CSK_Name}
元素点击 //div[text()="${CSK_Name}"]/../../div[4]/span[@id="buttonItem6"] 点击立即清理按钮成功 定位立即清理按钮失败
元素输入 ${Mark_clean} 1 定位标记线程个数输入框失败
元素输入 ${dele_clean} 1 定位删除线程个数输入框失败
元素点击 ${CleanImmediately_Sure} 点击确定按钮成功 定位确定按钮失败
Wait Until Element Is Visible xpath=//div[text()="${CSK_Name}"]/../../div[4]/span[@id="buttonItem6"] 300s 清理未完成
log 清理完成
启用重删库 ${CSK_Name}
重删库清理设置
[Arguments] ${CSK_Name} # 重删库名称
停用重删库 ${CSK_Name}
元素点击 //div[text()='${CSK_Name}']/../div[2]/button/span/i 点击编辑按钮 定位编辑按钮失败
元素点击 ${Edit_CleaningCycle} 选择快速清理 定位快速清理勾选项失败
元素输入 ${Edit_Markclean} 1 定位标记线程个数输入框失败
元素输入 ${Edit_Deleclean} 1 定位删除线程个数输入框失败
元素点击 ${Cyclemode_Daily} 选择按日清理 定位按日勾选项失败
元素输入 ${Edit_Starttime} 1 定位开始清理时间输入框失败
元素点击 ${Btn_Editsure} 点击确定 定位确定按钮失败
Wait Until Element Is Visible ${Confirm_Button} 120s 重删库设置失败
元素点击 ${Confirm_Button} 点击设置成功确定按钮 定位设置成功确定按钮失败
启用重删库 ${CSK_Name}
修改黑方时间
[Arguments] ${time} ${delay_day} ${ip} ${login_name} ${login_pwd} # 设定的时间点|设定当前日期的几天后|登录黑方IP|黑方账号|黑方密码
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Node_Setting} 点击切换到节点设置页面 定位节点设置页面失败
修改服务器时间 ${time} ${delay_day}
关闭浏览器
登录黑方 ${ip} ${login_name} ${login_pwd}
sleep 180s