Added ability to remove networks on nova-manage command

This commit is contained in:
Ricardo Carrillo Cruz
2011-03-08 18:53:20 +01:00
parent 56ee811efd
commit e81294b94e
3 changed files with 19 additions and 1 deletions

View File

@@ -548,7 +548,11 @@ class NetworkCommands(object):
def delete(self, fixed_range):
"""Deletes a network"""
network = db.network_get_by_cidr(context.get_admin_context(), fixed_range)
if network.project_id is not None:
raise ValueError(_('Network must be disassociated from project %s'
' before delete' %network.project_id))
db.network_delete_safe(context.get_admin_context(), network.id)
class ServiceCommands(object):
"""Enable and disable running services"""

View File

@@ -488,6 +488,13 @@ def network_create_safe(context, values):
"""
return IMPL.network_create_safe(context, values)
def network_delete_safe(context, network_id):
"""Delete network with key network_id
This method assumes that the network is not associated with any project
"""
return IMPL.network_delete_safe(context, network_id)
def network_create_fixed_ips(context, network_id, num_vpn_clients):
"""Create the ips for the network, reserving sepecified ips."""

View File

@@ -1042,6 +1042,13 @@ def network_create_safe(context, values):
except IntegrityError:
return None
@require_admin_context
def network_delete_safe(context, network_id):
session = get_session()
with session.begin():
network_ref = network_get(context, network_id=network_id, session=session)
session.delete(network_ref)
@require_admin_context
def network_disassociate(context, network_id):