Skip to content

Commit

Permalink
Merge "Added cascaded delete when deleting a VN" into R3.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Feb 4, 2017
2 parents e400902 + 9648c07 commit 6bdb476
Showing 1 changed file with 20 additions and 27 deletions.
47 changes: 20 additions & 27 deletions src/config/vnc_openstack/vnc_openstack/neutron_plugin_db.py
Expand Up @@ -408,29 +408,7 @@ def _virtual_network_update(self, net_obj):
except (PermissionDenied, RefsExistError) as e:
self._raise_contrail_exception('BadRequest',
resource='network', msg=str(e))

# read back to get subnet gw allocated by api-server
fq_name_str = json.dumps(net_obj.get_fq_name())
#end _virtual_network_update

def _virtual_network_delete(self, net_id):
fq_name_str = None
try:
net_obj = self._vnc_lib.virtual_network_read(id=net_id)
fq_name_str = json.dumps(net_obj.get_fq_name())
except NoIdError:
return

try:
if net_obj.get_floating_ip_pools():
fip_pools = net_obj.get_floating_ip_pools()
for fip_pool in fip_pools:
self._floating_ip_pool_delete(fip_pool_id=fip_pool['uuid'])

self._vnc_lib.virtual_network_delete(id=net_id)
except RefsExistError:
self._raise_contrail_exception('NetworkInUse', net_id=net_id)
#end _virtual_network_delete
# end _virtual_network_update

def _virtual_network_list(self, parent_id=None, obj_uuids=None,
fields=None, detail=False, count=False,
Expand Down Expand Up @@ -665,8 +643,7 @@ def _logical_router_read(self, rtr_id=None, fq_name=None):

def _logical_router_update(self, rtr_obj):
self._vnc_lib.logical_router_update(rtr_obj)
fq_name_str = json.dumps(rtr_obj.get_fq_name())
#end _logical_router_update
# end _logical_router_update

def _logical_router_delete(self, rtr_id):
try:
Expand Down Expand Up @@ -2571,8 +2548,24 @@ def network_update(self, net_id, network_q):

@wait_for_api_server_connection
def network_delete(self, net_id):
self._virtual_network_delete(net_id=net_id)
#end network_delete
try:
net_obj = self._vnc_lib.virtual_network_read(id=net_id)
except NoIdError:
return

try:
fip_pools = net_obj.get_floating_ip_pools()
for fip_pool in fip_pools or []:
fip_pool_obj = self._vnc_lib.floating_ip_pool_read(id=fip_pool['uuid'])
fips = fip_pool_obj.get_floating_ips()
for fip in fips or []:
self.floatingip_delete(fip_id=fip['uuid'])
self._floating_ip_pool_delete(fip_pool_id=fip_pool['uuid'])

self._vnc_lib.virtual_network_delete(id=net_id)
except RefsExistError:
self._raise_contrail_exception('NetworkInUse', net_id=net_id)
# end network_delete

# TODO request based on filter contents
@wait_for_api_server_connection
Expand Down

0 comments on commit 6bdb476

Please sign in to comment.