Re-factor neutron client for 'delete' methods
Currently neutron client is written to auto generate
methods on fly. This is very difficult to debug and
make code very difficult to read.
As neutron client will be moved to lib, it will be better to
have its interfaces more readable and consistent with other
service clients.
This commit re-factor it for 'delete_*' methods.
Change-Id: I8b37555a250e5988553c3cdcfc4851487f27ea38
diff --git a/tempest/services/network/json/network_client.py b/tempest/services/network/json/network_client.py
index 29617de..cc9399e 100644
--- a/tempest/services/network/json/network_client.py
+++ b/tempest/services/network/json/network_client.py
@@ -85,15 +85,11 @@
return _list
- def _deleter(self, resource_name):
- def _delete(resource_id):
- plural = self.pluralize(resource_name)
- uri = '%s/%s' % (self.get_uri(plural), resource_id)
- resp, body = self.delete(uri)
- self.expected_success(204, resp.status)
- return service_client.ResponseBody(resp, body)
-
- return _delete
+ def _delete_resource(self, uri):
+ req_uri = self.uri_prefix + uri
+ resp, body = self.delete(req_uri)
+ self.expected_success(204, resp.status)
+ return service_client.ResponseBody(resp, body)
def _show_resource(self, uri, **fields):
# fields is a dict which key is 'fields' and value is a
@@ -124,9 +120,8 @@
return service_client.ResponseBody(resp, body)
def __getattr__(self, name):
- method_prefixes = ["list_", "delete_"]
- method_functors = [self._lister,
- self._deleter]
+ method_prefixes = ["list_"]
+ method_functors = [self._lister]
for index, prefix in enumerate(method_prefixes):
prefix_len = len(prefix)
if name[:prefix_len] == prefix:
@@ -147,6 +142,10 @@
uri = '/networks/%s' % network_id
return self._show_resource(uri, **fields)
+ def delete_network(self, network_id):
+ uri = '/networks/%s' % network_id
+ return self._delete_resource(uri)
+
def create_subnet(self, **kwargs):
uri = '/subnets'
post_data = {'subnet': kwargs}
@@ -161,6 +160,10 @@
uri = '/subnets/%s' % subnet_id
return self._show_resource(uri, **fields)
+ def delete_subnet(self, subnet_id):
+ uri = '/subnets/%s' % subnet_id
+ return self._delete_resource(uri)
+
def create_port(self, **kwargs):
uri = '/ports'
post_data = {'port': kwargs}
@@ -175,6 +178,10 @@
uri = '/ports/%s' % port_id
return self._show_resource(uri, **fields)
+ def delete_port(self, port_id):
+ uri = '/ports/%s' % port_id
+ return self._delete_resource(uri)
+
def create_floatingip(self, **kwargs):
uri = '/floatingips'
post_data = {'floatingip': kwargs}
@@ -189,6 +196,10 @@
uri = '/floatingips/%s' % floatingip_id
return self._show_resource(uri, **fields)
+ def delete_floatingip(self, floatingip_id):
+ uri = '/floatingips/%s' % floatingip_id
+ return self._delete_resource(uri)
+
def create_metering_label(self, **kwargs):
uri = '/metering/metering-labels'
post_data = {'metering_label': kwargs}
@@ -198,6 +209,10 @@
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 create_metering_label_rule(self, **kwargs):
uri = '/metering/metering-label-rules'
post_data = {'metering_label_rule': kwargs}
@@ -207,6 +222,10 @@
uri = '/metering/metering-label-rules/%s' % metering_label_rule_id
return self._show_resource(uri, **fields)
+ def delete_metering_label_rule(self, metering_label_rule_id):
+ uri = '/metering/metering-label-rules/%s' % metering_label_rule_id
+ return self._delete_resource(uri)
+
def create_security_group(self, **kwargs):
uri = '/security-groups'
post_data = {'security_group': kwargs}
@@ -221,6 +240,10 @@
uri = '/security-groups/%s' % security_group_id
return self._show_resource(uri, **fields)
+ def delete_security_group(self, security_group_id):
+ uri = '/security-groups/%s' % security_group_id
+ return self._delete_resource(uri)
+
def create_security_group_rule(self, **kwargs):
uri = '/security-group-rules'
post_data = {'security_group_rule': kwargs}
@@ -230,6 +253,10 @@
uri = '/security-group-rules/%s' % security_group_rule_id
return self._show_resource(uri, **fields)
+ def delete_security_group_rule(self, security_group_rule_id):
+ uri = '/security-group-rules/%s' % security_group_rule_id
+ return self._delete_resource(uri)
+
def show_extension(self, ext_alias, **fields):
uri = '/extensions/%s' % ext_alias
return self._show_resource(uri, **fields)
@@ -411,6 +438,10 @@
uri = '/routers/%s' % router_id
return self._show_resource(uri, **fields)
+ def delete_router(self, router_id):
+ uri = '/routers/%s' % router_id
+ return self._delete_resource(uri)
+
def update_router_with_snat_gw_info(self, router_id, **kwargs):
"""Update a router passing also the enable_snat attribute.