Skip to content

Commit

Permalink
added properties for hostgroup
Browse files Browse the repository at this point in the history
  • Loading branch information
amolpati30 committed May 21, 2024
1 parent 53e2b8e commit 0f82d40
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 1 deletion.
65 changes: 65 additions & 0 deletions airgun/entities/host_new.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
ParameterDeleteDialog,
RemediationView,
)
from airgun.views.hostgroup import HostGroupEditView
from airgun.views.job_invocation import JobInvocationCreateView

global available_param_types
Expand Down Expand Up @@ -47,6 +48,70 @@ 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])
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])

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])

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()
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)
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])
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)
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
9 changes: 9 additions & 0 deletions airgun/entities/hostgroup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from navmazing import NavigateToSibling
from wait_for import wait_for
from widgetastic.exceptions import NoSuchElementException

from airgun.entities.base import BaseEntity
Expand Down Expand Up @@ -65,6 +66,14 @@ def update(self, entity_name, values):
view.flash.assert_no_error()
view.flash.dismiss()

def total_no_of_assigned_role(self, entity_name):
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)
wait_for(lambda: int(role_list[-1].text.split(". ")[0]), timeout=30)
return int(role_list[-1].text.split(". ")[0])


@navigator.register(HostGroupEntity, 'All')
class ShowAllHostGroups(NavigateStep):
Expand Down
2 changes: 1 addition & 1 deletion airgun/views/host_new.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class overview(Tab):
@View.nested
class details(Card):
ROOT = './/article[.//div[text()="Details"]]'

edit = Text('.//div[@class="pf-c-description-list__group"]/dd//div[2]')
details = HostDetailsCard()

power_operations = OUIAButton('power-status-dropdown-toggle')
Expand Down
14 changes: 14 additions & 0 deletions airgun/views/hostgroup.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,17 @@ def is_displayed(self):
and self.breadcrumb.locations[0] == 'Host Groups'
and self.breadcrumb.read().startswith('Edit ')
)

@View.nested
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")]'
)
no_of_available_role = Text('//span[@class="pf-c-options-menu__toggle-text"]//b[2]')
submit = Text('//input[@name="commit"]')

0 comments on commit 0f82d40

Please sign in to comment.