-
Notifications
You must be signed in to change notification settings - Fork 165
[1LP][RFR] Conversion of ConfigManager to use BaseProvider and BaseCollection #9317
[1LP][RFR] Conversion of ConfigManager to use BaseProvider and BaseCollection #9317
Conversation
902beca
to
6b04193
Compare
@nachandr I'd like your input on what I've done here. It is a pretty major refactor on the configuration management code. |
5b3bafe
to
168940e
Compare
168940e
to
84ad7eb
Compare
PRT failures do not appear to be the result of these changes, marking RFR. |
@john-dupuy please resolve the conflicts |
5fde130
to
ff4459c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple small changes across the test modules and framework modules.
Want to see resolution to some of the PRT failures for AttributeError on the collection name, and handling of the object used for navigation (property object has no attribute server
)
d717f4b
to
2c651c2
Compare
133545d
to
6a70068
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
kind = "Configuration Profile" | ||
if self.manager.type == "ansible_tower": | ||
kind = "Inventory Group" | ||
return kind |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
return if self.manager.type == "ansible_tower" else ""Configuration Profile""
prerequisite = NavigateToSibling('All') | ||
|
||
@navigator.register(ConfigManagerProviderCollection, "All") | ||
class ConfigManagerAllPage(CFMENavigateStep): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If no destination available then better to remove this still we will get proper error msg.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"There is no page in MIQ that displays all config managers."
" Use 'AllOfType' on a config manager provider instance."
)
The error message I provided provides some extra details about what you should do instead. Do you think we should remove that additional info?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mixed feelings - but I do appreciate the extra context provided by the exception here.
I think if it stays, it should raise navmazing.NavigationDestinationNotFound
instead of NotImplementedError
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modified to raise NavigationDestinationNotFound
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good - I'm willing to accept as some 'tech-debt' to just remove it once callers are familiar with new structure and definition.
1311a56
to
4276f05
Compare
4276f05
to
6ec5f9b
Compare
I detected some fixture changes in commit 6ec5f9b Show fixturesThe local fixture
The local fixture
The local fixture
The local fixture
The local fixture
Please, consider creating a PRT run to make sure your fixture changes do not break existing usage 😃 |
Results from jenkins run look good. Any test failures will be handled in separate PRs. |
…llection (ManageIQ#9317) * initial commit of conversion of ConfigManager to Entity * First commit of conversion to provider * Config manager as a provider updates * Fix collection test_advanced_search * Add GH blocker and use eq over cmp
Converting config manager (i.e. Satellite and Ansible Tower Providers) to use BaseProvider and BaseCollection. This is an initial stab in order to get these providers up to speed with the rest of the framework.
With this enhancement, we'll be able to parametrize tests against config management providers in the same way that we parametrize tests against normal providers.
In addition to updating config managers to use BaseEntity and BaseCollection this pr also
cfme.infrastructure.config_management.ansible_tower
pytest.mark.provider([AnsibleTowerProvider, SatelliteProvider])
ConfigProfiles
as a subcollection forConfigManagers
ConfigSystems
as a subcollection forConfigProfiles
Requires yaml MR 864 -> this MR brings in updates to our yamls so that the config managers are considered as normal providers.
Note PRT will fail due to the yaml update requirement. For test results search for the jenkin's job
jdupuy-pr-9317-510z
.{{ pytest: --long-running cfme/tests/infrastructure/test_config_management.py cfme/tests/infrastructure/test_config_management_rest.py cfme/tests/services/test_config_provider_servicecatalogs.py cfme/tests/services/test_ansible_workflow_servicecatalogs.py
}}