Skip to content

Commit

Permalink
Merge "Add relax derived link check for delete"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Jan 27, 2016
2 parents fc00e0c + fd9ca40 commit 648d79a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
9 changes: 9 additions & 0 deletions src/config/common/vnc_cassandra.py
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,15 @@ def object_delete(self, res_type, obj_uuid):
(_, ref_type, ref_uuid) = col_name.split(':')
self._delete_ref(bch, obj_type, obj_uuid, ref_type, ref_uuid)

# remove link from relaxed back refs
col_start = 'relaxbackref:'
col_fin = 'relaxbackref;'
col_name_iter = obj_uuid_cf.xget(
obj_uuid, column_start=col_start, column_finish=col_fin)
for (col_name, col_val) in col_name_iter:
(_, backref_uuid) = col_name.split(':')
self._delete_ref(bch, None, backref_uuid, obj_type, obj_uuid)

bch.remove(obj_uuid)
bch.send()

Expand Down
3 changes: 2 additions & 1 deletion src/config/svc-monitor/svc_monitor/port_tuple.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,13 @@ def _allocate_iip_for_family(self, iip_family, si, port, vmi):
tag = ServiceInterfaceTag(interface_type=port['type'])
self._vnc_lib.ref_update('service-instance', si.uuid,
'instance-ip', iip_id, None, 'ADD', tag)
InstanceIpSM.locate()
InstanceIpSM.locate(iip_id)
si.update()

if create_iip or update_vmi:
self._vnc_lib.ref_update('instance-ip', iip_id,
'virtual-machine-interface', vmi.uuid, None, 'ADD')
self._vnc_lib.ref_relax_for_delete(iip_id, vmi.uuid)
vmi.update()

return
Expand Down
13 changes: 13 additions & 0 deletions src/config/svc-monitor/svc_monitor/svc_monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,19 @@ def skip_check_service(si):


def timer_callback(monitor):
# delete orphan shared iips
iip_delete_list = []
for iip in InstanceIpSM.values():
if not iip.instance_ip_secondary or not iip.service_instance_ip:
continue
if iip.service_instance:
continue
if len(iip.virtual_machine_interfaces):
continue
iip_delete_list.append(iip)
for iip in iip_delete_list:
monitor.delete_shared_iip(iip.uuid)

# delete vms without si
vm_delete_list = []
for vm in VirtualMachineSM.values():
Expand Down

0 comments on commit 648d79a

Please sign in to comment.