Source code for cfme.ansible_tower.explorer

import attr

from navmazing import NavigateToAttribute, NavigateToSibling
from widgetastic.widget import Text, View
from widgetastic_patternfly import Dropdown
from widgetastic.utils import VersionPick, Version
from widgetastic_manageiq import Search, ItemsToolBarViewSelector, Button, Accordion, ManageIQTree

from cfme.base import Server
from cfme.base.login import BaseLoggedInPage
from cfme.modeling.base import BaseCollection, BaseEntity
from cfme.utils.appliance.implementations.ui import navigator, CFMENavigateStep


[docs]class TowerExplorerAccordion(View): @View.nested class providers(Accordion): # noqa ACCORDION_NAME = 'Providers' tree = ManageIQTree() @View.nested class configured_systems(Accordion): # noqa ACCORDION_NAME = 'Configured Systems' tree = ManageIQTree() @View.nested class job_templates(Accordion): # noqa ACCORDION_NAME = 'Job Templates' tree = ManageIQTree()
[docs]class TowerExplorerProviderToolbar(View): reload = Button(title=VersionPick({Version.lowest(): 'Reload current display', '5.9': 'Refresh this page'})) configuration = Dropdown('Configuration') policy = Dropdown('Policy') download = Dropdown('Download') view_selector = View.nested(ItemsToolBarViewSelector)
[docs]class TowerExplorerSystemJobTemplatesToolbar(View): reload = Button(title=VersionPick({Version.lowest(): 'Reload current display', '5.9': 'Refresh this page'})) policy = Dropdown('Policy') download = Dropdown('Download') view_selector = View.nested(ItemsToolBarViewSelector)
[docs]class TowerExplorerView(BaseLoggedInPage): title = Text("#explorer_title_text") search = View.nested(Search) sidebar = View.nested(TowerExplorerAccordion) @property def in_tower_explorer(self): return (self.logged_in_as_current_user and self.navigation.currently_selected == ['Automation', 'Ansible Tower', 'Explorer'])
[docs]class TowerExplorerProvidersAllView(TowerExplorerView): toolbar = View.nested(TowerExplorerProviderToolbar) @property def is_displayed(self): return ( self.in_tower_explorer and self.title.text == 'All Ansible Tower Providers' and self.sidebar.tower_explorer_providers.is_opened )
[docs]class TowerExplorerSystemsAllView(TowerExplorerView): toolbar = View.nested(TowerExplorerSystemJobTemplatesToolbar) @property def is_displayed(self): return ( self.in_tower_explorer and self.title.text == 'All Ansible Tower Configured Systems' and self.sidebar.tower_explorer_systems.is_opened )
[docs]class TowerExplorerJobTemplatesAllView(TowerExplorerView): toolbar = View.nested(TowerExplorerSystemJobTemplatesToolbar) @property def is_displayed(self): return ( self.in_tower_explorer and self.title.text == 'All Ansible Tower Job Templates' and self.sidebar.tower_explorer_job_templates.is_opened )
@attr.s
[docs]class AnsibleTowerProvider(BaseEntity): pass
@attr.s
[docs]class AnsibleTowerProvidersCollection(BaseCollection): ENTITY = AnsibleTowerProvider
@attr.s
[docs]class AnsibleTowerSystem(BaseEntity): pass
@attr.s
[docs]class AnsibleTowerSystemsCollection(BaseCollection): ENTITY = AnsibleTowerSystem
@attr.s
[docs]class AnsibleTowerJobTemplate(BaseEntity): pass
@attr.s
[docs]class AnsibleTowerJobTemplatesCollection(BaseCollection): ENTITY = AnsibleTowerJobTemplate
@navigator.register(Server, 'AnsibleTowerExplorer')
[docs]class AnsibleTowerExplorer(CFMENavigateStep): VIEW = TowerExplorerProvidersAllView prerequisite = NavigateToSibling('LoggedIn')
[docs] def step(self, *args, **kwargs): self.prerequisite_view.navigation.select('Automation', 'Ansible Tower', 'Explorer')
@navigator.register(AnsibleTowerProvidersCollection, 'All')
[docs]class AnsibleTowerExplorerProvidersAll(CFMENavigateStep): VIEW = TowerExplorerProvidersAllView prerequisite = NavigateToAttribute('appliance.server', 'AnsibleTowerExplorer')
[docs] def step(self, *args, **kwargs): self.view.sidebar.providers.tree.click_path('All Ansible Tower Providers')
@navigator.register(AnsibleTowerSystemsCollection, 'All')
[docs]class TowerExplorerSystemAll(CFMENavigateStep): VIEW = TowerExplorerSystemsAllView prerequisite = NavigateToAttribute('appliance.server', 'AnsibleTowerExplorer')
[docs] def step(self, *args, **kwargs): self.view.sidebar.configured_systems.tree.click_path('All Ansible Tower Configured Systems')
@navigator.register(AnsibleTowerJobTemplatesCollection, 'All')
[docs]class TowerExplorerJobTemplatesAll(CFMENavigateStep): VIEW = TowerExplorerJobTemplatesAllView prerequisite = NavigateToAttribute('appliance.server', 'AnsibleTowerExplorer')
[docs] def step(self, *args, **kwargs): self.view.sidebar.job_templates.tree.click_path('All Ansible Tower Job Templates')