Comment 1 for bug 1545663

Revision history for this message
Senthilnathan Murugappan (msenthil) wrote :

There were regressions caused due to commits
https://github.com/Juniper/contrail-controller/commit/87661c5af04ea9979f7f2402f012f0d7511f4103
https://github.com/Juniper/contrail-controller/commit/a9d186000a163175f961975bb80325eaec0f1fc5

Below patch fixed things.

root@a2s42:/usr/lib/python2.7/dist-packages/svc_monitor# diff -u config_db.py.1 config_db.py
--- config_db.py.1 2016-02-15 15:24:13.740781407 -0800
+++ config_db.py 2016-02-15 15:20:51.344675251 -0800
@@ -469,7 +469,6 @@
         vm = VirtualMachineSM.get(self.virtual_machine)
         if vm:
             self._manager.port_delete_or_si_link(vm, self)
- return

         self._manager.port_tuple_agent.update_port_tuple(self)

root@a2s42:/usr/lib/python2.7/dist-packages/svc_monitor# diff -u port_tuple.py.1 port_tuple.py
--- port_tuple.py.1 2016-02-15 14:42:32.911650439 -0800
+++ port_tuple.py 2016-02-15 15:21:02.556680615 -0800
@@ -53,7 +53,7 @@
             iip_obj.set_instance_ip_mode(si.ha_mode)
             try:
                 self._vnc_lib.instance_ip_create(iip_obj)
- self._vnc_lib.ref_relax_for_delete(iip_id, vn_obj.uuid)
+ self._vnc_lib.ref_relax_for_delete(iip_obj.uuid, vn_obj.uuid)
             except RefsExistError:
                 self._vnc_lib.instance_ip_update(iip_obj)
             except Exception as e:
@@ -196,12 +196,14 @@

         return port_config

- def update_port_tuple(self, vmi):
- if not vmi.port_tuple:
- self.delete_old_vmi_links(vmi)
- return
-
- pt = PortTupleSM.get(vmi.port_tuple)
+ def update_port_tuple(self, vmi=None, pt_id=None):
+ if vmi:
+ if not vmi.port_tuple:
+ self.delete_old_vmi_links(vmi)
+ return
+ pt = PortTupleSM.get(vmi.port_tuple)
+ if pt_id:
+ pt = PortTupleSM.get(pt_id)
         if not pt:
             return
         si = ServiceInstanceSM.get(pt.parent_key)
@@ -234,6 +236,6 @@
     def update_port_tuples(self):
         for si in ServiceInstanceSM.values():
             for pt_id in si.port_tuples:
- self.update_port_tuple(pt_id)
+ self.update_port_tuple(pt_id=pt_id)
         for iip in InstanceIpSM.values():
                 self.delete_shared_iip(iip)