コード例 #1
0
 def select_nodes(self, *args):
     rl = ResultList("Select nodes")
     for name in args:
         node = Node(Cluster_Nodes_ListView().node.find(
             name=name).get_element())
         rl.push(node.select())
     return rl
コード例 #2
0
ファイル: listView.py プロジェクト: Mirantis/fuelweb-test
 def verify_nodes_not_exist(self, *args):
     rl = ResultList("Verify nodes not exist")
     for name in args:
         rl.push(
             Result("Node [{name}] not exists".format(name=name),
                    self.node.find(name=name).is_not_found()))
     return rl
コード例 #3
0
 def verify_nodelists_visibility(self, value, *roles):
     rl = ResultList("Verify node lists visibility")
     for role in roles:
         rl.push(VerifyBot().verify_visibility(
             self.nodelist.find(role=role).get_element(),
             value, "'{role}' nodelist"))
     return rl
コード例 #4
0
 def populate(self, name, password, server=None, key=None):
     rl = ResultList("Populate dialog")\
         .push(self.rh_user.set_value(name))\
         .push(self.rh_password.set_value(password))
     if server is not None:
         rl.push(self.satellite_server.set_value(server))\
             .push(self.activation_key.set_value(key))
     return rl
コード例 #5
0
 def verify_error_contains(self, *args):
     rl = ResultList("Verify error alert contains")
     for string in args:
         rl.push(Result(
             "String [{string}] exists".format(string=string),
             self.alertError.get_value().find(string) != -1
         ))
     return rl
コード例 #6
0
 def verify_error_contains(self, *args):
     rl = ResultList("Verify error alert contains")
     for string in args:
         rl.push(Result(
             "String [{string}] exists".format(string=string),
             self.alertError.get_value().find(string) != -1
         ))
     return rl
コード例 #7
0
 def populate(self, name, password, server=None, key=None):
     rl = ResultList("Populate dialog")\
         .push(self.rh_user.set_value(name))\
         .push(self.rh_password.set_value(password))
     if server is not None:
         rl.push(self.satellite_server.set_value(server))\
             .push(self.activation_key.set_value(key))
     return rl
コード例 #8
0
ファイル: listView.py プロジェクト: Mirantis/fuelweb-test
 def verify_nodes_not_exist(self, *args):
     rl = ResultList("Verify nodes not exist")
     for name in args:
         rl.push(Result(
             "Node [{name}] not exists".format(name=name),
             self.node.find(name=name).is_not_found()
         ))
     return rl
コード例 #9
0
 def select_nodes(self, *args):
     rl = ResultList("Select nodes")
     for name in args:
         node = Node(self.node.find(name=name).get_element())
         rl.push(node.select())
     rl.push(self.apply())
     WaitBot().wait_for_disappears(By.XPATH, "//div[contains(@class,'nodes-screen')]")
     WaitBot().wait_for_displays(By.XPATH, "//div[@class='nodes-by-roles-screen']")
     return rl
コード例 #10
0
 def select_environment_mode(self, deploymentMode):
     rl = ResultList(
         "Select environment mode [{mode}]".format(
             mode=deploymentMode)
     )
     rl.push(self.click_deployment_mode())
     rl.push(EnvironmentDeploymentModeDialog().populate(
         deploymentMode=deploymentMode,
         submit=True
     ))
     return rl
コード例 #11
0
    def populate(self, name, version, submit=False):
        environment = Storage.get_current(TD_Cluster.NAME)
        environment.name = name
        environment.version = version

        rl = ResultList("Populate create new Environment dialog") \
            .push(self.name.set_value(name)) \
            .push(self.version.set_value(version))
        if submit:
            rl.push(self.create())
        return rl
コード例 #12
0
 def wait_downloading(self, release_name):
     rl = ResultList(
         "Wait release downloading done: {}".format(release_name))
     row = self.get_release_row(release_name=release_name)
     rl.push(self.progress.find(row=row, column=3).verify_visible(True))
     rl.info("Release download started")
     if self.get_wait_bot().wait_for_web_element_disappears(
             web_element=self.progress.get_element(),
             timeout=20,
             poll_frequency=3) is not None:
         rl.info("Release download done")
     else:
         rl.push(Result("Release download failed on timeout", False))
     return rl
コード例 #13
0
 def assign_roles_to_nodes(self, roles, node_names):
     rl = ResultList("Select nodes and assign roles")
     rl.push(self.select_nodes(*node_names))
     rl.push(self.select_roles(*roles))
     rl.push(self.apply())
     ActionBot().wait_for_time(2)
     return rl
コード例 #14
0
 def verify_controls_presence(self, licence):
     rl = ResultList(
         "Verify controls presence on form for {}".format(licence)
     )
     if licence == "RHSM":
         rl.push(self.rh_user.verify_visible(True)) \
             .push(self.rh_password.verify_visible(True)) \
             .push(self.satellite_server.verify_visible(False)) \
             .push(self.activation_key.verify_visible(False))
     else:
         rl.push(self.rh_user.verify_visible(True)) \
             .push(self.rh_password.verify_visible(True)) \
             .push(self.satellite_server.verify_visible(True)) \
             .push(self.activation_key.verify_visible(True))
     return rl
コード例 #15
0
ファイル: disk_box.py プロジェクト: Mirantis/fuelweb-test
 def verify_volume_size_is_identical(self, name):
     rl = ResultList("Verify volume size is identical everywhere")
     group_box_size = self.get_volume_group_box(name).size.get_value()
     group_box_size = group_box_size.encode().replace(' ', '')
     group_box_size = group_box_size.encode().replace(',', '')
     group_box_size = float(group_box_size)
     if (group_box_size > 1024.0):
         group_box_size = group_box_size / 1024.0
         if (group_box_size > 256.0):
             group_box_size = group_box_size / 1024.0
     group_box_size = round(group_box_size, 1)
     if self.get_volume_group(name).size.get_value().encode() != "":
         rl.push(
             self.get_volume_group(name).size.verify_value_contains(
                 str(group_box_size)))
     return rl
コード例 #16
0
 def verify_volume_size_is_identical(self, name):
     rl = ResultList("Verify volume size is identical everywhere")
     group_box_size = self.get_volume_group_box(name).size.get_value()
     group_box_size = group_box_size.encode().replace(' ', '')
     group_box_size = group_box_size.encode().replace(',', '')
     group_box_size = float(group_box_size)
     if (group_box_size > 1024.0):
         group_box_size = group_box_size / 1024.0
         if (group_box_size > 256.0):
             group_box_size = group_box_size / 1024.0
     group_box_size = round(group_box_size, 1)
     if self.get_volume_group(name).size.get_value().encode() != "":
         rl.push(
             self.get_volume_group(name).size.verify_value_contains(
                 str(group_box_size)))
     return rl
コード例 #17
0
 def select_environment_mode(self, deploymentMode):
     rl = ResultList(
         "Select environment mode [{mode}]".format(
             mode=deploymentMode)
     )
     rl.push(self.click_deployment_mode())
     rl.push(CreateEnvironmentDialog().select_deployment_mode(
         deploymentMode
     ))
     rl.push(CreateEnvironmentDialog().clickNext())
     return rl
コード例 #18
0
 def remove_all(self):
     rl = ResultList("Remove all existing environments")
     _list = []
     for env in self.get_clusters():
         _list.append(env.get_name())
     rl.info("There is(are) {} environments to remove. Names: {}".format(
         len(_list), str(_list)
     ))
     for name in _list:
         rl.push(self.remove(name))
     rl.info("All environments were removed")
     return rl
コード例 #19
0
 def remove(self, name):
     rl = ResultList("Delete environment {name}".format(name=name)) \
         .push(self.environment.find(name=name).click_and_wait()) \
         .push(Cluster_View().click_actions_tab()) \
         .push(Cluster_Actions_View().click_delete_cluster_button()) \
         .push(DeleteEnvironmentDialog().delete())
     env = self.environment.find(name=name)
     if env.is_found():
             WaitBot().wait_for_web_element_disappears(env.get_element())
     return rl
コード例 #20
0
ファイル: Checkbox.py プロジェクト: Mirantis/fuelweb-test
    def set_value(self, value):
        value = self.__check_value(value)

        res = ResultList("Set checkbox [{}] to: [{}]".format(
            self._element_name, value
        ))
        if not self.get_value() == value:
            res.push(
                ActionBot().click(
                    self.get_element(),
                    self._element_name,
                    self._type,
                    invisible=True
                )
            )
        else:
            res.push(
                Result(
                    "The checkbox [{}] already set to: [{}]".format(
                        self._element_name,
                        value
                    )
                )
            )
        return res
コード例 #21
0
ファイル: view.py プロジェクト: Mirantis/fuelweb-test
 def verify_error_amount(self,
                         arg_number,
                         value,
                         arg_start_range=1,
                         arg_end_range=None):
     rl = ResultList("Verify validation of field number of networks"
                     " with value '{args}'".format(args=arg_number))
     rl.push(
         self.vm_networks_vlan_id_range_start.set_value(arg_start_range))
     rl.push(self.verify_amount(arg_number, value))
     if arg_end_range is not None:
         rl.push(
             self.vm_networks_vlan_id_range_end.verify_value(arg_end_range))
     return rl
コード例 #22
0
ファイル: view.py プロジェクト: Mirantis/fuelweb-test
 def verify_error(self,
                  obj,
                  args,
                  value,
                  error_class="error",
                  simple_class=""):
     rl = ResultList(
         "Set '{args}' and verify validation".format(args=args)).\
         push(obj.set_value(args))
     if value:
         rl.push(obj.verify_attribute("class", simple_class))
     else:
         rl.push(obj.verify_attribute("class", error_class))
     return rl
コード例 #23
0
 def verify_controls_presence(self, licence):
     rl = ResultList(
         "Verify controls presence on form for {}".format(licence))
     if licence == "RHSM":
         rl.push(self.rh_user.verify_visible(True)) \
             .push(self.rh_password.verify_visible(True)) \
             .push(self.satellite_server.verify_visible(False)) \
             .push(self.activation_key.verify_visible(False))
     else:
         rl.push(self.rh_user.verify_visible(True)) \
             .push(self.rh_password.verify_visible(True)) \
             .push(self.satellite_server.verify_visible(True)) \
             .push(self.activation_key.verify_visible(True))
     return rl
コード例 #24
0
ファイル: ip_range_row.py プロジェクト: Mirantis/fuelweb-test
 def set_start_ip_correct(self, args):
     rl = ResultList("Set ip range start with '{args}' and verify "
                     "error does not exist".format(args=args)) \
         .push(self.set_start_ip(args)) \
         .push(self.is_correct())
     return rl
コード例 #25
0
ファイル: ip_range_row.py プロジェクト: Mirantis/fuelweb-test
 def set_start_ip_verify_error(self, args):
     rl = ResultList("Set ip range start with '{args}' "
                     "and verify error".format(args=args)) \
         .push(self.set_start_ip(args)) \
         .push(self.is_invalid())
     return rl
コード例 #26
0
    def populate(self, settings, clickNext=False):
        environment = Storage.get_current(TD_Cluster.NAME)
        environment.name = settings["name"]
        environment.version = settings["version"]

        rl = ResultList("Populate create new Environment dialog")

        rl.push(self.name.set_value(settings["name"]))
        rl.push(WaitBot().wait_loading())
        rl.push(self.version.set_value(settings["version"]))
        rl.push(self.name.click())

        if "rh" in settings and len(settings["rh"]) > 0 and \
                self.instruction.is_visible():

            rh = settings["rh"]
            self.wait_loading()
            rl.push(self.select_download_mode(rh["mode"]))
            rl.push(self.username.set_value(rh["username"]))
            rl.push(self.password.set_value(rh["password"]))

            if rh["mode"] == 'rhn':
                rl.push(self.serverHostname.set_value(rh["host"]))
                rl.push(self.activationKey.set_value(rh["activation_key"]))

        if clickNext:
            self.wait_loading()
            rl.push(self.clickNext())
            WaitBot().wait_loading()

        return rl
コード例 #27
0
 def select_roles(self, *roles):
     rl = ResultList("Select roles")
     for role in roles:
         rl.push(RolesPanel().checkbox_role.find(role=role).set_value('on'))
     return rl
コード例 #28
0
 def click_disk_map(self):
     rl = ResultList("Click disk map")
     rl.push(self.disk_map.click())
     WaitBot().wait_for_web_element_stop_resizing(
         self.disk_map.find().get_element())
     return rl
コード例 #29
0
ファイル: editView.py プロジェクト: Mirantis/fuelweb-test
 def click_network_settings_tab(self):
     return ResultList("Click network settings tab") \
         .push(self.tab.find("tab-network-normal").click_and_wait())
コード例 #30
0
ファイル: view.py プロジェクト: Mirantis/fuelweb-test
 def verify_visibility_vlan_manager_fields(self, value):
     rl = ResultList("Verify vlan manager fields "
                     "are visible: {value}".format(value=value))
     rl.push(VerifyBot().verify_visibility(
         NetworkSettingsView().vm_networks_number_of_networks.get_element(),
         value, "Number of networks"))
     rl.push(VerifyBot().verify_visibility(
         NetworkSettingsView().vm_networks_size_of_networks.get_element(),
         value, "Size of networks"))
     if value:
         rl.push(VerifyBot().verify_visibility(
             NetworkSettingsView().vm_networks_vlan_id_range_start.
             get_element(), value, "Start of VLAN ID range"))
         rl.push(VerifyBot().verify_visibility(
             NetworkSettingsView().vm_networks_vlan_id_range_end.
             get_element(), value, "End of VLAN ID range"))
     else:
         rl.push(VerifyBot().verify_visibility(
             NetworkSettingsView().vm_networks_vlan_id_range_start, value,
             "Start of VLAN ID range"))
         rl.push(VerifyBot().verify_visibility(
             NetworkSettingsView().vm_networks_vlan_id_range_end, value,
             "End of VLAN ID range"))
     return rl
コード例 #31
0
ファイル: editView.py プロジェクト: Mirantis/fuelweb-test
 def click_openstack_settings_tab(self):
     return ResultList("Click OpenStack settings tab")\
         .push(self.tab.find("tab-settings-normal").click_and_wait())
コード例 #32
0
 def verify_volume_size_is_identical(self, name):
     rl = ResultList("Verify volume size is identical everywhere")
     group_box_size = self.get_volume_group_box(name).size.get_value()
     rl.push(self.get_volume_group(name).size.verify_value_contains(
         group_box_size))
     return rl
コード例 #33
0
ファイル: editView.py プロジェクト: Mirantis/fuelweb-test
 def click_logs_tab(self):
     return ResultList("Click logs tab") \
         .push(self.tab.find("tab-logs-normal").click_and_wait())
コード例 #34
0
 def set_log_filter(self, log, source, level):
     return ResultList("Set log filter parameters")\
         .push(self.log_node.set_value(log))\
         .push(self.source.set_value(source))\
         .push(self.level.set_value(level))
コード例 #35
0
ファイル: listView.py プロジェクト: Mirantis/fuelweb-test
 def click_nodes(self, *args):
     rl = ResultList("Select nodes")
     for name in args:
         node = Node(self.node.find(name=name).get_element())
         rl.push(node.select())
     return rl
コード例 #36
0
 def delete_nodes(self, *args):
     rl = ResultList("Delete nodes")
     rl.push(self.select_nodes(*args))
     rl.push(self.deleteNodes.click_and_wait())
     rl.push(DeleteNodeDialog().delete())
     return rl
コード例 #37
0
ファイル: editView.py プロジェクト: Mirantis/fuelweb-test
 def click_actions_tab(self):
     return ResultList("Click actions tab") \
         .push(self.tab.find("tab-actions-normal").click_and_wait())
コード例 #38
0
    def create_environment(self, settings):
        """
        :param settings: {
            "name": "",
            "version": "",
            "rh": {
                "mode": "",
                "username": "",
                "password": "",
                "host": "",
                "activation_key": ""
            },
            "deployment_mode": "",
            "compute_type": "",
            "network": "",
            "storage": {
                "cinder": "",
                "glance": ""
            },
            "services":{
                "savanna": True,
                "murano": True
            }
        }
        """
        rl = ResultList("Create new environment")

        rl.push(self.populate(settings, True))

        rl.push(self.select_deployment_mode(settings["deployment_mode"]))
        rl.push(self.clickNext(()))

        #Set compute type (hypervisor)
        if "compute_type" in settings:
            rl.push(self.set_parameter_radio(
                settings["compute_type"], Radio.VALUE_ON))
        rl.push(self.clickNext())

        # Set network type
        if "network" in settings:
            rl.push(self.set_parameter_radio(
                settings["network"], Radio.VALUE_ON))
        rl.push(self.clickNext())

        if "storage" in settings:
            storage = settings["storage"]
            # Set cinder backend
            if "cinder" in storage:
                rl.push(
                    self.storage_cinder.find(storage["cinder"])
                    .set_value(Radio.VALUE_ON))

            # Set glance backend
            if "glance" in storage:
                rl.push(
                    self.storage_glance.find(storage["glance"])
                    .set_value(Radio.VALUE_ON))
        rl.push(self.clickNext())

        if "services" in settings:
            services = settings["services"]
            if "savanna" in services and services["savanna"]:
                rl.push(self.set_parameter_checkbox(
                    "Install Savanna", Checkbox.VALUE_ON))
            if "murano" in services and services["murano"]:
                rl.push(self.set_parameter_checkbox(
                    "Install Murano", Checkbox.VALUE_ON))
        rl.push(self.clickNext())

        rl.push(self.create())
        return rl
コード例 #39
0
 def remove_all(self):
     rl = ResultList("Remove all existing environments")
     for env in self.get_clusters():
         rl.push(self.remove(env.get_name()))
     rl.info("All environments were removed")
     return rl
コード例 #40
0
 def click_disk_map(self):
     rl = ResultList("Click disk map")
     rl.push(self.disk_map.click())
     WaitBot().wait_for_web_element_stop_resizing(
         self.disk_map.find().get_element())
     return rl
コード例 #41
0
ファイル: listView.py プロジェクト: Mirantis/fuelweb-test
 def click_nodes(self, *args):
     rl = ResultList("Select nodes")
     for name in args:
         node = Node(self.node.find(name=name).get_element())
         rl.push(node.select())
     return rl
 def populate(self, deploymentMode, submit=False):
     rl = ResultList("Populate Environment mode")\
         .push(self.select_deployment_mode(deploymentMode))
     if submit:
         rl.push(self.apply())
     return rl
コード例 #43
0
 def select(self, name):
     rl = ResultList("Select environment [{}]".format(name))
     rl.push(self.environment.find(name=name).click_and_wait())
     rl.push(self.get_wait_bot().wait_for_time(2))
     return rl