]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add and update subnet properties in Cisco N1kv plugin
authorDhanashree Gosavi <dhgosavi@cisco.com>
Tue, 4 Feb 2014 18:07:39 +0000 (10:07 -0800)
committerThomas Goirand <thomas@goirand.fr>
Thu, 13 Mar 2014 07:20:16 +0000 (15:20 +0800)
Add dns nameservers and dhcp info in subnet create.
Update subnet properties.

Change-Id: I70e3f0261f6ba5433bbf08d33e2a34cdbb20fed2
Closes-Bug: #1276876

neutron/plugins/cisco/n1kv/n1kv_client.py
neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py
neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py

index 77ecc1e1a0fa8115bee4509352dac3af3db4eb65..7d38d586264c9c00ca1cbca1c5ae905102ff9e3a 100644 (file)
@@ -339,11 +339,25 @@ class Client(object):
                 'ipAddressSubnet': netmask,
                 'description': subnet['name'],
                 'gateway': subnet['gateway_ip'],
+                'dhcp': subnet['enable_dhcp'],
+                'dnsServersList': subnet['dns_nameservers'],
                 'networkAddress': network_address,
                 'tenantId': subnet['tenant_id']}
         return self._post(self.ip_pool_path % subnet['id'],
                           body=body)
 
+    def update_ip_pool(self, subnet):
+        """
+        Update an ip-pool on the VSM.
+
+        :param subnet: subnet dictionary
+        """
+        body = {'description': subnet['name'],
+                'dhcp': subnet['enable_dhcp'],
+                'dnsServersList': subnet['dns_nameservers']}
+        return self._post(self.ip_pool_path % subnet['id'],
+                          body=body)
+
     def delete_ip_pool(self, subnet_id):
         """
         Delete an ip-pool on the VSM.
index 6c5cf95541f526d82750010e8d4b19edaaa513c2..3c7acb8229983efde65d64b6dd5e5473d4958548 100644 (file)
@@ -818,8 +818,16 @@ class N1kvNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2,
         LOG.debug(_('_send_create_subnet_request: %s'), subnet['id'])
         n1kvclient = n1kv_client.Client()
         n1kvclient.create_ip_pool(subnet)
-        body = {'ipPool': subnet['id']}
-        n1kvclient.update_network_segment(subnet['network_id'], body=body)
+
+    def _send_update_subnet_request(self, subnet):
+        """
+        Send update subnet request to VSM.
+
+        :param subnet: subnet dictionary
+        """
+        LOG.debug(_('_send_update_subnet_request: %s'), subnet['name'])
+        n1kvclient = n1kv_client.Client()
+        n1kvclient.update_ip_pool(subnet)
 
     def _send_delete_subnet_request(self, context, subnet):
         """
@@ -1298,6 +1306,7 @@ class N1kvNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2,
         sub = super(N1kvNeutronPluginV2, self).update_subnet(context,
                                                              id,
                                                              subnet)
+        self._send_update_subnet_request(sub)
         return sub
 
     def delete_subnet(self, context, id):
index 12563801927af95cf9bdd04ab4db068dff5af36d..b698e09d8da38670ccd0c960872e79a6f278a995 100644 (file)
@@ -379,6 +379,12 @@ class TestN1kvNetworks(test_plugin.TestNetworksV2,
             self.assertEqual(res.status_int, 400)
 
 
+class TestN1kvSubnets(test_plugin.TestSubnetsV2,
+                      N1kvPluginTestCase):
+
+    pass
+
+
 class TestN1kvNonDbTest(base.BaseTestCase):
 
     """