Add loggable resource client

This patch creates the network v2.0 loggable-resource client.

https://docs.openstack.org/api-ref/network/v2/index.html#list-loggable-resources
Signed-off by: Soniya Vyas<svyas@redhat.com>

Change-Id: I37b9397834fbb7f4ebf540dc5f8aece356ddf749
This commit is contained in:
Soniya Vyas 2021-07-09 12:30:36 +05:30
parent a45828bf92
commit 5a3de3e498
6 changed files with 93 additions and 1 deletions

View File

@ -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.

View File

@ -85,6 +85,7 @@ class BaseNetworkTest(tempest.test.BaseTestCase):
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):

View File

@ -74,6 +74,7 @@ class Manager(clients.ServiceClients):
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:

View File

@ -16,6 +16,8 @@ from tempest.lib.services.network.agents_client import AgentsClient
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 @@ __all__ = ['AgentsClient', 'ExtensionsClient', 'FloatingIPsClient',
'QosClient', 'QosMinimumBandwidthRulesClient', 'QuotasClient',
'RoutersClient', 'SecurityGroupRulesClient', 'SecurityGroupsClient',
'SegmentsClient', 'ServiceProvidersClient', 'SubnetpoolsClient',
'SubnetsClient', 'TagsClient', 'TrunksClient', 'LogResourceClient']
'SubnetsClient', 'TagsClient', 'TrunksClient', 'LogResourceClient',
'LoggableResourceClient']

View File

@ -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)

View File

@ -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)