Adds support force delete VNFFG
This patch adds '--force' parameter to vnffg delete command, to force delete VNFFG. e.g: openstack vnf graph delete --force VNFFG1 blueprint force-delete-resources Change-Id: I642ddcdb7a1167f25553ef26df6102bb2be22c3f
This commit is contained in:
parent
124be387dc
commit
785c6dbfda
|
@ -190,18 +190,32 @@ class DeleteVNFFG(command.Command):
|
||||||
nargs="+",
|
nargs="+",
|
||||||
help=_("VNFFG(s) to delete (name or ID)")
|
help=_("VNFFG(s) to delete (name or ID)")
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--force',
|
||||||
|
default=False,
|
||||||
|
action='store_true',
|
||||||
|
help=_('Force delete VNFFG'))
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
def args2body(self, parsed_args):
|
||||||
|
body = dict()
|
||||||
|
if parsed_args.force:
|
||||||
|
body[_VNFFG] = dict()
|
||||||
|
body[_VNFFG]['attributes'] = dict()
|
||||||
|
body[_VNFFG]['attributes']['force'] = True
|
||||||
|
return body
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
client = self.app.client_manager.tackerclient
|
client = self.app.client_manager.tackerclient
|
||||||
failure = False
|
failure = False
|
||||||
deleted_ids = []
|
deleted_ids = []
|
||||||
failed_items = {}
|
failed_items = {}
|
||||||
|
body = self.args2body(parsed_args)
|
||||||
for resource_id in parsed_args.vnffg:
|
for resource_id in parsed_args.vnffg:
|
||||||
try:
|
try:
|
||||||
obj = tackerV10.find_resourceid_by_name_or_id(
|
obj = tackerV10.find_resourceid_by_name_or_id(
|
||||||
client, _VNFFG, resource_id)
|
client, _VNFFG, resource_id)
|
||||||
client.delete_vnffg(obj)
|
client.delete_vnffg(obj, body)
|
||||||
deleted_ids.append(resource_id)
|
deleted_ids.append(resource_id)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
failure = True
|
failure = True
|
||||||
|
|
|
@ -232,3 +232,18 @@ class DeleteVNFFG(tackerV10.DeleteCommand):
|
||||||
"""Delete a given VNFFG."""
|
"""Delete a given VNFFG."""
|
||||||
|
|
||||||
resource = _VNFFG
|
resource = _VNFFG
|
||||||
|
remove_output_fields = ["attributes"]
|
||||||
|
|
||||||
|
def add_known_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--force',
|
||||||
|
default=False,
|
||||||
|
action='store_true',
|
||||||
|
help=_('Force delete VNFFG'))
|
||||||
|
|
||||||
|
def args2body(self, parsed_args):
|
||||||
|
body = dict()
|
||||||
|
if parsed_args.force:
|
||||||
|
body[self.resource] = dict()
|
||||||
|
body[self.resource]['attributes'] = {'force': True}
|
||||||
|
return body
|
||||||
|
|
|
@ -113,8 +113,14 @@ class CLITestV10VmVNFFGJSON(test_cli10.CLITestV10Base):
|
||||||
args, extra_fields,
|
args, extra_fields,
|
||||||
get_client_called_count=2)
|
get_client_called_count=2)
|
||||||
|
|
||||||
def test_delete_vnffg(self):
|
def test_delete_vnffg_without_force(self):
|
||||||
cmd = vnffg.DeleteVNFFG(test_cli10.MyApp(sys.stdout), None)
|
cmd = vnffg.DeleteVNFFG(test_cli10.MyApp(sys.stdout), None)
|
||||||
my_id = 'my-id'
|
my_id = 'my-id'
|
||||||
args = [my_id]
|
args = [my_id]
|
||||||
self._test_delete_resource(self._RESOURCE, cmd, my_id, args)
|
self._test_delete_resource(self._RESOURCE, cmd, my_id, args)
|
||||||
|
|
||||||
|
def test_delete_vnffg_with_force(self):
|
||||||
|
cmd = vnffg.DeleteVNFFG(test_cli10.MyApp(sys.stdout), None)
|
||||||
|
my_id = 'my-id'
|
||||||
|
args = [my_id, '--force']
|
||||||
|
self._test_delete_resource(self._RESOURCE, cmd, my_id, args)
|
||||||
|
|
|
@ -626,8 +626,8 @@ class LegacyClient(ClientBase):
|
||||||
return self.post(self.vnffgs_path, body=body)
|
return self.post(self.vnffgs_path, body=body)
|
||||||
|
|
||||||
@APIParamsCall
|
@APIParamsCall
|
||||||
def delete_vnffg(self, vnffg):
|
def delete_vnffg(self, vnffg, body=None):
|
||||||
return self.delete(self.vnffg_path % vnffg)
|
return self.delete(self.vnffg_path % vnffg, body=body)
|
||||||
|
|
||||||
@APIParamsCall
|
@APIParamsCall
|
||||||
def update_vnffg(self, vnffg, body):
|
def update_vnffg(self, vnffg, body):
|
||||||
|
|
Loading…
Reference in New Issue