Refactor Client Managers
The current client managers instantiate all possible clients at __init__ time and expose the clients via class attributes.
The problem with this is that regardlless of tempest configuration about available services, extensions and API versions, all clients are instantiated.
The proposed change is: clients are only instantiated on demand, the manager internally caches instances of clients and serve them from cache where applicable, test base classes would use get_x_client instead of the attribute, and pass client specific parameters (i.e. API version, extension) into that call
Blueprint information
- Status:
- Complete
- Approver:
- Matthew Treinish
- Priority:
- Medium
- Drafter:
- Andrea Frittoli
- Direction:
- Approved
- Assignee:
- Andrea Frittoli
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Andrea Frittoli
- Completed by
- Ken'ichi Ohmichi
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
add bp:client-
Addressed by: https:/
Refactor and split client manager
Gerrit topic: https:/
Addressed by: https:/
Add a service client data store
Addressed by: https:/
Migrate compute client group to the new manager
Addressed by: https:/
Migrate network client group to the new manager
Addressed by: https:/
Migrate volume client group to the new manager
Addressed by: https:/
Migrate object storage group to the new manager
Addressed by: https:/
Migrate image client group to the new manager
Addressed by: https:/
Prepare the Manager class for tempest.lib
Addressed by: https:/
Define _set_image_clients
Addressed by: https:/
Define _set_image_clients
Addressed by: https:/
Prepare the Manager class for tempest.lib
Addressed by: https:/
Stop passing TestResources to Managers
Addressed by: https:/
Handle service available parameters
Addressed by: https:/
Handle feature flags
Addressed by: https:/
Service client modules in compute __init__
Addressed by: https:/
Service client modules in identity __init__
Addressed by: https:/
Service client modules in network __init__
Addressed by: https:/
Service client modules in volume __init__
Addressed by: https:/
Service client modules in image __init__
Addressed by: https:/
Service client modules in object-storage __init__
Addressed by: https:/
Service client modules in various services __init__
Gerrit topic: https:/
Addressed by: https:/
WIP register interface
Addressed by: https:/
Register Tempest clients via the new interface
Addressed by: https:/
Optional setting service client on factory
Addressed by: https:/
Migrate service_clients to tempest.lib
Addressed by: https:/
Configure stable service clients via the registry
Addressed by: https:/
Fix tempest and available modules
Addressed by: https:/
Try to register all service clients
Addressed by: https:/
Add release notes for client registration changes