Patrole manipulates the os_primary Tempest credentials, which are the
primary set of Tempest credentials. It is necessary to use the same credentials
across the entire test setup/test execution/test teardown workflow
because otherwise 400-level errors will be thrown by OpenStack services.
This is because many services check the request context’s project scope – and
in very rare cases, user scope. However, each set of Tempest credentials (via
dynamic credentials) is allocated its own distinct project. For example, the
os_admin and os_primary credentials each have a distinct project,
meaning that it is not always possible for the os_primary credentials to
access resources created by the os_admin credentials.
The only foolproof solution is to manipulate the role for the same set of credentials, rather than using distinct credentials for setup/teardown and test execution, respectively. This is especially true when considering custom policy rule definitions, which can be arbitrarily complex.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.