Skip to content

Commit

Permalink
updated airgun entities and views for hostgroup and how_new
Browse files Browse the repository at this point in the history
  • Loading branch information
amolpati30 committed May 25, 2024
1 parent 0f82d40 commit 5f0b5c2
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 56 deletions.
97 changes: 49 additions & 48 deletions airgun/entities/host_new.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@


class NewHostEntity(HostEntity):

def create(self, values):
"""Create new host entity"""
view = self.navigate_to(self, 'New')
Expand All @@ -48,69 +49,69 @@ def get_details(self, entity_name, widget_names=None):
view.read(widget_names=widget_names)
return view.read(widget_names=widget_names)

def assign_role_to_hostgroup(self, entity_name):
view = self.navigate_to(self, 'NewDetails', entity_name=entity_name)
view.wait_displayed()
self.browser.plugin.ensure_page_safe()
view.overview.details.edit.click()
self.browser.switch_to_window(self.browser.window_handles[1])
def _decorator(func):
def common_setup(self, entity_name=None, role_name=None):
view = self.navigate_to(self, 'NewDetails', entity_name=entity_name, role=role_name)
view.wait_displayed()
self.browser.plugin.ensure_page_safe()
view.overview.details.edit.click()
self.browser.switch_to_window(self.browser.window_handles[1])
hostgrp_view = HostGroupEditView(self.browser)
func(self, entity_name, role_name)
hostgrp_view.ansible_roles.submit.click()
self.browser.switch_to_window(self.browser.window_handles[0])
self.browser.close_window(self.browser.window_handles[1])

return common_setup

@_decorator
def assign_role_to_hostgroup(self, entity_name, role_name):
"""Assign a single Ansible role from the host group based on user input
Args:
entity_name: Name of the host
role_name: Name of the ansible role
"""
hostgrp_view = HostGroupEditView(self.browser)
hostgrp_view.ansible_roles.more_item.click()
hostgrp_view.ansible_roles.select_pages.click()
assign_role = hostgrp_view.ansible_roles.available_role.read().split(". ")
if assign_role[1] == 'RedHatInsights.insights-client':
hostgrp_view.ansible_roles.available_role.click()
hostgrp_view.ansible_roles.submit.click()
self.browser.switch_to_window(self.browser.window_handles[0])
self.browser.close_window(self.browser.window_handles[1])
role_list = self.browser.elements(hostgrp_view.ansible_roles.available_role, parent=self)
for single_role in role_list[1:]:
if single_role.text.split(". ")[1] == role_name:
single_role.click()

def remove_hostgroup_role(self, entity_name):
view = self.navigate_to(self, 'NewDetails', entity_name=entity_name)
view.wait_displayed()
self.browser.plugin.ensure_page_safe()
view.overview.details.edit.click()
self.browser.switch_to_window(self.browser.window_handles[1])
hostgrp_view = HostGroupEditView(self.browser)
assign_role = hostgrp_view.ansible_roles.assigned_role.read().split(". ")
if assign_role[1] == 'RedHatInsights.insights-client':
hostgrp_view.ansible_roles.assigned_role.click()
hostgrp_view.ansible_roles.submit.click()
self.browser.switch_to_window(self.browser.window_handles[0])
self.browser.close_window(self.browser.window_handles[1])
@_decorator
def remove_hostgroup_role(self, entity_name, role_name):
"""Remove a single Ansible role from the host group based on user input
def assign_all_role_to_hostgroup(self, entity_name):
view = self.navigate_to(self, 'NewDetails', entity_name=entity_name)
view.wait_displayed()
self.browser.plugin.ensure_page_safe()
view.overview.details.edit.click()
self.browser.switch_to_window(self.browser.window_handles[-1])
self.browser.plugin.ensure_page_safe()
Args:
entity_name: Name of the host
role_name: Name of the ansible role
"""
hostgrp_view = HostGroupEditView(self.browser)
role_list = self.browser.elements(hostgrp_view.ansible_roles.assigned_role, parent=self)
for single_role in role_list[1:]:
if single_role.text.split(". ")[1] == role_name:
single_role.click()

@_decorator
def assign_all_role_to_hostgroup(self, entity_name, role_name=None):
"""Assign all Ansible roles from the host group"""
hostgrp_view = HostGroupEditView(self.browser)
hostgrp_view.ansible_roles.more_item.click()
hostgrp_view.ansible_roles.select_pages.click()
available_ansible_role = '//div[@class="available-roles-container col-sm-6"]/div[2]/div'
role_list = self.browser.selenium.find_elements("xpath", available_ansible_role)
role_list = self.browser.elements(hostgrp_view.ansible_roles.available_role, parent=self)
for single_role in role_list:
single_role.click()
hostgrp_view.ansible_roles.submit.click()
self.browser.switch_to_window(self.browser.window_handles[0])
self.browser.close_window(self.browser.window_handles[-1])

def remove_all_role_from_hostgroup(self, entity_name):
view = self.navigate_to(self, 'NewDetails', entity_name=entity_name)
view.wait_displayed()
self.browser.plugin.ensure_page_safe()
view.overview.details.edit.click()
self.browser.switch_to_window(self.browser.window_handles[1])
@_decorator
def remove_all_role_from_hostgroup(self, entity_name, role_name=None):
"""Remove all Ansible roles from the host group"""
hostgrp_view = HostGroupEditView(self.browser)
hostgrp_view.ansible_roles.click()
assigned_ansible_role = '//div[@class="assigned-roles-container col-sm-6"]/div[2]/div'
role_list = self.browser.selenium.find_elements("xpath", assigned_ansible_role)
role_list = self.browser.elements(hostgrp_view.ansible_roles.assigned_role, parent=self)
for single_role in role_list:
single_role.click()
hostgrp_view.ansible_roles.submit.click()
self.browser.switch_to_window(self.browser.window_handles[0])
self.browser.close_window(self.browser.window_handles[1])

def get_host_statuses(self, entity_name):
"""Read host statuses from Host Details page
Expand Down
4 changes: 2 additions & 2 deletions airgun/entities/hostgroup.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ def update(self, entity_name, values):
view.flash.dismiss()

def total_no_of_assigned_role(self, entity_name):
"""Count of assigned role to the host group"""
view = self.navigate_to(self, 'Edit', entity_name=entity_name)
view.ansible_roles.click()
assigned_ansible_role = '//div[@class="assigned-roles-container col-sm-6"]/div[2]/div'
role_list = self.browser.selenium.find_elements("xpath", assigned_ansible_role)
role_list = self.browser.elements(view.ansible_roles.assigned_ansible_role, parent=self)
wait_for(lambda: int(role_list[-1].text.split(". ")[0]), timeout=30)
return int(role_list[-1].text.split(". ")[0])

Expand Down
9 changes: 3 additions & 6 deletions airgun/views/hostgroup.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,8 @@ class ansible_roles(SatTab):
TAB_NAME = 'Ansible Roles'
more_item = Text('//span[@class="pf-c-options-menu__toggle-button-icon"]')
select_pages = Text('//ul[@class="pf-c-options-menu__menu"]/li[6]/button')
available_role = Text(
'//div[@class="available-roles-container col-sm-6"]/div[2]//div[contains(text(), "RedHatInsights.insights-client")]'
)
assigned_role = Text(
'//div[@class="assigned-roles-container col-sm-6"]/div[2]//div[contains(text(), "RedHatInsights.insights-client")]'
)
available_role = '//div[@class="available-roles-container col-sm-6"]/div[2]/div'
assigned_role = '//div[@class="assigned-roles-container col-sm-6"]/div[2]/div'
assigned_ansible_role = '//div[@class="assigned-roles-container col-sm-6"]/div[2]/div'
no_of_available_role = Text('//span[@class="pf-c-options-menu__toggle-text"]//b[2]')
submit = Text('//input[@name="commit"]')

0 comments on commit 5f0b5c2

Please sign in to comment.