Beispiel #1
0
    def __init__(self, parent=None):
        self.clusterName = HtmlElement(xpath="./div[@class='cluster-name']",
                                       element_name="Cluster name")
        self.status = HtmlElement(xpath="./div[@class='cluster-status']",
                                  element_name="Status")

        AbstractView.__init__(self, parent)
Beispiel #2
0
    def __init__(self, parent=None):
        self.logo = Link(
            xpath=".//div[@class='navigation-bar']//li[@class='product-logo']",
            element_name="Logo")
        self.nodesTotal = HtmlElement(
            xpath=".//div[@class='navigation-bar']//div[@class='statistic']"
            "/div[@class='stat-count'][1]",
            element_name="Nodes total")
        self.nodesUnallocated = HtmlElement(
            xpath=".//div[@class='navigation-bar']//div[@class='statistic']"
            "/div[@class='stat-count'][1]",
            element_name="Nodes unallocated")
        self.notificationsLink = Link(
            xpath=".//div[@class='navigation-bar']"
            "//li[contains(@class, 'notifications')]",
            element_name="Notifications")
        self.openStackEnvironmentsLink = Link(
            xpath=".//div[@class='navigation-bar']"
            "//li[contains(.,'OpenStack Environments')]",
            element_name="OpenStack Environments")
        self.releases = Link(xpath=".//div[@class='navigation-bar']"
                             "//li[contains(.,'Releases')]/a",
                             element_name="Releases")
        self.supportLink = Link(xpath=".//div[@class='navigation-bar']"
                                "//li[contains(.,'OpenStack Support')]",
                                element_name="OpenStack Support")

        AbstractView.__init__(self, parent)
Beispiel #3
0
    def __init__(self, parent=None):
        self.name = HtmlElement(xpath=".//div[@class='volume-group-name']",
                                element_name="name")

        self.size = HtmlElement(xpath=".//div[@class='volume-group-size']",
                                element_name="name")

        self.close = Link(xpath=".//div[@class='close-btn']",
                          element_name="close")

        BasePage.__init__(self, parent)
Beispiel #4
0
 def __init__(self, table):
     self.rows = [
         HtmlElement(element=element)
         for element in self.get_action_bot().find_elements(
             by=By.XPATH, value="./tbody/tr", parent=table
         )
     ]
     self.cell = HtmlElement(
         xpath="./tbody/tr[{row}]/td[{column}]",
         element_name="cell"
     )
     BasePage.__init__(self, parent=table)
Beispiel #5
0
    def __init__(self, parent=None):
        self.addNodes = Link(
            xpath="//div//a[@class='btn btn-success btn-add-nodes']",
            element_name="Add nodes"
        )
        self.deleteNodes = Button(
            xpath="//button[contains(@class,'btn-delete-nodes')]",
            element_name="Delete nodes"
        )
        self.reassignRoles = Button(
            xpath="//button[contains(@class, 'btn-assign-roles')]"
                  "and contains(text(),'Reassign Roles')]",
            element_name="Reassign roles"
        )
        self.assignRoles = Button(
            xpath="//button[contains("
                  "@class, 'btn btn-success btn-assign-roles') "
                  "and contains(text(),'Assign Roles')]",
            element_name="Assign roles"
        )
        self.environment_status = HtmlElement(
            xpath="//div[@class='environment-status']",
            element_name="Environment status"
        )
        self.groupBy = Select(
            xpath="//div[@class='cluster-toolbar-item nodes-filter']"
                  "//select[@name='grouping']",
            element_name="Select group by"
        )
        self.backToEnvironmentNodeList = Button(
            xpath="//div[@class='btn btn-go-to-cluster']",
            element_name="Back to Environment Node List"
        )

        self.nodelist = HtmlElement(
            xpath="//div[@class='node-groups' and "
                  "contains(div[@class='row-fluid node-group-header']"
                  "//h4/text(),'{role}')]",
            element_name="'{role}' block"
        )
        self.deploymentMode = Button(
            xpath="//button[contains(@class,'btn btn-cluster-actions')]",
            element_name="Deployment mode"
        )
        self.alertError = HtmlElement(
            xpath="//div[contains(@class, 'alert-block') "
                  "and contains(@class, 'global-error')]/p",
            element_name="Alert Error"
        )

        AbstractView.__init__(self, parent)
Beispiel #6
0
 def __init__(self):
     self.configure = Button(
         xpath="./tbody/tr[{row}]/td[{column}]/button",
         element_name="Configure"
     )
     self.progress = HtmlElement(
         xpath="./tbody/tr[{row}]/td[{column}]"
               "//div[contains(@class, 'progress')]",
         element_name="progress bar"
     )
     Table.__init__(self, HtmlElement(
         xpath=".//table[contains(@class, 'releases-table')]",
         element_name="Releases table"
     ).get_element())
Beispiel #7
0
    def __init__(self):
        self.disk_box = HtmlElement(
            xpath=".//div[@class='disk-box disk' and "
            "contains(div[@class='disk-box-name pull-left'],'{name}')]",
            element_name="Disk box {name}")

        AbstractView.__init__(self)
Beispiel #8
0
    def __init__(self, parent=None):
        self.name = HtmlElement(
            xpath=".//div[@class='node-name']//p[@class='node-renameable']",
            element_name="Cluster name")

        self.role = HtmlElement(xpath=".//div[@class='roles']//li",
                                element_name="Cluster role")

        self._checkbox = Checkbox(xpath=".//label[@class='node-checkbox']"
                                  "//div[@class='custom-tumbler']/input",
                                  element_name="Checkbox")

        self.status = HtmlElement(xpath=".//div[@class='node-status']",
                                  element_name="Status")

        self.details = HtmlElement(xpath=".//div[@class='node-details']",
                                   element_name="Node details icon")

        AbstractView.__init__(self, parent)
Beispiel #9
0
 def __init__(self, parent=None):
     self.checkbox_role = Checkbox(
         xpath="//input[@type='checkbox' and @value='{role}']",
         element_name="Checkbox '{role}'")
     self.assign = Button(
         xpath=".//button[@class='btn btn-success btn-assign']",
         element_name="Assign button")
     self.conflict_role = HtmlElement(
         xpath=".//div[@class='role-conflict '{role}'']",
         element_name="Conflict '{role}'")
     AbstractView.__init__(self, parent)
Beispiel #10
0
    def __init__(self, parent=None):
        self.name = HtmlElement(xpath=".//div[@class='volume-group-box-name']",
                                element_name="name")

        self.size = Input(
            xpath=".//div[@class='volume-group-box-input']/input",
            element_name="size")

        self.use_all_unallocated = Link(
            xpath=".//div[@class='use-all-unallocated']",
            element_name="Use all unallocated")

        BasePage.__init__(self, parent)
Beispiel #11
0
    def __init__(self, parent=None):
        self.tab = HtmlElement(
            xpath="//div[@id='content']//ul[contains(@class, 'nav nav-tabs')]"
            "/li/a[b[@class='{}']]",
            element_name="Tab")
        self.deployChanges = Button(
            xpath="//button[contains(@class, 'deploy-btn')]",
            element_name="Deploy Changes")
        self.deploymentBar = HtmlElement(
            xpath="//li[contains(@class, 'deployment-control')]"
            "//div[contains(@class, 'progress-deploy')]",
            element_name="Deployment progress")

        self.successMessage = HtmlElement(
            xpath="//div[contains(@class, 'global-success')]/p",
            element_name="Success message")

        self.errorMessage = HtmlElement(
            xpath="//div[contains(@class, 'global-error')]/p",
            element_name="Error message")

        AbstractView.__init__(self, parent)
Beispiel #12
0
    def __init__(self, parent=None):
        self.environment = HtmlElement(
            xpath="//div[@id='content']//div[@class='cluster-list']"
                  "//a[contains(@class, 'clusterbox') "
                  "and div[contains(@class, 'cluster-name') "
                  "and text()='{name}']]",
            element_name="Environment {name}"
        )

        self.newEnvironment = Link(
            xpath="//div[@id='content']//div[@class='cluster-list']"
                  "//div[contains(@class, 'clusterbox create-cluster')]",
            element_name="New environment")

        AbstractView.__init__(self, parent)
        self.url = "#clusters"
Beispiel #13
0
    def __init__(self, parent=None):
        self.caption = HtmlElement(
            xpath=".//div[contains(@class,'disk-box-name')]",
            element_name="Caption")

        self.total_space = HtmlElement(
            xpath=".//div[contains(@class,'disk-box-size')]",
            element_name="Total space")

        self.bootable_marker = HtmlElement(
            xpath=".//div[contains(@class,'disk-box-name')]/span",
            element_name="Disk's bootable marker")

        self.volume_group = HtmlElement(
            xpath=".//div[contains(@class,'volume-group') and "
            ".//div[@class='volume-group-name']='{name}']",
            element_name="Volume group {name}")

        self.disk_parameter = HtmlElement(
            xpath=".//div[contains(@class,'disk-map-details-item')]",
            element_name="Disk parameter {name}")

        self.disk_map_details = HtmlElement(
            xpath=".//div[contains(@class,'disk-map-details-item') and "
            "div[@class='disk-map-details-name']='{name}']/"
            "div[@class='disk-map-details-parameter']",
            element_name="Disk parameter {name}")

        self.volume_group_box = HtmlElement(
            xpath=".//div[contains(@class,'volume-group-box') and "
            "div[@class='volume-group-box-name']='{name}']",
            element_name="Volume group box {name}")

        self.make_bootable = Button(xpath=".//button[text()='Make Bootable']",
                                    element_name="Make Bootable")

        self.disk_map = HtmlElement(
            xpath=".//div[@class='disk-map-short disk-map-full']",
            element_name="Disk map")

        BasePage.__init__(self, parent)
Beispiel #14
0
    def __init__(self, parent=None):
        self.log_node = Select(
            xpath=".//div[contains(@class,'log-type-filter')]/select",
            element_name="Logs")

        self.source = Select(
            xpath=".//div[contains(@class,'log-source-filter')]/select",
            element_name="Source")

        self.level = Select(
            xpath=".//div[contains(@class,'log-level-filter')]/select",
            element_name="Min. level")

        self.show_button = Button(
            xpath=".//button[contains(@class,'show-logs-btn')]",
            element_name="Show")

        self.table_logs = HtmlElement(
            xpath=".//table[contains(@class,'table-logs')]",
            element_name="Logs table")

        AbstractView.__init__(self, parent)
    def __init__(self):
        AbstractDialog.__init__(self)

        self.alert_message = HtmlElement(
            xpath=".//div[@class='alert alert-error']",
            element_name="Alert error message")
Beispiel #16
0
 def __init__(self, parent=None):
     self.node = HtmlElement(
         xpath=".//div[(@class='node' or @class='node checked') and "
         ".//div[@class='node-name' and .//div//text()='{name}']]",
         element_name="Node [{name}]")
     AbstractView.__init__(self, parent)
Beispiel #17
0
 def get_roles(self):
     roles_elements = ActionBot().find_elements(
         By.XPATH, ".//div[@class='roles']//li")
     return [HtmlElement(element=we).get_value() for we in roles_elements]
    def __init__(self):

        self.activationKey = Input(
            xpath=".//input[@name='activation_key']",
            element_name="Activation key"
        )
        self.deploymentMode = Radio(
            xpath=".//div[contains(@class, 'mode-control-group')]"
            "//label[div[contains(@class, 'parameter-name') "
            "and text()='{mode}']]",
            element_name="Deployment mode [{mode}]"
        )
        self.downloadType = Radio(
            xpath=".//div[contains(@class, 'custom-tumbler') "
                  "and input[@type='radio' and @value='{type}']]",
            element_name="Download type [{type}]"
        )
        self.instruction = HtmlElement(
            xpath=".//div[@class='alert alert-info rhel-license hide']",
            element_name="Instruction to deploy RHOS"
        )
        self.message_configuration_ready = HtmlElement(
            xpath=".//div[contains(text(), 'Configuration is finished and "
                  "now you can create your cluster!')]",
            element_name="Message: ready to create environment"
        )
        self.name = Input(
            xpath=".//input[@name='name']", element_name="Name"
        )
        self.nameErrorMessage = HtmlElement(
            xpath="//div[contains(@class,'control-group') and "
                  ".//input[contains(@name, 'name')]]"
                  "//span[@class='help-inline']",
            element_name="name error message"
        )
        self.parameter_radio = Radio(
            xpath=".//label[contains(@class,'parameter-box') and "
                  "div[contains(@class,'parameter-name')]/text()='{name}']",
            element_name="Parameter {name}"
        )
        self.parameter_checkbox = Checkbox(
            xpath=".//label[contains(@class,'parameter-box') and "
                  "div[contains(@class,'parameter-name')]='{name}']//"
                  "input[@type='checkbox']",
            element_name="Parameter {name}")
        self.password = Input(
            xpath=".//input[@name='password']",
            element_name="Password"
        )
        self.releaseDescription = HtmlElement(
            xpath=".//div[@class='release-description help-block']",
            element_name="Release description"
        )
        self.serverHostname = Input(
            xpath=".//input[@name='satellite']",
            element_name="Satellite server hostname"
        )
        self.storage_cinder = Radio(
            xpath=".//div[contains(@class, 'span6') and contains(./h5/text(), "
                  "'Cinder backend')]//label[contains(@class,'parameter-box') "
                  "and div[contains(@class,'parameter-name')]"
                  "/text()='{name}']",
            element_name="Cinder backend {name}"
        )
        self.storage_glance = Radio(
            xpath=".//div[contains(@class, 'span6') and contains(./h5/text(), "
                  "'Glance backend')]//label[contains(@class,'parameter-box') "
                  "and div[contains(@class,'parameter-name')]"
                  "/text()='{name}']",
            element_name="Glance backend {name}"
        )
        self.username = Input(
            xpath=".//input[@name='username']",
            element_name="Username"
        )
        self.version = Select(
            xpath=".//select[@name='release']", element_name="Version"
        )

        AbstractDialog.__init__(self)
Beispiel #19
0
    def __init__(self, parent=None):
        self.save_settings = Button(
            xpath=".//div[contains(@class, 'apply-btn')]",
            element_name="Save Settings")

        self.cancel_changes = Button(
            xpath=".//div[contains(@class, 'btn-revert-changes')]",
            element_name="Cancel Changes")

        self.verify_networks = Button(
            xpath=".//div[contains(@class, 'verify-networks-btn')]",
            element_name="Verify networks")

        self.flat_dhcp_manager = Radio(xpath=".//div[@class='custom-tumbler' "
                                       "and input[@value='FlatDHCPManager']]",
                                       element_name="FlatDHCP Manager")

        self.vlan_manager = Radio(xpath=".//div[@class='custom-tumbler' "
                                  "and input[@value='VlanManager']]",
                                  element_name="Vlan Manager")

        self.ip_range_row = HtmlElement(
            xpath=".//div[@class='{name}']/"
            "div[contains(@class,'range-row ')][{num}]",
            element_name="Range row {name} [{num}]")

        self.public_vlan_id = Input(
            xpath=".//input[@name='public-vlan_start']",
            element_name="Public VLAN ID")

        self.public_netmask = Input(xpath=".//input[@name='public-netmask']",
                                    element_name="Public Netmask")

        self.public_gateway = Input(xpath=".//input[@name='public-gateway']",
                                    element_name="Public Gateway")

        self.management_cidr = Input(xpath=".//input[@name='management-cidr']",
                                     element_name="Management CIDR")

        self.management_vlan_id = Input(
            xpath=".//input[@name='management-vlan_start']",
            element_name="Management VLAN ID")

        self.storage_cidr = Input(xpath=".//input[@name='storage-cidr']",
                                  element_name="Storage CIDR")

        self.storage_vlan_id = Input(
            xpath=".//input[@name='storage-vlan_start']",
            element_name="Storage VLAN ID")

        self.vm_networks_cidr = Input(xpath=".//input[@name='fixed-cidr']",
                                      element_name="VM Networks CIDR")

        self.vm_networks_vlan_id = Input(
            xpath=".//input[@name='fixed-vlan_start']",
            element_name="VM Networks VLAN ID")

        self.vm_networks_vlan_id_range_start = Input(
            xpath=".//input[@name='fixed-vlan_range-start']",
            element_name="VM Networks VLAN ID range start")

        self.vm_networks_vlan_id_range_end = Input(
            xpath=".//input[@name='fixed-vlan_range-end']",
            element_name="VM Networks VLAN ID range end")

        self.vm_networks_number_of_networks = Input(
            xpath=".//input[@name='fixed-amount']",
            element_name="VM Networks. Number of networks")

        self.vm_networks_size_of_networks = Select(
            xpath=".//select[@name='fixed-network_size']",
            element_name="VM Networks. Size of networks")

        self.verify_networks = Button(
            xpath=".//button[contains(@class,'verify-networks-btn')]",
            element_name="Verify networks")

        self.cancel_changes = Button(
            xpath=".//button[contains(@class, 'btn-revert-changes')]",
            element_name="Cancel changes")
        self.save_settings = Button(
            xpath=".//button[contains(@class, 'btn-success apply-btn')]",
            element_name="Save settings")

        AbstractView.__init__(self, parent)