def test_iscsi_trunk_view(self): Failflag = False ValError = [] self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Trunk").click() time.sleep(1) trunk_entrys = str( driver.find_element_by_xpath("//table/tbody").text).split("\n") if trunk_entrys: tolog("Trunk list is : " + str(trunk_entrys)) ValError.append("pass") else: ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass) return trunk_entrys
def test_iscsi_isns_view(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("iSNS").click() time.sleep(2) tolog("Start to List iSCSI iSNS entrys") for line in driver.find_element_by_xpath("//table/tbody").text.split( "\n"): if line == "": ValError.append("fail") else: tolog(line) ValError.append("pass") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_chap_mod(self): ValError = [] Failflag = False tolog("First,Add a new CHAP,then Modify it") chap_index, chap_name, chap_secret = ISCSIChapAdd.test_iscsi_chap_add( self) self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_xpath("//li[9]/ul/li[7]/a").click() time.sleep(2) tolog("Start to Modify iSCSI CHAP entry") driver.find_element_by_xpath("//table/tbody/tr[%d]/td[1]/input" % int(chap_index) + 2).click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='Modify iSCSI CHAP Settings']").click() time.sleep(1) new_chap_name = chap_name.upper() driver.find_element_by_xpath("//form/div[1]/div/input").clear() time.sleep(0.5) driver.find_element_by_xpath("//form/div[1]/div/input").send_keys( new_chap_name) time.sleep(0.5) driver.find_element_by_xpath("//form/div[4]/div[1]/input").clear() driver.find_element_by_xpath("//form/div[4]/div[1]/input").send_keys( chap_secret) time.sleep(1) new_pwd = chap_secret.upper() driver.find_element_by_xpath("//form/div[5]/div[1]/input").clear() driver.find_element_by_xpath("//form/div[5]/div[1]/input").send_keys( new_pwd) time.sleep(1) driver.find_element_by_xpath("//form/div[6]/div[1]/input").clear() driver.find_element_by_xpath("//form/div[6]/div[1]/input").send_keys( new_pwd) time.sleep(0.5) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(4) tolog("Completed modify CHAP, start to verify it.") for line in (driver.find_element_by_xpath("//table/tbody").text.split( "\n")): if new_chap_name in line: ValError.append("pass") tolog("Modify CHAP, PASS") else: ValError.append("fail") tolog("Modify CHAP, FAIL") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_trunk_del(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Trunk").click() time.sleep(2) if "No iSCSI Trunk detected" in driver.find_element_by_xpath( "//table/tbody").text: trunk_count = 0 else: trunk_count = len( driver.find_element_by_xpath("//table/tbody").text.split("\n")) tolog("Trunk entrys count is :%d" % trunk_count) if "No iSCSI Trunk detected" in str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")): tolog("No iSCSI Trunk detected") ValError.append("pass") else: while trunk_count > 0: driver.find_element_by_xpath("//b").click() time.sleep(1) driver.find_element_by_link_text("Delete").click() time.sleep(1) driver.find_element_by_name("name").clear() time.sleep(1) driver.find_element_by_name("name").send_keys("confirm") time.sleep(1) driver.find_element_by_xpath( "//button[@type='submit']").click() trunk_count -= 1 time.sleep(3) if "No iSCSI Trunk detected" in str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")): tolog("All iSCSI Trunk entry were deleted!") ValError.append("pass") elif "Operation failed as the trunk specified has some portals configured on it" in driver.find_element_by_xpath( "//body/div/div/div[5]/div").text: ValError.append("pass") tolog( "Failed to delete trunk.Operation failed as the trunk specified has some portals configured on it" ) else: tolog("Failed to delete All iSCSI Trunk entry!") ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_portal_view(self): ValError = [] Failflag = False portal_dict = {} self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(1) driver.find_element_by_link_text("Portal").click() time.sleep(2) if "No iSCSI Portal detected." in driver.find_element_by_xpath("//table/tbody").text: tolog("No iSCSI Portal entry was detected") tolog(Pass) else: temp = driver.find_element_by_xpath("//table/tbody").text.split("\n") for p in temp: portal_dict[str(p).split()[0]] = str(p).split()[2:6] if portal_dict: tolog("Portal list is: "+ str(portal_dict)) ValError.append("pass") else: ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass) return portal_dict
def test_iscsi_session_mod(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Session").click() time.sleep(2) tolog("Start iSCSI Session Modify....!!") if "No session" in driver.find_element_by_xpath("//table/tbody").text: tolog("No session was detected") ValError.append("pass") else: driver.find_element_by_xpath("//tbody/tr[2]/td[1]/input").click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='Modify iSCSI Session Settings']").click() time.sleep(1) if driver.find_element_by_name("keepalive").is_selected(): driver.find_element_by_name("keepalive").click() keepalive = "Disable" else: driver.find_element_by_name("keepalive").click() keepalive = "Enable" driver.find_element_by_xpath("//button[@type='submit']").click() tolog("Starting verify iSCSI Port settings!") for k in range(20): driver.find_element_by_xpath( "//tbody/tr[2]/td[1]/input").click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='View iSCSI Session Information']").click( ) time.sleep(1) if driver.find_element_by_xpath( "//dl[14]/dd[1]").text == "Enable": tolog("Modify Session, PASS") ValError.append("pass") break else: tolog("Modify Session, FAIL") tolog("KeepAlive is %s, now" % driver.find_element_by_xpath("//dl[14]/dd[1]").text) ValError.append("fail") break for err in ValError: if err == "fail": Failflag = True tolog("iSCSI Port Modify, completed") if Failflag: tolog(Fail) else: tolog(Pass)
def test_fc_loggedindevice_addtoinitiator(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("FC Management").click() time.sleep(1) driver.find_element_by_link_text("Logged In Device").click() time.sleep(2) port_entrys = driver.find_element_by_xpath("//table[2]/tbody").text.split("\n") i = 2 while i > 0: tolog("Start FC mgmt ---> Logged in Device, test 'Add to Initiator List") line_select = random.randint(2, len(port_entrys) + 1) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % line_select).click() time.sleep(1) if not driver.find_element_by_xpath("//pr-button-bar/div/div/div/button[2]").is_enabled(): tolog("This device entry had been add into initiator list, change another one") ValError.append("pass") else: driver.find_element_by_xpath("//pr-button-bar/div/div/div/button[2]").click() time.sleep(1) if "successfully" in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("pass") elif "already" in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("pass") else: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("fail") time.sleep(4) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % line_select).click() time.sleep(2) if not driver.find_element_by_xpath("//pr-button-bar/div/div/div/button[2]").is_enabled(): tolog("Verified, it was added into initiator list") ValError.append("pass") else: tolog("Verified, 'add into initiator list'button still is highlight,FAILED") ValError.append("fail") time.sleep(1) i -= 1 for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_portal_mod(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Portal").click() time.sleep(2) if "No iSCSI Portal detected." in driver.find_element_by_xpath("//table/tbody").text: ValError.append("pass") tolog("No iSCSI Portal detected") else: if driver.find_element_by_xpath("//table/tbody/tr[2]/td[1]/input").is_enabled(): driver.find_element_by_xpath("//table/tbody/tr[2]/td[1]/input").click() time.sleep(0.5) driver.find_element_by_xpath("//button[@title='Modify iSCSI Portal Settings']").click() time.sleep(2) TCP_Port_number = random.randint(0, 65535) driver.find_element_by_name("tcpportnumber").clear() time.sleep(0.5) driver.find_element_by_name("tcpportnumber").send_keys(TCP_Port_number) time.sleep(0.5) IP_Type = random.choice(["IPv4", "IPv6"]) Select(driver.find_element_by_name("ip_type")).select_by_visible_text(IP_Type) time.sleep(1) if not driver.find_element_by_xpath("//form/div[7]/div[1]/label/input").is_selected(): driver.find_element_by_xpath("//form/div[7]/div[1]/label/input").click() time.sleep(0.5) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(1) for k in range(20): if "iSCSI portal settings were changed successfully." in driver.find_element_by_xpath( "//body/div/div/div[5]/div/div").text: ValError.append("pass") tolog("iSCSI portal settings were changed successfully.") break if "Failed to change iSCSI portal settings" in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: ValError.append("fail") tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div/span").text) break for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_session_del(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Session").click() time.sleep(2) tolog("Start iSCSI Session Deleting....!!") if "No session" in driver.find_element_by_xpath("//table/tbody").text: tolog("No session was detected") Session_entry_count = 0 ValError.append("pass") else: Session_entry_count = len( driver.find_element_by_xpath("//table/tbody").text) time.sleep(1) while Session_entry_count > 0: driver.find_element_by_xpath("//b").click() time.sleep(1) driver.find_element_by_link_text("Delete").click() time.sleep(1) driver.find_element_by_name("name").clear() time.sleep(1) driver.find_element_by_name("name").send_keys("confirm") time.sleep(1) driver.find_element_by_xpath( "//button[@type='submit']").click() Session_entry_count -= 1 time.sleep(4) if "No Session" in str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")): tolog("All iSCSI Sessions entry were deleted!") ValError.append("pass") else: Failflag = True tolog("Failed to delete All iSCSI Session entry!") ValError.append("fail") for err in ValError: if err == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_chap_del(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_xpath("//li[9]/ul/li[7]/a").click() time.sleep(2) tolog("Start to delete ALL iSCSI CHAP entrys") if "No iSCSI CHAP detected" in driver.find_element_by_xpath( "//table/tbody").text: chap_count = 0 ValError.append("pass") else: chap_count = len( driver.find_element_by_xpath("//table/tbody").text.split("\n")) while chap_count > 0: driver.find_element_by_xpath("//b").click() time.sleep(1) driver.find_element_by_link_text("Delete").click() time.sleep(1) driver.find_element_by_name("name").clear() time.sleep(1) driver.find_element_by_name("name").send_keys("confirm") time.sleep(1) driver.find_element_by_xpath( "//button[@type='submit']").click() chap_count -= 1 time.sleep(3) if "No iSCSI CHAP detected" in str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")): tolog("All iSCSI CHAP entrys were deleted!") ValError.append("pass") else: Failflag = True tolog("Failed to delete All iSCSI CHAP entry!") ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_loggedindevice_addtoinitiator(self): ValError = [] Failflag = False portal_dict = {} self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(1) driver.find_element_by_xpath("//ul/li[9]/ul/li[8]/a").click() time.sleep(2) if "No iSCSI Initiator detected." in driver.find_element_by_xpath( "//table/tbody").text: tolog("No logged in device was detected") ValError.append("pass") else: device_count = len( driver.find_element_by_xpath("//table/tbody").text.split("\n")) tolog("Start to add device to initiator!") for k in range(device_count): if driver.find_element_by_xpath( "//table/tbody/tr[%s]/td[1]/input" % str(k + 2)).is_enabled(): driver.find_element_by_xpath( "//table/tbody/tr[%s]/td[1]/input" % str(k + 2)).click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='Add to Initiator List']").click() time.sleep(5) tolog("Check whether Device was added to initiator") if driver.find_element_by_xpath( "//table/tbody/tr[%s]/td[1]/input" % str(k + 2)).is_enabled() == False: ValError.append("pass") tolog("Add device to initiator, PASS") else: ValError.append("fail") tolog("Add device to initiator, FAIL") for err in ValError: if err == "fail": Failflag = True break if Failflag: tolog(Fail) else: tolog(Pass)
def test_lunmapping_del(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver tolog("Start to DELETE ALL LUN Mapping entries.") driver.find_element_by_link_text("Volume").click() time.sleep(2) driver.find_element_by_link_text("LUN Mapping & Masking").click() time.sleep(4) if "No LUN mapping entry available." in driver.find_element_by_xpath( "//table[2]/tbody").text.split("\n"): tolog("No lun mapping entry to be deleted") ValError.append("pass") else: lunmapping_count = len( driver.find_element_by_xpath("//table[2]/tbody").text.split( "\n")) while lunmapping_count > 0: driver.find_element_by_xpath("//b").click() time.sleep(1) driver.find_element_by_link_text("Delete").click() time.sleep(1) driver.find_element_by_name("name").clear() time.sleep(1) driver.find_element_by_name("name").send_keys("confirm") time.sleep(1) driver.find_element_by_xpath( "//button[@type='submit']").click() lunmapping_count -= 1 time.sleep(3) if "No LUN mapping entry available." in driver.find_element_by_xpath( "//table[2]/tbody").text.split("\n"): tolog("All LUN Mapping entrys were deleted!") ValError.append("pass") else: Failflag = True tolog("Failed to delete All lunmapping entry!") ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_device_deviceview(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("Device View").click() time.sleep(1) driver.find_element_by_link_text("Front View").click() time.sleep(2) if driver.find_element_by_xpath( "//pr-page-header/div/div/div[1]/h3").text == "Front View": ValError.append("pass") tolog("Device page, Front view title was listed") else: ValError.append("fail") tolog("Device page, Front view title was not listed") driver.find_element_by_link_text("Back View").click() time.sleep(2) if driver.find_element_by_xpath( "//pr-page-header/div/div/div[1]/h3").text == "Back View": ValError.append("pass") tolog("Device page, Back view title was listed") else: ValError.append("fail") tolog("Device page, Back view title was not listed") driver.find_element_by_xpath("//pr-switch-buttons/div/a[2]/i").click() time.sleep(5) driver.find_element_by_link_text("Topology View").click() time.sleep(2) if driver.find_element_by_xpath( "//pr-page-header/div/div/div[1]/h3").text == "Topology View": ValError.append("pass") tolog("Device page, Topology view title was listed") else: ValError.append("fail") tolog("Device page, Topology view title was not listed") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_fc_reset(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver tolog("Start to test FC mgmt ---> Port RESET") driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("FC Management").click() time.sleep(1) driver.find_element_by_link_text("Port").click() time.sleep(2) port_entrys = driver.find_element_by_xpath( "//table[2]/tbody").text.split("\n") port_select = random.randint(2, len(port_entrys) + 1) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % port_select).click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='Reset FC Port']").click() time.sleep(1) if "successfully" in driver.find_element_by_xpath( "//body/div/div/div[5]/div/div").text: tolog( driver.find_element_by_xpath( "//body/div/div/div[5]/div/div").text) ValError.append("pass") else: tolog( driver.find_element_by_xpath( "//body/div/div/div[5]/div/div").text) ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_fc_sfp_view(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("FC Management").click() time.sleep(1) driver.find_element_by_link_text("SFP").click() time.sleep(2) port_entrys = driver.find_element_by_xpath( "//table[2]/tbody").text.split("\n") tolog("Start FC mgmt ---> SFP view") line_select = random.randint(2, len(port_entrys) + 1) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % line_select).click() time.sleep(1) driver.find_element_by_xpath( "//button[@title='View SFP Information']").click() time.sleep(2) if driver.find_element_by_xpath( "//div[3]/div[2]/div/div/div/div[2]/div").text != "": tolog( driver.find_element_by_xpath( "//div[3]/div[2]/div/div/div/div[2]/div").text) ValError.append("pass") else: tolog( driver.find_element_by_xpath( "//div[3]/div[2]/div/div/div/div[2]/div").text) ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_fc_statisticsClear(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("FC Management").click() time.sleep(1) driver.find_element_by_link_text("Statistics").click() time.sleep(2) port_entrys = driver.find_element_by_xpath("//table[2]/tbody").text.split("\n") i = 10 while i > 0: tolog("Start FC mgmt ---> Statistics CLEAR") line_select = random.randint(2, len(port_entrys) + 1) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % line_select).click() time.sleep(1) driver.find_element_by_xpath("//pr-button-bar/div/div/div/button[2]").click() time.sleep(2) if "successfully"in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("pass") else: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("fail") time.sleep(1) i -= 1 for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_create_volume(self): Failflag = False self.driver = loginFirefox() # self.driver.implicitly_wait(30) self.verificationErrors = [] self.accept_next_alert = True driver = self.driver strip_size = ["64 KB", "128 KB", "256 KB", "512 KB", "1 MB"] sector_size = ["512 Bytes", "1 KB", "2 KB", "4 KB"] Prefer_ctrl = [1, 2] disklist = ["1", "3", "4", "5", "6", "8", "9", "10", "11", "12"] #disklist = [1, 3, 4, 5, 6, 8, 9, 10, 11, 12] volume_block_size = [ '512 Bytes', '1 KB', '2 KB', '4 KB', '8 KB', '16 KB', '32 KB', '64 KB', '128 KB' ] volume_sector = ['512 Bytes', '1 KB', '2 KB', '4 KB'] raid_level = [ "RAID0", "RAID1", "RAID5", "RAID6", "RAID10", "RAID50", "RAID60" ] tolog("Start to create pool!") driver.find_element_by_link_text("Pool").click() driver.find_element_by_xpath("//div[2]/button").click() sleep(1) #poolnum0=poolnum1=volnum0=volnum1=snapnum0=snapnum1=clonenum0=clonenum1=0 validatelist = list() sleep(1) driver.find_element_by_name("name").clear() pool_name = random_key(10) driver.find_element_by_name("name").send_keys(pool_name) Select(driver.find_element_by_name( "mediatype")).select_by_visible_text("Hard Disk Drive") raid = random.choice(raid_level) stripsize = random.choice(strip_size) sectorsize = random.choice(sector_size) if raid == "RAID0": disks = random.sample(disklist, 1) if raid == "RAID1": disks = random.sample(disklist, 2) elif raid == "RAID50": disks = random.sample(disklist, 6) elif raid == "RAID60": disks = random.sample(disklist, 8) else: disks = random.sample(disklist, 4) disks.sort() verifydisk = list() for disk in disks: verifydisk.append(int(disk)) # the verifydisk list will be verified in detail list by removing spaces verifydisk.sort() disks = verifydisk[::-1] # print disks # click disk in reverse order to avoid the unapplicable disk selection # for disk in disks: sleep(1) driver.find_element_by_xpath("//div[2]/div/div/ul/li[%s]" % (str(disk))).click() sleep(1) # verifydisk.sort() Select(driver.find_element_by_name( "raidlevel")).select_by_visible_text(raid) sleep(1) # sectorsize=random.choice(sector_size) Select(driver.find_element_by_name("strip")).select_by_visible_text( stripsize) sleep(1) Select(driver.find_element_by_name("sector")).select_by_visible_text( sectorsize) # sleep(1) # ctrlid = random.choice(Prefer_ctrl) # driver.find_element_by_xpath("//label[%d]/span" % ctrlid).click() sleep(5) driver.find_element_by_xpath("//button[@type='submit']").click() for i in range(60): try: if re.search(r"^[\s\S]*Pool was added successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Pool %s was added successfully." % pool_name) break except: pass time.sleep(1) else: self.fail("time out") tolog("Start to create volume") sync_mode = ["Always", "Standard", "Disabled"] for sector in volume_sector: for block in volume_block_size: for sync in sync_mode: tolog( "Create volume with sector: %s, blocksize: %s, sync mode: %s" % (sector, block, sync)) volume_capacity = str(random.randint(1, 10)) time.sleep(2) driver.find_element_by_xpath( ".//*[@id='sidebar-menu']/ul/li[4]/a").click() sleep(2) driver.find_element_by_link_text("Volume").click() sleep(2) driver.find_element_by_xpath("//div[2]/button").click() sleep(2) driver.find_element_by_name("volumename").clear() volume_name = random_key(10) sleep(2) driver.find_element_by_name("volumename").send_keys( volume_name) sleep(2) driver.find_element_by_xpath( "//form/div[4]/div[1]/input").clear() # Enable Thin Provision time.sleep(2) #driver.find_element_by_xpath("//input[@type='checkbox']").click() driver.find_element_by_xpath("//form/div[4]/div[1]/input" ).send_keys(volume_capacity) sleep(2) # driver.find_element_by_css_selector("div.row.m-t-20").click() #volumesector = random.choice(volume_sector) Select(driver.find_element_by_name( "sectorsize")).select_by_visible_text(sector) sleep(2) # driver.find_element_by_css_selector("option[value=\"string:1KB\"]").click() #blocksize = random.choice(block_size) Select(driver.find_element_by_name( "blocksize")).select_by_visible_text(block) sleep(2) Select(driver.find_element_by_name( "syncmode")).select_by_visible_text(sync) sleep(2) driver.find_element_by_xpath( "//button[@type='submit']").click() for i in range(60): try: if re.search( r"^[\s\S]*Volume was added successfully.[\s\S]*$", driver.find_element_by_css_selector( "BODY").text): tolog("Volume %s was added successfully." % volume_name) break except: pass time.sleep(1) else: self.fail("time out") validatelist.append( VerifyWords(driver, (volume_name, pool_name, block))) time.sleep(2) driver.find_element_by_xpath( "//pr-gear-button/div/a").click() time.sleep(2) driver.find_element_by_link_text("View Detail").click() sleep(2) validatelist.append( VerifyWords(driver, (volume_name, "Exported", pool_name, block, sector))) driver.find_element_by_xpath( "//div/ul/li[2]/a/span/span").click() time.sleep(3) driver.find_element_by_css_selector( "a > small.ng-binding").click() time.sleep(2) validatelist.append( VerifyWords(driver, ("Enabled", "Exported", volume_name, pool_name, block, sector))) sleep(2) driver.find_element_by_xpath( "//div[2]/div/ul/li[4]/a").click() sleep(4) driver.find_element_by_xpath( "(//input[@type='checkbox'])[2]").click() sleep(2) driver.find_element_by_xpath( "//button[@type='button']").click() sleep(2) driver.find_element_by_name("name").click() sleep(2) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") sleep(2) driver.find_element_by_xpath( "//button[@type='submit']").click() for i in range(60): try: if re.search( r"^[\s\S]*Volume was deleted successfully.[\s\S]*$", driver.find_element_by_css_selector( "BODY").text): tolog("volume %s was deleted successfully." % volume_name) break except: Failflag = True pass time.sleep(1) else: self.fail("time out") for val in validatelist: if val: Failflag = True break if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_trunk_add(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("Trunk").click() time.sleep(2) if "No iSCSI Trunk detected." in driver.find_element_by_xpath( "//table/tbody").text: tru_list_1 = 0 else: tru_list_1 = len( driver.find_element_by_xpath("//table/tbody").text.split("\n")) tolog("Start to Create iSCSI Trunk") driver.find_element_by_xpath("(//button[@type='button'])[3]").click() time.sleep(2) mesg = "To create trunk, please delete iSCSI Portal(s) first. At least TWO unused ports are required to create trunk." if mesg in driver.find_element_by_xpath("//div[4]/div/div/div").text: tolog(mesg) ValError.append("pass") else: temp = [] if driver.find_element_by_xpath( "//form/div[1]/div/label[1]").is_enabled(): temp.append("1") if driver.find_element_by_xpath( "//form/div[1]/div/label[2]").is_enabled(): temp.append("2") trunk_type = random.choice(temp) driver.find_element_by_xpath("//form/div[1]/div/label[%s]" % trunk_type).click() time.sleep(1) del temp[:] if driver.find_element_by_xpath( "//form/div[2]/div/label[1]").is_enabled(): temp.append("1") if driver.find_element_by_xpath( "//form/div[2]/div/label[2]").is_enabled(): temp.append("2") ctrl_id = random.choice(temp) driver.find_element_by_xpath("//form/div[2]/div/label[%s]" % ctrl_id).click() time.sleep(1) del temp[:] if driver.find_element_by_xpath( "//form/div[3]/div/label[1]").is_enabled(): temp.append("1") if driver.find_element_by_xpath( "//form/div[3]/div/label[2]").is_enabled(): temp.append("2") master_port = random.choice(temp) driver.find_element_by_xpath("//form/div[3]/div/label[%s]" % master_port).click() time.sleep(1) temp.remove(master_port) slave_port = temp[0] if driver.find_element_by_xpath("//form/div[4]/div/label[%s]" % slave_port).is_enabled(): pass else: tolog("Add iSCSI Trunk, Slave Port has error.") ValError.append("fail") driver.find_element_by_xpath("(//button[@type='submit'])").click() time.sleep(4) if len( driver.find_element_by_xpath("//table/tbody").text.split( "\n")) > tru_list_1: tolog("iSCSI Trunk was added successfully") ValError.append("pass") else: tolog("Add iSCSI Trunk has error") ValError.append("fail") time.sleep(2) for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_chap_add(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_xpath("//li[9]/ul/li[7]/a").click() time.sleep(3) tolog("Start to add iSCSI CHAP entry") if "No iSCSI CHAP detected." in driver.find_element_by_xpath("//table/tbody").text: chap_count = 0 else: chap_count = len(driver.find_element_by_xpath("//table/tbody").text.split("\n")) driver.find_element_by_xpath("//button[@title='Add iSCSI CHAP Information']").click() time.sleep(2) chap_name = "" tep = "0123456789abcdefghijklmnopqrstuvwxyz_:+@/()" name_len = random.randint(1,223) for i in range(name_len): chap_name += random.choice(tep) driver.find_element_by_name("chapName").clear() driver.find_element_by_name("chapName").send_keys(chap_name) chap_type = random.choice(["Local", "Peer"]) Select(driver.find_element_by_xpath("//select[@name='type']")).select_by_visible_text(chap_type) time.sleep(1) driver.find_element_by_xpath("//input[@name='secret']").clear() chap_secret = "" chap_secret_len = random.randint(12,16) for n in range(chap_secret_len): chap_secret += chr(random.randint(32,126)) driver.find_element_by_xpath("//input[@name='secret']").send_keys(chap_secret) driver.find_element_by_xpath("//input[@name='confirmsecret']").clear() driver.find_element_by_xpath("//input[@name='confirmsecret']").send_keys(chap_secret) time.sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(1) if "Failed to add chap:"in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("pass") elif "CHAP was add successfully." in driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text: time.sleep(3) chap_count_new = len(driver.find_element_by_xpath("//table/tbody").text.split("\n")) if chap_count_new > chap_count: ValError.append("pass") tolog("Add iSCSI CHAP entry, PASS") else: ValError.append("fail") tolog("Add iSCSI CHAP entry, FAIL") else: tolog(driver.find_element_by_xpath("//body/div/div/div[5]/div/div").text) ValError.append("fail") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_fc_mod(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver tolog("Start to Modify FC mgmt ---> Port settings") driver.find_element_by_link_text("Device").click() time.sleep(2) driver.find_element_by_link_text("FC Management").click() time.sleep(1) driver.find_element_by_link_text("Port").click() time.sleep(2) port_entrys = driver.find_element_by_xpath("//table[2]/tbody").text.split("\n") port_select = random.randint(2,len(port_entrys)+1) driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % port_select).click() time.sleep(1) driver.find_element_by_xpath("//button[@title='View FC Ports Settings']").click() time.sleep(1) cur_speed = random.choice(['Auto','4 Gb/s','8 Gb/s','16 Gb/s']) config_topo = random.choice(["Auto","N-Port","NL-Port"]) alpa = random.randint(0,255) Select(driver.find_element_by_name("linkSpeed")).select_by_visible_text(cur_speed) Select(driver.find_element_by_xpath("//form/div[2]/div/select")).select_by_visible_text(config_topo) #Select(driver.find_element_by_name("topology")).select_by_visible_text(config_topo) driver.find_element_by_name("hardalpa").clear() driver.find_element_by_name("hardalpa").send_keys(alpa) time.sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(3) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") time.sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(3) tolog("Start to verify settings") driver.find_element_by_xpath("//table[2]/tbody/tr[%d]/td[1]/input" % port_select).click() time.sleep(1) driver.find_element_by_xpath("//button[@title='View FC Ports Information']").click() time.sleep(1) if cur_speed in driver.find_element_by_xpath("//dl[7]/dd[1]").text: ValError.append("pass") tolog("Configured Link Speed:PASS") else: ValError.append("fail") tolog("Configured Link Speed:FAIL") if config_topo in driver.find_element_by_xpath("//dl[7]/dd[2]").text: ValError.append("pass") tolog("Configured Topology:PASS") else: ValError.append("fail") tolog("Configured Topology:FAIL") if str(alpa) in driver.find_element_by_xpath("//dl[8]/dd").text: ValError.append("pass") tolog("Hard ALPA:PASS") else: ValError.append("fail") tolog("Hard ALPA:FAIL") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)
def test_create_snapshot(self): Failflag = False self.driver = loginFirefox() # self.driver.implicitly_wait(30) self.verificationErrors = [] self.accept_next_alert = True driver = self.driver sleep(shortterm) validatelist = list() try: tolog("Create snapshot from volume") driver.find_element_by_xpath( ".//*[@id='sidebar-menu']/ul/li[4]/a").click() sleep(shortterm) driver.find_element_by_link_text("Volume").click() driver.find_element_by_xpath( "//div/ul/li[2]/a/span/span").click() # click v0 sleep(shortterm) driver.find_element_by_xpath( "(//button[@type='button'])[4]").click( ) # click "snapshot&clone" button sleep(shortterm) driver.find_element_by_xpath( "//pr-button-bar/div/div/div/button[1]").click( ) # click 'Create snapshot' button sleep(shortterm) driver.find_element_by_name("name").clear() snapshot_name = random_key(18) driver.find_element_by_name("name").send_keys(snapshot_name) sleep(shortterm) driver.find_element_by_xpath("//button[@type='submit']").click() for i in range(60): try: if re.search( r"^[\s\S]*Snapshot was added successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Snapshot %s was added successfully. " % snapshot_name) break except: pass time.sleep(1) else: self.fail("time out") sleep(longterm) driver.find_element_by_link_text("Volume").click() sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("View Detail").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) sleep(shortterm) driver.find_element_by_xpath("//div/ul/li[2]/a/span/span").click() sleep(mediumterm) driver.find_element_by_css_selector("a > small.ng-binding").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) tolog("Export and Un-export snapshot") sleep(longterm) driver.find_element_by_link_text("Volume").click() sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("Snapshot & Clone").click() sleep(2) for i in range(2): status = False if re.search("Un-Exported", driver.find_element_by_css_selector("BODY").text): status = True sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) if status: driver.find_element_by_link_text("Export Snapshot").click() for i in range(60): try: if re.search( r"^[\s\S]*Snapshot was exported successfully.[\s\S]*$", driver.find_element_by_css_selector( "BODY").text): tolog("Snapshot was exported successfully.") break except: pass time.sleep(1) else: self.fail("time out") else: driver.find_element_by_link_text( "Un-export Snapshot").click() for i in range(60): try: if re.search( r"^[\s\S]*Snapshot was un-exported successfully.[\s\S]*$", driver.find_element_by_css_selector( "BODY").text): tolog("Snapshot was un-exported successfully.") break except: pass time.sleep(1) else: self.fail("time out") tolog("Modify snapshot") sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("Modify Snapshot").click() sleep(shortterm) driver.find_element_by_name("name").clear() snapshot_name = random_key(20) driver.find_element_by_name("name").send_keys(snapshot_name) sleep(shortterm) driver.find_element_by_xpath("//button[@type='submit']").click() sleep(mediumterm) validatelist.append(VerifyWords(driver, ({snapshot_name}))) for i in range(60): try: if re.search( r"^[\s\S]*Snapshot was changed successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Snapshot was changed successfully..") break except: pass time.sleep(1) else: self.fail("time out") sleep(longterm) driver.find_element_by_link_text("Volume").click() sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("View Detail").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) sleep(shortterm) driver.find_element_by_xpath("//div/ul/li[2]/a/span/span").click() sleep(mediumterm) driver.find_element_by_css_selector("a > small.ng-binding").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) tolog("Create snapshot from gear button") sleep(shortterm) driver.find_element_by_link_text("Volume").click() sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("Snapshot & Clone").click() sleep(shortterm) driver.find_element_by_xpath("//button[@type='button']").click() sleep(shortterm) driver.find_element_by_name("name").clear() snapshot_name = random_key(18) driver.find_element_by_name("name").send_keys(snapshot_name) sleep(shortterm) driver.find_element_by_xpath("//button[@type='submit']").click() for i in range(60): try: if re.search( r"^[\s\S]*Snapshot was added successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Snapshot %s was added successfully. " % snapshot_name) break except: pass time.sleep(1) else: self.fail("time out") sleep(longterm) driver.find_element_by_link_text("Volume").click() sleep(shortterm) driver.find_element_by_xpath("//pr-gear-button/div/a").click() sleep(shortterm) driver.find_element_by_link_text("View Detail").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) sleep(shortterm) driver.find_element_by_xpath("//div/ul/li[2]/a/span/span").click() sleep(mediumterm) driver.find_element_by_css_selector("a > small.ng-binding").click() sleep(shortterm) validatelist.append( VerifyWords(driver, ({"Snapshot " + snapshot_name}))) except: driver.get_screenshot_as_file("snapshot at " + re.sub( ':', '.', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime( time.time()))) + "create_delete_multi" + "." + "png") tolog("Error: please refer to the screen-shot in the folder") Failflag = True for val in validatelist: if val: Failflag = True break if Failflag: tolog(Fail) else: tolog(Pass)
def test_create_delete_clone(self): Failflag = False self.driver = loginFirefox() # self.driver.implicitly_wait(30) self.verificationErrors = [] self.accept_next_alert = True driver = self.driver sleep(1) validatelist = list() try: driver.find_element_by_xpath("//div[2]/div/ul/li[4]/a/span").click() sleep(1) driver.find_element_by_xpath("//div/ul/li[2]/a/span/span").click() sleep(1) driver.find_element_by_xpath("(//button[@type='button'])[4]").click() sleep(1) # firstly, check if there are 6 clones included. if driver.find_element_by_xpath("//tr[2]/td[2]/small").text=="(6 Clones included)": tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) tolog("Delete clone from gear button") driver.find_element_by_xpath("//td[2]/a/i").click() sleep(1) driver.find_element_by_xpath("//tr[3]/td[7]/pr-gear-button/div/a").click() sleep(1) driver.find_element_by_xpath("//tr[3]/td[7]/pr-gear-button/div/ul/li[3]/a").click() sleep(1) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() for i in range(60): try: if re.search(r"^[\s\S]*Clone was deleted successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Clone was deleted successfully."); break except: pass time.sleep(1) else: self.fail("time out") sleep(1) if driver.find_element_by_xpath("//tr[2]/td[2]/small").text=="(5 Clones included)": #tolog("One clone is deleted successfully.") tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) tolog("Delete clone from selection") sleep(1) driver.find_element_by_xpath("//tr[2]/td[2]/a/i").click() sleep(1) driver.find_element_by_xpath("//tr[3]/td[1]/input").click() sleep(1) driver.find_element_by_xpath("//div/div/div/button[4]").click() sleep(1) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() sleep(2) driver.find_element_by_xpath("html/body/div[1]/div/div/div[3]/button").click() sleep(2) #tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) if driver.find_element_by_xpath("//tr[2]/td[2]/small").text == "(4 Clones included)": tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) tolog("Delete clones from multi-selection") driver.find_element_by_xpath("//tr[2]/td[2]/a/i").click() sleep(1) driver.find_element_by_xpath("//tr[3]/td[1]/input").click() sleep(1) driver.find_element_by_xpath("//tr[4]/td[1]/input").click() sleep(1) driver.find_element_by_xpath("//div/div/div/button[4]").click() sleep(1) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") driver.find_element_by_xpath("//button[@type='submit']").click() sleep(2) driver.find_element_by_xpath("html/body/div[1]/div/div/div[3]/button").click() sleep(3) #tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) if driver.find_element_by_xpath("//tr[2]/td[2]/small").text == "(2 Clones included)": tolog(driver.find_element_by_xpath("//tr[2]/td[2]/small").text) tolog("Delete clones from delete all clones") sleep(1) driver.find_element_by_xpath("//tr[2]/td[2]/a/i").click() sleep(1) driver.find_element_by_xpath("//tr[1]/th[1]/input").click() sleep(1) driver.find_element_by_xpath("//div/div/div/button[4]").click() sleep(1) driver.find_element_by_name("name").clear() driver.find_element_by_name("name").send_keys("confirm") sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() sleep(2) driver.find_element_by_xpath("html/body/div[1]/div/div/div[3]/button").click() # sleep(3) if not self.is_element_present(By.XPATH,"//tr[2]/td[2]/small"): tolog("All Clones are deleted.") else: Failflag = True tolog("There're no "+driver.find_element_by_xpath("//tr[2]/td[2]/small").text) except: Failflag = True driver.get_screenshot_as_file("snapshot at " + re.sub(':', '.', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime( time.time()))) + "create_delete_multi" + "." + "png") tolog("Error: please refer to the screen-shot in the folder") for val in validatelist: if val: Failflag = True break if Failflag: tolog(Fail) else: tolog(Pass)
def test_create_volume(self): Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver #volume_capacity = str(random.randint(1, 1000000)) block_size = [ '512 Bytes', '1 KB', '2 KB', '4 KB', '8 KB', '16 KB', '32 KB', '64 KB', '128 KB' ] volume_sector = ['512 Bytes', '1 KB', '2 KB', '4 KB'] raid_level = ["RAID1", "RAID5", "RAID6"] tolog("Start to create volume.") validatelist = [] block = random.choice(block_size) sector = random.choice(volume_sector) sync_mode = ["Always", "Standard", "Disabled"] sync = random.choice(sync_mode) volume_capacity = str(random.randint(1, 10000)) time.sleep(2) driver.find_element_by_xpath( ".//*[@id='sidebar-menu']/ul/li[4]/a").click() sleep(2) driver.find_element_by_link_text("Volume").click() sleep(2) driver.find_element_by_xpath("//div[2]/button").click() sleep(2) driver.find_element_by_name("volumename").clear() volume_name = random_key(10) sleep(2) driver.find_element_by_name("volumename").send_keys(volume_name) sleep(2) driver.find_element_by_xpath("//form/div[4]/div[1]/input").clear() # Enable Thin Provision sleep(2) driver.find_element_by_xpath("//input[@type='checkbox']").click() sleep(2) driver.find_element_by_xpath("//form/div[4]/div[1]/input").send_keys( volume_capacity) sleep(2) # driver.find_element_by_css_selector("div.row.m-t-20").click() # volumesector = random.choice(volume_sector) Select(driver.find_element_by_name( "sectorsize")).select_by_visible_text(sector) sleep(2) # driver.find_element_by_css_selector("option[value=\"string:1KB\"]").click() # blocksize = random.choice(block_size) Select(driver.find_element_by_name( "blocksize")).select_by_visible_text(block) sleep(2) Select(driver.find_element_by_name("syncmode")).select_by_visible_text( sync) sleep(2) driver.find_element_by_xpath("//button[@type='submit']").click() for i in range(60): try: if re.search(r"^[\s\S]*Volume was added successfully.[\s\S]*$", driver.find_element_by_css_selector("BODY").text): tolog("Volume %s was added successfully." % volume_name) break except: pass time.sleep(1) else: self.fail("time out") # validatelist.append(VerifyWords(driver, (volume_name,block))) # time.sleep(2) # driver.find_element_by_xpath("//pr-gear-button/div/a").click() # time.sleep(2) # # driver.find_element_by_link_text("View Detail").click() # sleep(2) # validatelist.append(VerifyWords(driver, (volume_name, "Exported",block, sector))) # # driver.find_element_by_xpath("//div/ul/li[2]/a/span/span").click() # time.sleep(3) # driver.find_element_by_css_selector("a > small.ng-binding").click() # time.sleep(2) # validatelist.append(VerifyWords(driver, ("Enabled", "Exported", volume_name,block, sector))) for val in validatelist: if val: Failflag = True break if Failflag: tolog(Fail) else: tolog(Pass)
def test_iscsi_isns_mod(self): ValError = [] Failflag = False self.driver = loginFirefox() self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.find_element_by_link_text("Device").click() time.sleep(3) driver.find_element_by_link_text("iSCSI Management").click() time.sleep(2) driver.find_element_by_link_text("iSNS").click() time.sleep(2) tolog("Start to Modify iSCSI iSNS setting") driver.find_element_by_xpath("//table/tbody/tr[2]/td[1]/input").click() time.sleep(0.5) driver.find_element_by_xpath( "//button[@title='Modify iSCSI ISNS Settings']").click() time.sleep(2) if driver.find_element_by_xpath( "//form/div[2]/div[1]/label/input").is_selected(): driver.find_element_by_xpath( "//form/div[2]/div[1]/label/input").click() time.sleep(0.5) isns_status = "Disable" driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(4) tolog("Start to verify modifications") if str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")[0]).split()[3] == isns_status: ValError.append("pass") tolog("Modify iSNS Status to Disable, PASS") else: ValError.append("fail") tolog("Modify iSNS Status to Disable, FAIL") else: driver.find_element_by_xpath( "//form/div[2]/div[1]/label/input").click() isns_status = "Enable" server_port = random.randint(1, 65535) server_ip = "%d.%d.%d.%d" % (random.randint( 0, 255), random.randint(0, 255), random.randint( 0, 255), random.randint(0, 255)) tolog("Set server port = %d" % server_port) tolog("Set server IP = %s" % server_ip) driver.find_element_by_name("serverport").clear() time.sleep(0.5) driver.find_element_by_name("serverport").send_keys( str(server_port)) time.sleep(1) driver.find_element_by_name("serverip").clear() time.sleep(0.5) driver.find_element_by_name("serverip").send_keys(server_ip) time.sleep(1) driver.find_element_by_xpath("//button[@type='submit']").click() time.sleep(4) tolog("Start to verify modifications") if str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")[0]).split()[3] == isns_status: ValError.append("pass") tolog("Modify iSNS Status to Enable, PASS") else: ValError.append("fail") tolog("Modify iSNS Status to Enable, FAIL") if str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")[0]).split()[4] == server_ip: ValError.append("pass") tolog("Modify iSNS Server IP, PASS") else: ValError.append("fail") tolog("Modify iSNS Server IP, FAIL") if str( driver.find_element_by_xpath("//table/tbody").text.split( "\n")[0]).split()[-1] == str(server_port): ValError.append("pass") tolog("Modify iSNS Server Port, PASS") else: ValError.append("fail") tolog("Modify iSNS Server Port, FAIL") for val in ValError: if val == "fail": Failflag = True if Failflag: tolog(Fail) else: tolog(Pass)