def start_service(self):
     self.logger.info(u"%sstart service%s\n" % ('+' * 12, '+' * 12))
     endtime = time.time() + 1200
     fail = 1
     while time.time() < endtime:
         result = get_element_attribute(
             find_elements(
                 self.driver, By.CSS_SELECTOR,
                 "#commandDetailsStep>div>div:first-child>h2:first-child>i:first-child"
             )[0], "class")
         if u"error" in result and fail == 1:
             fail = fail + 1
             click_element(self.driver, By.LINK_TEXT, "Retry")
         elif u"error" in result and fail == 2:
             return FuncResult(False, u"start service",
                               caputre(self.driver))
         elif u"success" in result:
             break
         else:
             time.sleep(5)
     time.sleep(2)
     click_element(self.driver, By.CSS_SELECTOR,
                   "#bottomButtons button[data-bind*=\"onClickContinue\"]")
     time.sleep(1)
     ele_text = get_element_text(self.driver, By.CSS_SELECTOR,
                                 "#finishStep h2")
     ret = u"Congratulations!" in ele_text
     return FuncResult(ret, u"start service", caputre(self.driver))
示例#2
0
 def install_parcels(self):
     self.logger.info(u"%sInstalling Selected Parcels%s\n" %
                      ('+' * 12, '+' * 12))
     install_schedule_ele = find_elements(
         self.driver, By.CSS_SELECTOR,
         ".parcel-header>div[data-bind$=\"Activation\"]>div>div")
     unpack_schedule_ele = find_elements(
         self.driver, By.CSS_SELECTOR,
         "div[data-bind*=\"unpackedPercent\"]")[0]
     destribute_schedule_ele = find_elements(
         self.driver, By.CSS_SELECTOR,
         "div[data-bind*=\"distributionProgress\"]")[0]
     endtime = time.time() + 1200
     while time.time() < endtime:
         unpack_schedule = get_element_attribute(unpack_schedule_ele,
                                                 "style")
         destribute_schedule = get_element_attribute(
             destribute_schedule_ele, "style")
         self.logger.info(u"Distribute schedule:%s || unpack schedule:%s " %
                          (destribute_schedule, unpack_schedule))
         install_schedule_list = map(
             get_element_attribute, install_schedule_ele,
             ["style" for _ in install_schedule_ele])
         if len(set(install_schedule_list)
                ) == 1 and u"width: 100%;" in install_schedule_list:
             break
         else:
             time.sleep(3)
     time.sleep(3)
     next_button_attr = get_element_attribute(
         find_elements(self.driver, By.CSS_SELECTOR,
                       ".btn.btn-large.btn-primary")[0], "disabled")
     if next_button_attr == 0:
         return FuncResult(False, u"Installing Selected Parcels",
                           caputre(self.driver))
     else:
         click_element(self.driver, By.CSS_SELECTOR,
                       ".btn.btn-large.btn-primary")
     time.sleep(1)
     ele_text = get_element_text(self.driver, By.CSS_SELECTOR,
                                 "#hostInspectorStep>div>h2")
     ret = u"Inspect hosts for correctness" in ele_text
     return FuncResult(ret, u"Installing Selected Parcels",
                       caputre(self.driver))
 def verify_install_result(self, ele_select, endtime, para):
     status = ''
     while time.time() < endtime:
         status = get_element_attribute(
             find_elements(self.driver, By.CSS_SELECTOR, ele_select)[0],
             "class")
         if para == status:
             break
         else:
             time.sleep(3)
     return status
 def Assign_role(self):
     self.logger.info(u"%sAssign role%s\n" % ('+' * 12, '+' * 12))
     role_name_list = map(
         lambda x: x.text,
         find_elements(self.driver, By.CSS_SELECTOR,
                       ".label-service-kafka+.name"))
     for rolename in self.data.keys():
         if self.data[rolename]:
             rolename_index = get_ele_index(role_name_list, rolename)
             if rolename_index != None:
                 self.logger.info(
                     "%s : $('div:nth-child(%s)>div>.role-type-btn').click()"
                     % (
                         rolename,
                         rolename_index + 1,
                     ))
                 self.driver.execute_script(
                     "$('div:nth-child(%s)>div>.role-type-btn').click()" %
                     (rolename_index + 1, ))
                 role_checkbox_list = find_elements(self.driver,
                                                    By.CSS_SELECTOR,
                                                    "tbody i")
                 role_hostname = map(
                     lambda x: x.text,
                     find_elements(self.driver, By.CSS_SELECTOR,
                                   "tbody>tr>td[data-bind$=\"hostName\"]"))
                 for checkbox in role_checkbox_list:
                     if u" check" in get_element_attribute(
                             checkbox, "class"):
                         checkbox.click()
                         time.sleep(0.5)
                 for hostname in self.data[rolename]:
                     hostname_index = get_ele_index(role_hostname, hostname)
                     if hostname_index != None:
                         role_checkbox_list[hostname_index].click()
                     else:
                         self.logger.error(u"host name is invalid")
                 if not click_element(
                         self.driver, By.CSS_SELECTOR,
                         "form #modalDialog .modal-footer>.btn+.btn"):
                     return FuncResult(
                         False, "kafka install select host:%s" % rolename)
             else:
                 self.logger.error(u"Kafka rolename:%s is invalid")
     click_element(self.driver, By.CSS_SELECTOR,
                   "button[data-bind*=\"onClickContinue\"]")
     time.sleep(3)
     ele_text = get_element_text(self.driver, By.CSS_SELECTOR,
                                 "#reviewStep h2")
     ret = u"Review Changes" in ele_text
     return FuncResult(ret, "kafka assign role")
示例#5
0
    def add_role(self):
        self.logger.info(u"%sdploy role%s\n" % ('+' * 12, '+' * 12))
        self.logger.info(self.data)
        if self.data["host_role_default"] == "no":
            service_name_list = map(
                lambda x: x.text,
                find_elements(self.driver, By.CSS_SELECTOR, ".row h3 span"))
            for service_name in self.data["host_role"].keys():
                self.logger.info(service_name)
                service_name_index = get_ele_index(service_name_list,
                                                   service_name)
                service_role_name_list = map(
                    lambda x: x.text,
                    find_elements(
                        self.driver, By.CSS_SELECTOR,
                        ".row:nth-child(%s) .name" %
                        (4 + 2 * service_name_index, )))
                #                self.logger.info(service_role_name_list)
                #                service_role_ele_list=find_elements(self.driver, By.CSS_SELECTOR,".row:nth-child(%s) div>a")
                for role_name in self.data["host_role"][service_name].keys():
                    time.sleep(1)
                    self.logger.info(role_name)
                    role_index = get_ele_index(service_role_name_list,
                                               role_name)
                    if self.data["host_role"][service_name][
                            role_name] and role_index != None:
                        if verify_element(
                                self.driver, By.CSS_SELECTOR,
                                ".row:nth-child(%s)>.span3:nth-child(%s)>div+div>a+ul"
                                %
                            (4 + 2 * service_name_index, 1 + role_index)):
                            self.logger.info(
                                "$('.row:nth-child(%s)>.span3:nth-child(%s)>div+div>a+ul>li>a[data-bind*=\"Custom\"]').click()"
                                % (4 + 2 * service_name_index, 1 + role_index))
                            self.driver.execute_script(
                                "$('.row:nth-child(%s)>.span3:nth-child(%s)>div+div>a+ul>li>a[data-bind*=\"Custom\"]').click()"
                                % (4 + 2 * service_name_index, 1 + role_index))
                        else:
                            self.logger.info(
                                "$('.row:nth-child(%s)>.span3:nth-child(%s)>div+div>a').click()"
                                % (4 + 2 * service_name_index, 1 + role_index))
                            self.driver.execute_script(
                                "$('.row:nth-child(%s)>.span3:nth-child(%s)>div+div>a').click()"
                                % (4 + 2 * service_name_index, 1 + role_index))
                        role_checkbox_list = find_elements(
                            self.driver, By.CSS_SELECTOR, "tbody i")
                        role_hostname = map(
                            lambda x: x.text,
                            find_elements(
                                self.driver, By.CSS_SELECTOR,
                                "tbody>tr>td[data-bind$=\"hostName\"]"))
                        for checkbox in role_checkbox_list:
                            if u" check" in get_element_attribute(
                                    checkbox, "class"):
                                checkbox.click()
                                time.sleep(0.5)
                        for hostname in self.data["host_role"][service_name][
                                role_name]:
                            self.logger.info(hostname)
                            hostname_index = get_ele_index(
                                role_hostname, hostname)
                            if hostname_index != None:
                                role_checkbox_list[hostname_index].click()
                            else:
                                self.logger.error(u"host name is invalid")
                        if not click_element(
                                self.driver, By.CSS_SELECTOR,
                                "form #modalDialog .modal-footer>.btn+.btn"):
                            click_element(
                                self.driver, By.CSS_SELECTOR,
                                "form #modalDialog .modal-footer>.dismissButton"
                            )
#                         ok_button=find_elements(self.driver,By.CSS_SELECTOR,"form #modalDialog .modal-footer>.btn-primary")[0]
#                         if get_element_attribute(ok_button,"disabled")==0:
#                             ok_button.click()
#                         else:
#                             click_element(self.driver,By.CSS_SELECTOR, "form #modalDialog .modal-footer>.btn+.btn")
        elif self.data["host_role_default"] == "yes":
            pass
        click_element(self.driver, By.CSS_SELECTOR,
                      "button[data-bind*=\"onClickContinue\"]")
        ele_text = get_element_text(self.driver, By.CSS_SELECTOR,
                                    ".db-test-connection-view>h2")
        ret = ele_text == u"Database Setup"
        return FuncResult(ret, u"dploy role", caputre(self.driver))