Split out Neutron metering labels client
Splitting out a metering labels client for Neutron. Partially implements blueprint consistent-service-method-names Change-Id: I3364fc9320640b875f5232c2ae5a4ae98121d821
This commit is contained in:
parent
72f5306c23
commit
6d0083aa50
|
@ -105,7 +105,7 @@ class BaseNetworkTest(tempest.test.BaseTestCase):
|
|||
# Clean up metering labels
|
||||
for metering_label in cls.metering_labels:
|
||||
cls._try_delete_resource(
|
||||
cls.admin_client.delete_metering_label,
|
||||
cls.admin_metering_labels_client.delete_metering_label,
|
||||
metering_label['id'])
|
||||
# Clean up ports
|
||||
for port in cls.ports:
|
||||
|
@ -272,11 +272,12 @@ class BaseAdminNetworkTest(BaseNetworkTest):
|
|||
cls.admin_subnets_client = cls.os_adm.subnets_client
|
||||
cls.admin_ports_client = cls.os_adm.ports_client
|
||||
cls.admin_floating_ips_client = cls.os_adm.floating_ips_client
|
||||
cls.admin_metering_labels_client = cls.os_adm.metering_labels_client
|
||||
|
||||
@classmethod
|
||||
def create_metering_label(cls, name, description):
|
||||
"""Wrapper utility that returns a test metering label."""
|
||||
body = cls.admin_client.create_metering_label(
|
||||
body = cls.admin_metering_labels_client.create_metering_label(
|
||||
description=description,
|
||||
name=data_utils.rand_name("metering-label"))
|
||||
metering_label = body['metering_label']
|
||||
|
|
|
@ -51,9 +51,11 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
|
||||
def _delete_metering_label(self, metering_label_id):
|
||||
# Deletes a label and verifies if it is deleted or not
|
||||
self.admin_client.delete_metering_label(metering_label_id)
|
||||
self.admin_metering_labels_client.delete_metering_label(
|
||||
metering_label_id)
|
||||
# Asserting that the label is not found in list after deletion
|
||||
labels = self.admin_client.list_metering_labels(id=metering_label_id)
|
||||
labels = self.admin_metering_labels_client.list_metering_labels(
|
||||
id=metering_label_id)
|
||||
self.assertEqual(len(labels['metering_labels']), 0)
|
||||
|
||||
def _delete_metering_label_rule(self, metering_label_rule_id):
|
||||
|
@ -68,7 +70,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
@test.idempotent_id('e2fb2f8c-45bf-429a-9f17-171c70444612')
|
||||
def test_list_metering_labels(self):
|
||||
# Verify label filtering
|
||||
body = self.admin_client.list_metering_labels(id=33)
|
||||
body = self.admin_metering_labels_client.list_metering_labels(id=33)
|
||||
metering_labels = body['metering_labels']
|
||||
self.assertEqual(0, len(metering_labels))
|
||||
|
||||
|
@ -77,21 +79,22 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
|||
# Creates a label
|
||||
name = data_utils.rand_name('metering-label-')
|
||||
description = "label created by tempest"
|
||||
body = self.admin_client.create_metering_label(name=name,
|
||||
description=description)
|
||||
body = self.admin_metering_labels_client.create_metering_label(
|
||||
name=name, description=description)
|
||||
metering_label = body['metering_label']
|
||||
self.addCleanup(self._delete_metering_label,
|
||||
metering_label['id'])
|
||||
# Assert whether created labels are found in labels list or fail
|
||||
# if created labels are not found in labels list
|
||||
labels = (self.admin_client.list_metering_labels(
|
||||
labels = (self.admin_metering_labels_client.list_metering_labels(
|
||||
id=metering_label['id']))
|
||||
self.assertEqual(len(labels['metering_labels']), 1)
|
||||
|
||||
@test.idempotent_id('30abb445-0eea-472e-bd02-8649f54a5968')
|
||||
def test_show_metering_label(self):
|
||||
# Verifies the details of a label
|
||||
body = self.admin_client.show_metering_label(self.metering_label['id'])
|
||||
body = self.admin_metering_labels_client.show_metering_label(
|
||||
self.metering_label['id'])
|
||||
metering_label = body['metering_label']
|
||||
self.assertEqual(self.metering_label['id'], metering_label['id'])
|
||||
self.assertEqual(self.metering_label['tenant_id'],
|
||||
|
|
|
@ -107,6 +107,8 @@ from tempest.services.image.v2.json.image_client import ImageClientV2
|
|||
from tempest.services.messaging.json.messaging_client import \
|
||||
MessagingClient
|
||||
from tempest.services.network.json.floating_ips_client import FloatingIPsClient
|
||||
from tempest.services.network.json.metering_labels_client import \
|
||||
MeteringLabelsClient
|
||||
from tempest.services.network.json.network_client import NetworkClient
|
||||
from tempest.services.network.json.networks_client import NetworksClient
|
||||
from tempest.services.network.json.ports_client import PortsClient
|
||||
|
@ -230,6 +232,14 @@ class Manager(manager.Manager):
|
|||
build_interval=CONF.network.build_interval,
|
||||
build_timeout=CONF.network.build_timeout,
|
||||
**self.default_params)
|
||||
self.metering_labels_client = MeteringLabelsClient(
|
||||
self.auth_provider,
|
||||
CONF.network.catalog_type,
|
||||
CONF.network.region or CONF.identity.region,
|
||||
endpoint_type=CONF.network.endpoint_type,
|
||||
build_interval=CONF.network.build_interval,
|
||||
build_timeout=CONF.network.build_timeout,
|
||||
**self.default_params)
|
||||
self.messaging_client = MessagingClient(
|
||||
self.auth_provider,
|
||||
CONF.messaging.catalog_type,
|
||||
|
|
|
@ -387,6 +387,7 @@ class NetworkService(BaseService):
|
|||
self.subnets_client = manager.subnets_client
|
||||
self.ports_client = manager.ports_client
|
||||
self.floating_ips_client = manager.floating_ips_client
|
||||
self.metering_labels_client = manager.metering_labels_client
|
||||
|
||||
def _filter_by_conf_networks(self, item_list):
|
||||
if not item_list or not all(('network_id' in i for i in item_list)):
|
||||
|
@ -600,7 +601,7 @@ class NetworkMeteringLabelRuleService(NetworkService):
|
|||
class NetworkMeteringLabelService(NetworkService):
|
||||
|
||||
def list(self):
|
||||
client = self.client
|
||||
client = self.metering_labels_client
|
||||
labels = client.list_metering_labels()
|
||||
labels = labels['metering_labels']
|
||||
labels = self._filter_by_tenant_id(labels)
|
||||
|
@ -608,7 +609,7 @@ class NetworkMeteringLabelService(NetworkService):
|
|||
return labels
|
||||
|
||||
def delete(self):
|
||||
client = self.client
|
||||
client = self.metering_labels_client
|
||||
labels = self.list()
|
||||
for label in labels:
|
||||
try:
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
# 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.services.network.json import base
|
||||
|
||||
|
||||
class MeteringLabelsClient(base.BaseNetworkClient):
|
||||
|
||||
def create_metering_label(self, **kwargs):
|
||||
uri = '/metering/metering-labels'
|
||||
post_data = {'metering_label': kwargs}
|
||||
return self.create_resource(uri, post_data)
|
||||
|
||||
def show_metering_label(self, metering_label_id, **fields):
|
||||
uri = '/metering/metering-labels/%s' % metering_label_id
|
||||
return self.show_resource(uri, **fields)
|
||||
|
||||
def delete_metering_label(self, metering_label_id):
|
||||
uri = '/metering/metering-labels/%s' % metering_label_id
|
||||
return self.delete_resource(uri)
|
||||
|
||||
def list_metering_labels(self, **filters):
|
||||
uri = '/metering/metering-labels'
|
||||
return self.list_resources(uri, **filters)
|
|
@ -35,23 +35,6 @@ class NetworkClient(base.BaseNetworkClient):
|
|||
quotas
|
||||
"""
|
||||
|
||||
def create_metering_label(self, **kwargs):
|
||||
uri = '/metering/metering-labels'
|
||||
post_data = {'metering_label': kwargs}
|
||||
return self.create_resource(uri, post_data)
|
||||
|
||||
def show_metering_label(self, metering_label_id, **fields):
|
||||
uri = '/metering/metering-labels/%s' % metering_label_id
|
||||
return self.show_resource(uri, **fields)
|
||||
|
||||
def delete_metering_label(self, metering_label_id):
|
||||
uri = '/metering/metering-labels/%s' % metering_label_id
|
||||
return self.delete_resource(uri)
|
||||
|
||||
def list_metering_labels(self, **filters):
|
||||
uri = '/metering/metering-labels'
|
||||
return self.list_resources(uri, **filters)
|
||||
|
||||
def create_metering_label_rule(self, **kwargs):
|
||||
uri = '/metering/metering-label-rules'
|
||||
post_data = {'metering_label_rule': kwargs}
|
||||
|
|
Loading…
Reference in New Issue