diff --git a/bin/nova-manage b/bin/nova-manage index f6b86360..c6ec155e 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -858,14 +858,26 @@ class NetworkCommands(object): network.cidr, network.cidr_v6) - @args('--network', dest="fixed_range", metavar='', + @args('--fixed_range', dest="fixed_range", metavar='', help='Network to delete') - def delete(self, fixed_range): + @args('--uuid', dest='uuid', metavar='', + help='UUID of network to delete') + def delete(self, fixed_range=None, uuid=None): """Deletes a network""" - # delete the network + if fixed_range is None and uuid is None: + raise Exception("Please specify either fixed_range or uuid") + net_manager = utils.import_object(FLAGS.network_manager) - net_manager.delete_network(context.get_admin_context(), fixed_range) + if "QuantumManager" in FLAGS.network_manager: + if uuid is None: + raise Exception("UUID is required to delete Quantum Networks") + if fixed_range: + raise Exception("Deleting by fixed_range is not supported " \ + "with the QuantumManager") + # delete the network + net_manager.delete_network(context.get_admin_context(), + fixed_range, uuid) @args('--network', dest="fixed_range", metavar='', help='Network to modify') diff --git a/nova/tests/test_quantum.py b/nova/tests/test_quantum.py index 1a199131..fdfc99d4 100644 --- a/nova/tests/test_quantum.py +++ b/nova/tests/test_quantum.py @@ -196,7 +196,11 @@ class QuantumTestCaseBase(object): def _delete_nets(self): for n in networks: ctx = context.RequestContext('user1', n['project_id']) - self.net_man.delete_network(ctx, n['cidr']) + db_nets = db.network_get_all(ctx.elevated()) + for x in db_nets: + if x['label'] == n['label']: + n['uuid'] = x['uuid'] + self.net_man.delete_network(ctx, None, n['uuid']) def test_allocate_and_deallocate_instance_static(self): self._create_nets()