This work is licensed under a Creative Commons Attribution 3.0 Unported
License.

http://creativecommons.org/licenses/by/3.0/legalcode

简化凭证管理

https://blueprints.launchpad.net/tempest/+spec/simplify-credentials-management

重构测试类获取凭证/客户端管理器的的方式,以便清楚地了解哪些类属性引用具有特定凭证的客户端管理器。

问题描述

凭证是通过定义一个枚举给定测试类所需凭证的数组来分配的。例如

credentials = [['operator', CONF.object_storage.operator_role],
               ['operator_alt', CONF.object_storage.operator_role]]

当调用基础测试类的 setup_credentials 类方法时,与凭证关联的客户端管理器会被映射到以 os_roles 前缀的类属性。凭证也可以以这种方式分配

credentials = ['primary', 'alt', 'admin']

在这种情况下,客户端管理器将被别名为三个类属性,例如 osmanageros_primary 都被设置为使用 primary 凭证的客户端管理器。这对于试图理解测试用例的人来说可能令人困惑,因为设置一个类变量导致属性被设置以及这些属性的名称并不直观。

提议的变更

建议的更改是在给定的类的 setup_credentials 类方法中显式地分配属性值;例如

cls.os_roles_operator = cls.get_client_manager(
    roles=[CONF.object_storage.operator_role], force_new=True)
cls.os_roles_operator_alt = cls.get_client_manager(
    roles=[CONF.object_storage.operator_role], force_new=True)

对于使用 primaryalt 和/或 admin 凭证的类,逻辑如下所示

cls.os_primary = cls.get_client_manager(credential_type='primary')

所有别名都将被移除。

在任何一种情况下,凭证反分配逻辑都可以保持不变。

实现

负责人

John Warren <jswarren@us.ibm.com>

里程碑

工作项

  • tempest/scenario/test_server_multinode.py 和子类

  • tempest/scenario/test_security_groups_basic_ops.py 和子类

  • tempest/scenario/test_aggregates_basic_ops.py 和子类

  • tempest/scenario/manager.py 和子类

  • tempest/api/database/base.py 和子类

  • tempest/api/compute/base.py 和子类

  • tempest/api/compute/test_authorization.py 和子类

  • tempest/api/compute/servers/test_servers_negative.py 和子类

  • tempest/api/telemetry/base.py 和子类

  • tempest/api/baremetal/admin/base.py 和子类

  • tempest/api/object_storage/base.py 和子类

  • tempest/api/object_storage/test_object_services.py 和子类

  • tempest/api/object_storage/test_account_services.py 和子类

  • tempest/api/object_storage/test_account_quotas.py 和子类

  • tempest/api/object_storage/test_container_acl_negative.py 和子类

  • tempest/api/object_storage/test_account_services_negative.py 和子类

  • tempest/api/object_storage/test_container_sync.py 和子类

  • tempest/api/object_storage/test_container_acl.py 和子类

  • tempest/api/object_storage/test_account_quotas_negative.py 和子类

  • tempest/api/data_processing/base.py 和子类

  • tempest/api/network/admin/test_floating_ips_admin_actions.py 和子类

  • tempest/api/network/base.py 和子类

  • tempest/api/volume/base.py 和子类

  • tempest/api/volume/test_volume_transfers.py 和子类

  • tempest/api/identity/base.py 和子类

  • tempest/api/identity/v3/test_projects.py 和子类

  • tempest/api/identity/v2/test_tenants.py 和子类

  • tempest/api/image/base.py 和子类

  • tempest/api/orchestration/base.py 和子类