3.5 KiB
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
Test accounts Continued
https://blueprints.launchpad.net/tempest/+spec/test-accounts-continued
Tempest test accounts management
Problem description
The "Test accounts" spec provided support for preprovisioned accounts, as well as for those accounts to be configured in YAML format. There are a few limitations to the existing limitations:
- all accounts must belong to the same network
- all accounts must be of the same type, so we have a combination of accounts configured in tempest.conf and in accounts.yaml
Proposed change
Extend the format of the accounts YAML file to support specifying the name and type of resources pre-provisioned for an account. Such resources are intended to be reused by tests, and shall not be cleaned-up.
- credentials:
username: 'user_1'
tenant_name: 'test_tenant_1'
password: 'test_password'
resources:
network: 'my_network'
subnet: 'my_subnet'
- credentials:
username: 'user_2'
(...)
Extend the format of the accounts YAML file to support specifying the account type of an account. We may have an account type identifier, or alternatively a list of roles.
- credentials:
username: 'admin'
tenant_name: 'admin_tenant'
password: 'admin_password'
type: 'admin'
- credentials:
username: 'swift_admin'
tenant_name: 'admin_tenant'
password: 'admin_password'
roles:
- reseller
Adapt the credentials providers to be able to handle credentials requests based on specific roles as well as account type (available today via dedicated methods).
The abstract implementation would be something like:
@abc.abstractmethod
def get_creds_by_roles(self, roles=None):
return
def get_creds_by_type(self, type=None):
if type == "primary":
return get_primary_creds()
(...)
Adapt the non pre-provisioned account scenario to also read accounts from the accounts YAML file, and deprecate any account information in tempest.conf beyond the name of account file.
Provide a tool to be consumed by devstack to generate the pre-provisioned accounts and the corresponding YAML file. Work on this is already started here https://review.openstack.org/#/c/107758/.
Integrate with the post-run clean-up tool, to avoid deleting pre-provisioned resources specified in the YAML file.
Alternatives
The current implementation is functional but incomplete, so the only alternative is not to use it, or suffer its limitation.
Implementation
Assignee(s)
Andrea Frittoli <andrea.frittoli@hp.com>
Milestones
- Target Milestone for completion:
-
Kilo-final
Work Items
- Extend the YAML file parser
- Implement the non-cleanup of configure resources
- Deprecate account configuration options
- Read account info from YAML, with fallback to deprecated configuration options
- Implement provisioning tool
- Switch devstack and job definition to use the accounts YAML file in case of tenant isolation as well as pre-provisioned accounts
- Configure check/gate to run a combination of tenant isolation and pre-provisioned accounts
Dependencies
None