Merge "Add reboot_server() helper"
diff --git a/releasenotes/notes/loggable-resource-client-5977d46a7ea52199.yaml b/releasenotes/notes/loggable-resource-client-5977d46a7ea52199.yaml
new file mode 100644
index 0000000..ac83eaf
--- /dev/null
+++ b/releasenotes/notes/loggable-resource-client-5977d46a7ea52199.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Lists neutron's Loggable resources API service clients are available in
+ ``tempest/lib/services/network/loggable_resource_client.py`` module.
\ No newline at end of file
diff --git a/tempest/api/network/base.py b/tempest/api/network/base.py
index 260ba74..47a8590 100644
--- a/tempest/api/network/base.py
+++ b/tempest/api/network/base.py
@@ -85,6 +85,7 @@
cls.service_providers_client = cls.os_primary.service_providers_client
cls.tags_client = cls.os_primary.tags_client
cls.log_resource_client = cls.os_primary.log_resource_client
+ cls.loggable_resource_client = cls.os_primary.loggable_resource_client
@classmethod
def resource_setup(cls):
diff --git a/tempest/clients.py b/tempest/clients.py
index 1b05b54..51bd204 100644
--- a/tempest/clients.py
+++ b/tempest/clients.py
@@ -74,6 +74,7 @@
self.segments_client = self.network.SegmentsClient()
self.trunks_client = self.network.TrunksClient()
self.log_resource_client = self.network.LogResourceClient()
+ self.loggable_resource_client = self.network.LoggableResourceClient()
def _set_image_clients(self):
if CONF.service_available.glance:
diff --git a/tempest/lib/services/network/__init__.py b/tempest/lib/services/network/__init__.py
index fc85140..d553373 100644
--- a/tempest/lib/services/network/__init__.py
+++ b/tempest/lib/services/network/__init__.py
@@ -16,6 +16,8 @@
from tempest.lib.services.network.extensions_client import ExtensionsClient
from tempest.lib.services.network.floating_ips_client import FloatingIPsClient
from tempest.lib.services.network.log_resource_client import LogResourceClient
+from tempest.lib.services.network.loggable_resource_client import \
+ LoggableResourceClient
from tempest.lib.services.network.metering_label_rules_client import \
MeteringLabelRulesClient
from tempest.lib.services.network.metering_labels_client import \
@@ -46,4 +48,5 @@
'QosClient', 'QosMinimumBandwidthRulesClient', 'QuotasClient',
'RoutersClient', 'SecurityGroupRulesClient', 'SecurityGroupsClient',
'SegmentsClient', 'ServiceProvidersClient', 'SubnetpoolsClient',
- 'SubnetsClient', 'TagsClient', 'TrunksClient', 'LogResourceClient']
+ 'SubnetsClient', 'TagsClient', 'TrunksClient', 'LogResourceClient',
+ 'LoggableResourceClient']
diff --git a/tempest/lib/services/network/loggable_resource_client.py b/tempest/lib/services/network/loggable_resource_client.py
new file mode 100644
index 0000000..774046f
--- /dev/null
+++ b/tempest/lib/services/network/loggable_resource_client.py
@@ -0,0 +1,29 @@
+# Copyright 2021 Red Hat, Inc.
+# All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from tempest.lib.services.network import base
+
+
+class LoggableResourceClient(base.BaseNetworkClient):
+
+ def list_loggable_resources(self, **filters):
+ """List Loggable resources.
+
+ For a full list of available parameters, please refer to the official
+ API reference:
+ https://docs.openstack.org/api-ref/network/v2/index.html#list-loggable-resources
+ """
+ uri = '/log/loggable-resources'
+ return self.list_resources(uri, **filters)
diff --git a/tempest/tests/lib/services/network/test_loggable_resource_client.py b/tempest/tests/lib/services/network/test_loggable_resource_client.py
new file mode 100644
index 0000000..232775b
--- /dev/null
+++ b/tempest/tests/lib/services/network/test_loggable_resource_client.py
@@ -0,0 +1,53 @@
+# Copyright 2021 Red Hat, Inc.
+# All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from tempest.lib.services.network import loggable_resource_client
+from tempest.tests.lib import fake_auth_provider
+from tempest.tests.lib.services import base
+
+
+class TestLoggableResourceClient(base.BaseServiceTest):
+
+ FAKE_LOGS = {
+ "loggable_resources": [
+ {
+ "type": "security_group"
+ },
+ {
+ "type": "none"
+ }
+ ]
+ }
+
+ def setUp(self):
+ super(TestLoggableResourceClient, self).setUp()
+ fake_auth = fake_auth_provider.FakeAuthProvider()
+ self.loggable_resource_client = \
+ loggable_resource_client.LoggableResourceClient(
+ fake_auth, "network", "regionOne")
+
+ def _test_list_loggable_resources(self, bytes_body=False):
+ self.check_service_client_function(
+ self.loggable_resource_client.list_loggable_resources,
+ "tempest.lib.common.rest_client.RestClient.get",
+ self.FAKE_LOGS,
+ bytes_body,
+ 200)
+
+ def test_list_loggable_resources_with_str_body(self):
+ self._test_list_loggable_resources()
+
+ def test_list_loggable_resources_with_bytes_body(self):
+ self._test_list_loggable_resources(bytes_body=True)
diff --git a/tools/generate-tempest-plugins-list.py b/tools/generate-tempest-plugins-list.py
index 1b5b369..74e806b 100644
--- a/tools/generate-tempest-plugins-list.py
+++ b/tools/generate-tempest-plugins-list.py
@@ -35,28 +35,33 @@
# TODO(masayukig): Some of these can be removed from NON_ACTIVE_LIST in the
# future when the patches are merged.
NON_ACTIVE_LIST = [
- 'x/gce-api', # It looks gce-api doesn't support python3 yet.
+ 'x/gce-api', # It looks gce-api doesn't support python3 yet
+ # https://bugs.launchpad.net/gce-api/+bug/1931094
'x/glare', # To avoid sanity-job failure
- 'x/group-based-policy', # It looks this doesn't support python3 yet.
- 'x/intel-nfv-ci-tests', # https://review.opendev.org/#/c/634640/
+ 'x/group-based-policy',
+ # https://bugs.launchpad.net/group-based-policy/+bug/1931091
+ 'x/intel-nfv-ci-tests', # To avoid sanity-job failure
'openstack/networking-generic-switch',
+ # This is not a real tempest plugin,
# https://review.opendev.org/#/c/634846/
- 'x/networking-l2gw-tempest-plugin',
- # https://review.opendev.org/#/c/635093/
- 'openstack/networking-midonet', # https://review.opendev.org/#/c/635096/
- 'x/networking-plumgrid', # https://review.opendev.org/#/c/635096/
+ 'x/networking-plumgrid', # No longer contains tempest tests
'x/networking-spp', # https://review.opendev.org/#/c/635098/
+ # networking-spp is missing neutron-tempest-plugin as a dep plus
+ # test-requirements.txt is nested in a openstack dir and sanity script
+ # doesn't count with such scenario yet
'openstack/neutron-dynamic-routing',
+ # As tests have been migrated to neutron-tempest-plugin:
# https://review.opendev.org/#/c/637718/
- 'openstack/neutron-vpnaas', # https://review.opendev.org/#/c/637719/
- 'x/tap-as-a-service', # To avoid sanity-job failure
- 'x/valet', # https://review.opendev.org/#/c/638339/
- 'x/kingbird', # https://bugs.launchpad.net/kingbird/+bug/1869722
- # vmware-nsx is excluded since https://review.opendev.org/#/c/736952
- 'x/vmware-nsx-tempest-plugin',
+ 'openstack/neutron-vpnaas',
+ # As tests have been migrated to neutron-tempest-plugin:
+ # https://review.opendev.org/c/openstack/neutron-vpnaas/+/695834
+ 'x/valet', # valet is unmaintained now
+ # https://review.opendev.org/c/x/valet/+/638339
+ 'x/kingbird', # kingbird is unmaintained now
+ # https://bugs.launchpad.net/kingbird/+bug/1869722
+ 'x/mogan',
# mogan is unmaintained now, remove from the list when this is merged:
# https://review.opendev.org/c/x/mogan/+/767718
- 'x/mogan',
]
url = 'https://review.opendev.org/projects/'