コード例 #1
0
 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
コード例 #2
0
ファイル: iSCSI_iSNS_view.py プロジェクト: symlib/gui
 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)
コード例 #3
0
ファイル: iSCSI_CHAP_mod.py プロジェクト: symlib/gui
 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)
コード例 #4
0
ファイル: iSCSI_Trunk_del.py プロジェクト: symlib/gui
 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)
コード例 #5
0
 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
コード例 #6
0
    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)
コード例 #7
0
 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)
コード例 #8
0
ファイル: iSCSI_Portal_mod.py プロジェクト: symlib/gui
 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)
コード例 #9
0
ファイル: iSCSI_Session_del.py プロジェクト: symlib/gui
 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)
コード例 #10
0
 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)
コード例 #11
0
 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)
コード例 #12
0
 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)
コード例 #13
0
 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)
コード例 #14
0
 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)
コード例 #15
0
 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)
コード例 #16
0
 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)
コード例 #17
0
    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)
コード例 #18
0
ファイル: iSCSI_Trunk_add.py プロジェクト: symlib/gui
    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)
コード例 #19
0
ファイル: iSCSI_CHAP_add.py プロジェクト: symlib/gui
    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)
コード例 #20
0
    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)
コード例 #21
0
    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)
コード例 #22
0
ファイル: delete_clone.py プロジェクト: symlib/gui
    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)
コード例 #23
0
    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)
コード例 #24
0
ファイル: iSCSI_iSNS_mod.py プロジェクト: symlib/gui
 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)