Make 2 functions in network_client use **kwargs

As we discussed on http://lists.openstack.org/pipermail/openstack-dev/2015-July/068864.html
All http POST/PUT methods need to contain **kwargs as their arguments.

This patch makes add_router_interface,remove_router_interface of network_client use **kwargs.

Partially implements blueprint consistent-service-method-names

Change-Id: Ib6e222431c9681d01890bc980547cc2e90923526
This commit is contained in:
piyush110786 2015-12-17 12:54:44 +05:30
parent d39047daa9
commit 94aca95892
14 changed files with 72 additions and 73 deletions

View File

@ -80,8 +80,8 @@ class L3AgentSchedulerTestJSON(base.BaseAdminNetworkTest):
cls.network = cls.create_network()
cls.subnet = cls.create_subnet(cls.network)
cls.port = cls.create_port(cls.network)
cls.client.add_router_interface_with_port_id(
cls.router['id'], cls.port['id'])
cls.client.add_router_interface(cls.router['id'],
port_id=cls.port['id'])
# NOTE: Sometimes we have seen this test fail with dvr in,
# multinode tests, since the dhcp port is not created before
# the test gets executed and so the router is not scheduled
@ -99,8 +99,8 @@ class L3AgentSchedulerTestJSON(base.BaseAdminNetworkTest):
@classmethod
def resource_cleanup(cls):
if cls.is_dvr_router:
cls.client.remove_router_interface_with_port_id(
cls.router['id'], cls.port['id'])
cls.client.remove_router_interface(cls.router['id'],
port_id=cls.port['id'])
super(L3AgentSchedulerTestJSON, cls).resource_cleanup()
@test.idempotent_id('b7ce6e89-e837-4ded-9b78-9ed3c9c6a45a')

View File

@ -247,8 +247,8 @@ class BaseNetworkTest(tempest.test.BaseTestCase):
@classmethod
def create_router_interface(cls, router_id, subnet_id):
"""Wrapper utility that returns a router interface."""
interface = cls.client.add_router_interface_with_subnet_id(
router_id, subnet_id)
interface = cls.client.add_router_interface(router_id,
subnet_id=subnet_id)
return interface
@classmethod
@ -257,8 +257,9 @@ class BaseNetworkTest(tempest.test.BaseTestCase):
interfaces = body['ports']
for i in interfaces:
try:
cls.client.remove_router_interface_with_subnet_id(
router['id'], i['fixed_ips'][0]['subnet_id'])
cls.client.remove_router_interface(
router['id'],
subnet_id=i['fixed_ips'][0]['subnet_id'])
except lib_exc.NotFound:
pass
cls.client.delete_router(router['id'])

View File

@ -45,19 +45,19 @@ class BaseRouterTest(base.BaseAdminNetworkTest):
self.assertNotIn(router_id, routers_list)
def _add_router_interface_with_subnet_id(self, router_id, subnet_id):
interface = self.client.add_router_interface_with_subnet_id(
router_id, subnet_id)
interface = self.client.add_router_interface(router_id,
subnet_id=subnet_id)
self.addCleanup(self._remove_router_interface_with_subnet_id,
router_id, subnet_id)
self.assertEqual(subnet_id, interface['subnet_id'])
return interface
def _remove_router_interface_with_subnet_id(self, router_id, subnet_id):
body = self.client.remove_router_interface_with_subnet_id(
router_id, subnet_id)
body = self.client.remove_router_interface(router_id,
subnet_id=subnet_id)
self.assertEqual(subnet_id, body['subnet_id'])
def _remove_router_interface_with_port_id(self, router_id, port_id):
body = self.client.remove_router_interface_with_port_id(router_id,
port_id)
body = self.client.remove_router_interface(router_id,
port_id=port_id)
self.assertEqual(port_id, body['port_id'])

View File

@ -68,9 +68,8 @@ class NetworksTestDHCPv6(base.BaseNetworkTest):
for port in ports:
if (port['device_owner'].startswith('network:router_interface')
and port['device_id'] in [r['id'] for r in self.routers]):
self.client.remove_router_interface_with_port_id(
port['device_id'], port['id']
)
self.client.remove_router_interface(port['device_id'],
port_id=port['id'])
else:
if port['id'] in [p['id'] for p in self.ports]:
self.ports_client.delete_port(port['id'])

View File

@ -191,10 +191,10 @@ class PortsTestJSON(sec_base.BaseSecGroupTest):
self.addCleanup(self.client.delete_router, router['id'])
port = self.ports_client.create_port(network_id=network['id'])
# Add router interface to port created above
self.client.add_router_interface_with_port_id(
router['id'], port['port']['id'])
self.addCleanup(self.client.remove_router_interface_with_port_id,
router['id'], port['port']['id'])
self.client.add_router_interface(router['id'],
port_id=port['port']['id'])
self.addCleanup(self.client.remove_router_interface, router['id'],
port_id=port['port']['id'])
# List ports filtered by router_id
port_list = self.ports_client.list_ports(device_id=router['id'])
ports = port_list['ports']

View File

@ -137,8 +137,8 @@ class RoutersTest(base.BaseRouterTest):
subnet = self.create_subnet(network)
router = self._create_router(data_utils.rand_name('router-'))
# Add router interface with subnet id
interface = self.client.add_router_interface_with_subnet_id(
router['id'], subnet['id'])
interface = self.client.add_router_interface(router['id'],
subnet_id=subnet['id'])
self.addCleanup(self._remove_router_interface_with_subnet_id,
router['id'], subnet['id'])
self.assertIn('subnet_id', interface.keys())
@ -158,8 +158,9 @@ class RoutersTest(base.BaseRouterTest):
port_body = self.ports_client.create_port(
network_id=network['id'])
# add router interface to port created above
interface = self.client.add_router_interface_with_port_id(
router['id'], port_body['port']['id'])
interface = self.client.add_router_interface(
router['id'],
port_id=port_body['port']['id'])
self.addCleanup(self._remove_router_interface_with_port_id,
router['id'], port_body['port']['id'])
self.assertIn('subnet_id', interface.keys())

View File

@ -84,8 +84,8 @@ class RoutersNegativeTest(base.BaseRouterTest):
@test.attr(type=['negative'])
@test.idempotent_id('04df80f9-224d-47f5-837a-bf23e33d1c20')
def test_router_remove_interface_in_use_returns_409(self):
self.client.add_router_interface_with_subnet_id(
self.router['id'], self.subnet['id'])
self.client.add_router_interface(self.router['id'],
subnet_id=self.subnet['id'])
self.assertRaises(lib_exc.Conflict,
self.client.delete_router,
self.router['id'])

View File

@ -312,8 +312,8 @@ def create_network_resources(network_admin_client, networks_admin_client,
return resp_body['router']
def _add_router_interface(router_id, subnet_id):
network_admin_client.add_router_interface_with_subnet_id(
router_id, subnet_id)
network_admin_client.add_router_interface(router_id,
subnet_id=subnet_id)
network_name = name + "-network"
network = _create_network(network_name)

View File

@ -469,8 +469,7 @@ class NetworkRouterService(NetworkService):
in client.list_router_interfaces(rid)['ports']
if port["device_owner"] == "network:router_interface"]
for port in ports:
client.remove_router_interface_with_port_id(rid,
port['id'])
client.remove_router_interface(rid, port_id=port['id'])
client.delete_router(rid)
except Exception:
LOG.exception("Delete Router exception.")

View File

@ -841,8 +841,8 @@ def destroy_routers(routers):
for subnet in router['subnet']:
subnet_id = _get_resource_by_name(client.networks,
'subnets', subnet)['id']
client.networks.remove_router_interface_with_subnet_id(router_id,
subnet_id)
client.networks.remove_router_interface(router_id,
subnet_id=subnet_id)
client.networks.delete_router(router_id)
@ -856,8 +856,8 @@ def add_router_interface(routers):
subnet_id = _get_resource_by_name(client.networks,
'subnets', subnet)['id']
# connect routers to their subnets
client.networks.add_router_interface_with_subnet_id(router_id,
subnet_id)
client.networks.add_router_interface(router_id,
subnet_id=subnet_id)
# connect routers to external network if set to "gateway"
if router['gateway']:
if CONF.network.public_network_id:

View File

@ -233,8 +233,8 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
return resp_body['router']
def _add_router_interface(self, router_id, subnet_id):
self.network_admin_client.add_router_interface_with_subnet_id(
router_id, subnet_id)
self.network_admin_client.add_router_interface(router_id,
subnet_id=subnet_id)
def get_credentials(self, credential_type):
if self._creds.get(str(credential_type)):
@ -333,8 +333,9 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
if (not self.network_resources or
(self.network_resources.get('router') and creds.subnet)):
try:
net_client.remove_router_interface_with_subnet_id(
creds.router['id'], creds.subnet['id'])
net_client.remove_router_interface(
creds.router['id'],
subnet_id=creds.subnet['id'])
except lib_exc.NotFound:
LOG.warning('router with name: %s not found for delete' %
creds.router['name'])

View File

@ -205,25 +205,23 @@ class NetworkClient(base.BaseNetworkClient):
"""
return self._update_router(router_id, set_enable_snat=True, **kwargs)
def add_router_interface_with_subnet_id(self, router_id, subnet_id):
def add_router_interface(self, router_id, **kwargs):
"""Add router interface.
Available params: see http://developer.openstack.org/
api-ref-networking-v2-ext.html#addRouterInterface
"""
uri = '/routers/%s/add_router_interface' % router_id
update_body = {"subnet_id": subnet_id}
return self.update_resource(uri, update_body)
return self.update_resource(uri, kwargs)
def add_router_interface_with_port_id(self, router_id, port_id):
uri = '/routers/%s/add_router_interface' % router_id
update_body = {"port_id": port_id}
return self.update_resource(uri, update_body)
def remove_router_interface(self, router_id, **kwargs):
"""Remove router interface.
def remove_router_interface_with_subnet_id(self, router_id, subnet_id):
Available params: see http://developer.openstack.org/
api-ref-networking-v2-ext.html#removeRouterInterface
"""
uri = '/routers/%s/remove_router_interface' % router_id
update_body = {"subnet_id": subnet_id}
return self.update_resource(uri, update_body)
def remove_router_interface_with_port_id(self, router_id, port_id):
uri = '/routers/%s/remove_router_interface' % router_id
update_body = {"port_id": port_id}
return self.update_resource(uri, update_body)
return self.update_resource(uri, kwargs)
def list_router_interfaces(self, uuid):
uri = '/ports?device_id=%s' % uuid

View File

@ -89,14 +89,13 @@ class DeletableSubnet(DeletableResource):
def add_to_router(self, router_id):
self._router_ids.add(router_id)
self.network_client.add_router_interface_with_subnet_id(
router_id, subnet_id=self.id)
self.network_client.add_router_interface(router_id,
subnet_id=self.id)
def delete(self):
for router_id in self._router_ids.copy():
self.network_client.remove_router_interface_with_subnet_id(
router_id,
subnet_id=self.id)
self.network_client.remove_router_interface(router_id,
subnet_id=self.id)
self._router_ids.remove(router_id)
self.subnets_client.delete_subnet(self.id)

View File

@ -322,9 +322,9 @@ class TestDynamicCredentialProvider(base.TestCase):
self._mock_router_create('1234', 'fake_router')
router_interface_mock = self.patch(
'tempest.services.network.json.network_client.NetworkClient.'
'add_router_interface_with_subnet_id')
'add_router_interface')
primary_creds = creds.get_primary_creds()
router_interface_mock.assert_called_once_with('1234', '1234')
router_interface_mock.assert_called_once_with('1234', subnet_id='1234')
network = primary_creds.network
subnet = primary_creds.subnet
router = primary_creds.router
@ -354,9 +354,9 @@ class TestDynamicCredentialProvider(base.TestCase):
self._mock_router_create('1234', 'fake_router')
router_interface_mock = self.patch(
'tempest.services.network.json.network_client.NetworkClient.'
'add_router_interface_with_subnet_id')
'add_router_interface')
creds.get_primary_creds()
router_interface_mock.assert_called_once_with('1234', '1234')
router_interface_mock.assert_called_once_with('1234', subnet_id='1234')
router_interface_mock.reset_mock()
# Create alternate tenant and network
self._mock_user_create('12345', 'fake_alt_user')
@ -365,7 +365,8 @@ class TestDynamicCredentialProvider(base.TestCase):
self._mock_subnet_create(creds, '12345', 'fake_alt_subnet')
self._mock_router_create('12345', 'fake_alt_router')
creds.get_alt_creds()
router_interface_mock.assert_called_once_with('12345', '12345')
router_interface_mock.assert_called_once_with('12345',
subnet_id='12345')
router_interface_mock.reset_mock()
# Create admin tenant and networks
self._mock_user_create('123456', 'fake_admin_user')
@ -390,7 +391,7 @@ class TestDynamicCredentialProvider(base.TestCase):
router_mock = router.start()
remove_router_interface_mock = self.patch(
'tempest.services.network.json.network_client.NetworkClient.'
'remove_router_interface_with_subnet_id')
'remove_router_interface')
return_values = ({'status': 200}, {'ports': []})
port_list_mock = mock.patch.object(creds.ports_admin_client,
'list_ports',
@ -419,11 +420,11 @@ class TestDynamicCredentialProvider(base.TestCase):
# Verify remove router interface calls
calls = remove_router_interface_mock.mock_calls
self.assertEqual(len(calls), 3)
args = map(lambda x: x[1], calls)
args = map(lambda x: (x[1][0], x[2]), calls)
args = list(args)
self.assertIn(('1234', '1234'), args)
self.assertIn(('12345', '12345'), args)
self.assertIn(('123456', '123456'), args)
self.assertIn(('1234', {'subnet_id': '1234'}), args)
self.assertIn(('12345', {'subnet_id': '12345'}), args)
self.assertIn(('123456', {'subnet_id': '123456'}), args)
# Verify network delete calls
calls = net_mock.mock_calls
self.assertEqual(len(calls), 3)
@ -461,9 +462,9 @@ class TestDynamicCredentialProvider(base.TestCase):
self._mock_router_create('1234', 'fake_alt_router')
router_interface_mock = self.patch(
'tempest.services.network.json.network_client.NetworkClient.'
'add_router_interface_with_subnet_id')
'add_router_interface')
alt_creds = creds.get_alt_creds()
router_interface_mock.assert_called_once_with('1234', '1234')
router_interface_mock.assert_called_once_with('1234', subnet_id='1234')
network = alt_creds.network
subnet = alt_creds.subnet
router = alt_creds.router
@ -485,10 +486,10 @@ class TestDynamicCredentialProvider(base.TestCase):
self._mock_router_create('1234', 'fake_admin_router')
router_interface_mock = self.patch(
'tempest.services.network.json.network_client.NetworkClient.'
'add_router_interface_with_subnet_id')
'add_router_interface')
self._mock_list_roles('123456', 'admin')
admin_creds = creds.get_admin_creds()
router_interface_mock.assert_called_once_with('1234', '1234')
router_interface_mock.assert_called_once_with('1234', subnet_id='1234')
network = admin_creds.network
subnet = admin_creds.subnet
router = admin_creds.router