Merge "Set admin, member and reader gates to be the same"
diff --git a/.zuul.yaml b/.zuul.yaml
index 49b889f..8130657 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -95,11 +95,13 @@
- job:
name: patrole-member-ussuri
parent: patrole-member
+ nodeset: openstack-single-node-bionic
override-checkout: stable/ussuri
- job:
name: patrole-member-train
parent: patrole-member
+ nodeset: openstack-single-node-bionic
override-checkout: stable/train
vars:
devstack_localrc:
@@ -108,6 +110,7 @@
- job:
name: patrole-member-stein
parent: patrole-member
+ nodeset: openstack-single-node-bionic
override-checkout: stable/stein
vars:
devstack_localrc:
diff --git a/lower-constraints.txt b/lower-constraints.txt
index c874f08..c0da9ce 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -4,7 +4,7 @@
Babel==2.5.3
bcrypt==3.1.4
certifi==2018.1.18
-cffi==1.11.5
+cffi==1.14.0
chardet==3.0.4
cliff==2.11.0
cmd2==0.8.1
@@ -58,7 +58,7 @@
python-mimeparse==1.6.0
python-subunit==1.2.0
pytz==2018.3
-PyYAML==3.12
+PyYAML==3.13
requests==2.18.4
requestsexceptions==1.4.0
rfc3986==1.1.0
diff --git a/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
index d313494..ed3691e 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
@@ -23,6 +23,21 @@
CONF = config.CONF
+# RBAC category or action was changed in Victoria release per
+# https://docs.openstack.org/api-ref/compute/#floating-ips-os-floating-ips-deprecated
+# and
+# https://github.com/openstack/nova/blob/master/nova/policies/floating_ips.py#L21
+if CONF.policy_feature_enabled.changed_nova_policies_victoria:
+ _FIP_GET = "os_compute_api:os-floating-ips:list"
+ _FIP_SHOW = "os_compute_api:os-floating-ips:show"
+ _FIP_CREATE = "os_compute_api:os-floating-ips:create"
+ _FIP_DELETE = "os_compute_api:os-floating-ips:delete"
+else:
+ _FIP_GET = "os_compute_api:os-floating-ips"
+ _FIP_SHOW = "os_compute_api:os-floating-ips"
+ _FIP_CREATE = "os_compute_api:os-floating-ips"
+ _FIP_DELETE = "os_compute_api:os-floating-ips"
+
class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@@ -44,7 +59,7 @@
@decorators.idempotent_id('ac1b3053-f755-4cda-85a0-30e88b88d7ba')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_GET])
def test_list_floating_ips(self):
with self.override_role():
self.floating_ips_client.list_floating_ips()
@@ -52,7 +67,7 @@
@decorators.idempotent_id('bebe52b3-5269-4e72-80c8-5a4a39c3bfa6')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_SHOW])
def test_show_floating_ip(self):
body = self.floating_ips_client.create_floating_ip(
pool=CONF.network.floating_network_name)['floating_ip']
@@ -64,7 +79,7 @@
@decorators.idempotent_id('2bfb8745-c329-4ee9-95f6-c165a1989dbf')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_CREATE])
def test_create_floating_ips(self):
with self.override_role():
body = self.floating_ips_client.create_floating_ip(
@@ -75,7 +90,7 @@
@decorators.idempotent_id('d3028373-5027-4e7a-b761-01c515403ecb')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_DELETE])
def test_delete_floating_ip(self):
body = self.floating_ips_client.create_floating_ip(
pool=CONF.network.floating_network_name)['floating_ip']
diff --git a/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
index d9022d4..b26ddc3 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
@@ -51,7 +51,7 @@
def resource_setup(cls):
super(QuotaClassesRbacTest, cls).resource_setup()
# Create a project with its own quota.
- project_name = data_utils.rand_name(cls.__name__ + '-project')
+ project_name = data_utils.rand_name(cls.__name__)
project_desc = project_name + '-desc'
project = identity.identity_utils(cls.os_admin).create_project(
name=project_name, description=project_desc)
diff --git a/patrole_tempest_plugin/tests/api/compute/test_quota_sets_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_quota_sets_rbac.py
index 5835905..a41d0e0 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_quota_sets_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_quota_sets_rbac.py
@@ -90,7 +90,7 @@
rules=["os_compute_api:os-quota-sets:delete"])
def test_delete_quota_set(self):
project_name = data_utils.rand_name(
- self.__class__.__name__ + '-project')
+ self.__class__.__name__)
project_desc = project_name + '-desc'
project = identity.identity_utils(self.os_admin).create_project(
name=project_name, description=project_desc)
diff --git a/patrole_tempest_plugin/tests/api/identity/rbac_base.py b/patrole_tempest_plugin/tests/api/identity/rbac_base.py
index 6e76a72..4321c60 100644
--- a/patrole_tempest_plugin/tests/api/identity/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/identity/rbac_base.py
@@ -204,7 +204,7 @@
def setup_test_domain(cls):
"""Set up a test domain."""
domain = cls.domains_client.create_domain(
- name=data_utils.rand_name(cls.__name__ + '-test_domain'),
+ name=data_utils.rand_name(cls.__name__),
description=data_utils.rand_name(
cls.__name__ + '-desc'))['domain']
cls.domains.append(domain)
@@ -240,7 +240,7 @@
"""Set up a test project."""
project = cls.projects_client.create_project(
name=data_utils.rand_name(
- cls.__name__ + '-testproject'),
+ cls.__name__),
description=data_utils.rand_name(
cls.__name__ + '-desc'))['project']
cls.projects.append(project)
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
index f97570f..2ad50cf 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
@@ -35,7 +35,7 @@
def test_update_domain(self):
domain = self.setup_test_domain()
new_domain_name = data_utils.rand_name(
- self.__class__.__name__ + '-test_update_domain')
+ self.__class__.__name__)
with self.override_role():
self.domains_client.update_domain(domain['id'],
domain=domain,
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
index aaaddf7..4198a46 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
@@ -25,7 +25,7 @@
def _create_consumer(self):
description = data_utils.rand_name(
- self.__class__.__name__ + '-IdentityConsumer')
+ self.__class__.__name__)
consumer = self.consumers_client.create_consumer(
description)['consumer']
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
@@ -55,7 +55,7 @@
def test_update_consumer(self):
consumer = self._create_consumer()
updated_description = data_utils.rand_name(
- self.__class__.__name__ + '-IdentityConsumer')
+ self.__class__.__name__)
with self.override_role():
self.consumers_client.update_consumer(consumer['id'],