Merge "Revert "Update master for stable/stein""
diff --git a/.gitreview b/.gitreview
index 2fa0844..b6894d8 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,4 @@
[gerrit]
-host=review.openstack.org
+host=review.opendev.org
port=29418
project=openstack/patrole.git
diff --git a/.zuul.yaml b/.zuul.yaml
index 380a20b..f9d972e 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -9,7 +9,7 @@
- name: openstack/patrole
timeout: 7800
roles:
- - zuul: openstack-dev/devstack
+ - zuul: openstack/devstack
# Define common irrelevant files to use everywhere else
irrelevant-files: &patrole-irrelevant-files
- ^(test-|)requirements.txt$
@@ -21,10 +21,10 @@
- ^releasenotes/.*
- ^setup.cfg$
vars:
- devstack_localrc:
- TEMPEST_PLUGINS: "'/opt/stack/patrole'"
+ tempest_plugins:
+ - patrole
devstack_plugins:
- patrole: https://git.openstack.org/openstack/patrole.git
+ patrole: https://opendev.org/openstack/patrole.git
devstack_services:
tempest: true
neutron: true
@@ -47,15 +47,15 @@
branches:
- master
required-projects:
- - openstack-infra/devstack-gate
+ - openstack/devstack-gate
- openstack/tempest
- openstack/patrole
irrelevant-files: *patrole-irrelevant-files
vars:
- devstack_localrc:
- TEMPEST_PLUGINS: "'{{ ansible_user_dir }}/src/git.openstack.org/openstack/patrole'"
+ tempest_plugins:
+ - patrole
devstack_plugins:
- patrole: https://git.openstack.org/openstack/patrole.git
+ patrole: https://opendev.org/openstack/patrole.git
devstack_services:
tempest: true
neutron: true
@@ -94,22 +94,36 @@
RBAC_TEST_ROLES: reader
- job:
+ name: patrole-member-stein
+ parent: patrole-member
+ override-checkout: stable/stein
+
+- job:
name: patrole-member-rocky
nodeset: openstack-single-node-xenial
parent: patrole-member
override-checkout: stable/rocky
+ vars:
+ devstack_localrc:
+ TEMPEST_PLUGINS: /opt/stack/patrole
- job:
name: patrole-member-queens
nodeset: openstack-single-node-xenial
parent: patrole-member
override-checkout: stable/queens
+ vars:
+ devstack_localrc:
+ TEMPEST_PLUGINS: /opt/stack/patrole
- job:
name: patrole-member-pike
nodeset: openstack-single-node-xenial
parent: patrole-member
override-checkout: stable/pike
+ vars:
+ devstack_localrc:
+ TEMPEST_PLUGINS: /opt/stack/patrole
- job:
name: patrole-multinode-admin
@@ -159,12 +173,13 @@
- name: openstack/patrole
- name: openstack/neutron-tempest-plugin
vars:
- devstack_localrc:
- TEMPEST_PLUGINS: "'/opt/stack/patrole /opt/stack/neutron-tempest-plugin'"
+ tempest_plugins:
+ - patrole
+ - neutron-tempest-plugin
devstack_plugins:
- neutron: https://git.openstack.org/openstack/neutron.git
- patrole: https://git.openstack.org/openstack/patrole.git
- neutron-tempest-plugin: https://git.openstack.org/openstack/neutron-tempest-plugin.git
+ neutron: https://opendev.org/openstack/neutron.git
+ patrole: https://opendev.org/openstack/patrole.git
+ neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
devstack_services:
tempest: true
neutron: true
@@ -192,10 +207,8 @@
templates:
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- - openstack-python36-jobs
- - openstack-python37-jobs
+ - openstack-python3-train-jobs
- openstack-python-jobs
- - openstack-python35-jobs
- check-requirements
- publish-openstack-docs-pti
- release-notes-jobs-python3
@@ -204,10 +217,10 @@
- patrole-admin
- patrole-member
- patrole-reader
+ - patrole-member-stein
- patrole-member-rocky
- patrole-member-queens
- patrole-member-pike
- - patrole-py35-member
- patrole-multinode-admin
- patrole-multinode-member
- patrole-extension-admin
@@ -218,6 +231,7 @@
- patrole-member
periodic-stable:
jobs:
+ - patrole-member-stein
- patrole-member-rocky
- patrole-member-queens
- patrole-member-pike
diff --git a/doc/requirements.txt b/doc/requirements.txt
index 67530ff..b03ff2c 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -1,7 +1,8 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-openstackdocstheme>=1.18.1 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
+sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD
+openstackdocstheme>=1.20.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0
sphinxcontrib-apidoc>=0.2.0 # BSD
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 45d8021..57d763e 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -63,7 +63,7 @@
master_doc = 'index'
# General information about the project.
-project = u'patrole'
+
copyright = u'2017, Patrole Developers'
# If true, '()' will be appended to :func: etc. cross-reference text.
@@ -93,15 +93,15 @@
html_last_updated_fmt = '%Y-%m-%d %H:%M'
# Output file base name for HTML help builder.
-htmlhelp_basename = '%sdoc' % project
+htmlhelp_basename = 'patroledoc'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto/manual]).
latex_documents = [
('index',
- '%s.tex' % project,
- u'%s Documentation' % project,
+ 'patrole.tex',
+ u'patrole Documentation',
u'Patrole Developers', 'manual'),
]
diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst
index 05716fe..1e7fe8f 100644
--- a/doc/source/configuration.rst
+++ b/doc/source/configuration.rst
@@ -74,7 +74,7 @@
For more information on feature flags, reference the relevant
`Tempest documentation`_.
-.. _Tempest documentation: https://docs.openstack.org/tempest/latest/HACKING.html#1-new-tests-for-new-features
+.. _Tempest documentation: https://docs.openstack.org/tempest/latest/HACKING.html#new-tests-for-new-features
Sample Configuration File
-------------------------
diff --git a/doc/source/rbac-overview.rst b/doc/source/rbac-overview.rst
index 747eab8..68e86ac 100644
--- a/doc/source/rbac-overview.rst
+++ b/doc/source/rbac-overview.rst
@@ -274,7 +274,7 @@
.. _Nova repository: https://git.openstack.org/cgit/openstack/nova/tree/nova/policies
.. _Keystone repository: https://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/policies
.. _governance goal: https://governance.openstack.org/tc/goals/queens/policy-in-code.html
-.. _scope types: https://docs.openstack.org/keystone/latest/admin/identity-tokens.html#authorization-scopes
+.. _scope types: https://docs.openstack.org/keystone/latest/admin/tokens-overview.html#authorization-scopes
.. _policy.yaml: https://docs.openstack.org/ocata/config-reference/policy-yaml-file.html
.. _oslo.policy: https://docs.openstack.org/oslo.policy/latest/
.. _policy documentation: https://docs.openstack.org/kilo/config-reference/content/policy-json-file.html
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_actions_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_actions_rbac.py
index 5f27c9f..dfb36ca 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_actions_rbac.py
@@ -42,6 +42,11 @@
cls.admin_servers_client = cls.os_admin.servers_client
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerActionsRbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerActionsRbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
@@ -358,6 +363,11 @@
max_microversion = 'latest'
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerActionsV214RbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerActionsV214RbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
@@ -390,6 +400,11 @@
max_microversion = 'latest'
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerActionsV216RbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerActionsV216RbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_consoles_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_consoles_rbac.py
index 7e2693d..076ad05 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_consoles_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_consoles_rbac.py
@@ -31,6 +31,11 @@
raise cls.skipException('Console output not available.')
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerConsolesRbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerConsolesRbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
@@ -55,6 +60,11 @@
raise cls.skipException('Console output not available.')
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerConsolesMaxV25RbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerConsolesMaxV25RbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
@@ -80,6 +90,11 @@
raise cls.skipException('Console output not available.')
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerConsolesV26RbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerConsolesV26RbacTest, cls).resource_setup()
cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_metadata_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_metadata_rbac.py
index 07201fc..55536ad 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_metadata_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_metadata_rbac.py
@@ -22,6 +22,11 @@
class ServerMetadataRbacTest(rbac_base.BaseV2ComputeRbacTest):
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerMetadataRbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerMetadataRbacTest, cls).resource_setup()
cls.server = cls.create_test_server(metadata={}, wait_until='ACTIVE')
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
index 1e07758..d1e896b 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
@@ -51,6 +51,11 @@
credentials = ['primary', 'admin']
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(MiscPolicyActionsRbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(MiscPolicyActionsRbacTest, cls).resource_setup()
cls.server = cls.create_test_server(wait_until='ACTIVE')
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
index a5968ea..8592e12 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
@@ -33,6 +33,11 @@
class ComputeServersRbacTest(base.BaseV2ComputeRbacTest):
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ComputeServersRbacTest, cls).setup_credentials()
+
+ @classmethod
def setup_clients(cls):
super(ComputeServersRbacTest, cls).setup_clients()
cls.networks_client = cls.os_primary.networks_client
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_tags_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_tags_rbac.py
index f1c08c5..8a386f6 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_tags_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_tags_rbac.py
@@ -34,6 +34,11 @@
raise cls.skipException(msg)
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerTagsRbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(ServerTagsRbacTest, cls).resource_setup()
cls.server = cls.create_test_server(wait_until='ACTIVE')
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_volume_attachments_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_volume_attachments_rbac.py
index c34a437..c5fbef6 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_volume_attachments_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_volume_attachments_rbac.py
@@ -37,6 +37,11 @@
class ServerVolumeAttachmentRbacTest(rbac_base.BaseV2ComputeRbacTest):
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(ServerVolumeAttachmentRbacTest, cls).setup_credentials()
+
+ @classmethod
def setup_clients(cls):
super(ServerVolumeAttachmentRbacTest, cls).setup_clients()
cls.volumes_client = cls.os_primary.volumes_client_latest
diff --git a/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py b/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
index 9c715b5..56ce83b 100644
--- a/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
+++ b/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
@@ -256,6 +256,7 @@
with self.override_role():
self._update_network(net_id=network['id'], router_external=True)
+ @decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",
@@ -281,6 +282,7 @@
"Plugin does not support updating provider attributes",
str(exc))
+ @decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",
@@ -306,6 +308,7 @@
"Plugin does not support updating provider attributes",
str(exc))
+ @decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",
diff --git a/patrole_tempest_plugin/tests/api/network/test_segments_rbac.py b/patrole_tempest_plugin/tests/api/network/test_segments_rbac.py
index 8b0061d..1e6d7f1 100644
--- a/patrole_tempest_plugin/tests/api/network/test_segments_rbac.py
+++ b/patrole_tempest_plugin/tests/api/network/test_segments_rbac.py
@@ -46,7 +46,7 @@
# With 2+ concurrency, tests that ran in the same moment may fail due
# to usage conflict. To prevent it we select segmentation to start
# randomly.
- segmentation_id = random.randint(1000, 5000)
+ segmentation_id = random.randint(1000, 5000) # nosec
while segmentation_id in segmentation_ids:
segmentation_id += 1
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
index 079d5b4..497c8ce 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
@@ -37,13 +37,22 @@
cls.image_client = cls.os_primary.image_client_v2
@classmethod
+ def setup_credentials(cls):
+ cls.set_network_resources(network=True, subnet=True, router=True)
+ super(VolumesActionsV3RbacTest, cls).setup_credentials()
+
+ @classmethod
def resource_setup(cls):
super(VolumesActionsV3RbacTest, cls).resource_setup()
cls.volume = cls.create_volume()
def _create_server(self):
+ tenant_network = self.get_tenant_network()
server, _ = compute.create_test_server(
- self.os_primary, wait_until='ACTIVE')
+ self.os_primary, tenant_network=tenant_network,
+ wait_until='ACTIVE')
+ self.addCleanup(waiters.wait_for_server_termination,
+ self.servers_client, server['id'])
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
self.servers_client.delete_server, server['id'])
return server
diff --git a/setup.cfg b/setup.cfg
index 12e2184..6e29ac4 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -16,8 +16,8 @@
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.3
- Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
[files]
packages =
diff --git a/tox.ini b/tox.ini
index aa7bcd4..9e2772c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = pep8,py35,py36,py37,py27
+envlist = pep8,py36,py37,py27
skipsdist = True
[testenv]