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="+",
|
||||
help=_("VNFFG(s) to delete (name or ID)")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--force',
|
||||
default=False,
|
||||
action='store_true',
|
||||
help=_('Force delete VNFFG'))
|
||||
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):
|
||||
client = self.app.client_manager.tackerclient
|
||||
failure = False
|
||||
deleted_ids = []
|
||||
failed_items = {}
|
||||
body = self.args2body(parsed_args)
|
||||
for resource_id in parsed_args.vnffg:
|
||||
try:
|
||||
obj = tackerV10.find_resourceid_by_name_or_id(
|
||||
client, _VNFFG, resource_id)
|
||||
client.delete_vnffg(obj)
|
||||
client.delete_vnffg(obj, body)
|
||||
deleted_ids.append(resource_id)
|
||||
except Exception as e:
|
||||
failure = True
|
||||
|
|
|
@ -232,3 +232,18 @@ class DeleteVNFFG(tackerV10.DeleteCommand):
|
|||
"""Delete a given 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,
|
||||
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)
|
||||
my_id = 'my-id'
|
||||
args = [my_id]
|
||||
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)
|
||||
|
||||
@APIParamsCall
|
||||
def delete_vnffg(self, vnffg):
|
||||
return self.delete(self.vnffg_path % vnffg)
|
||||
def delete_vnffg(self, vnffg, body=None):
|
||||
return self.delete(self.vnffg_path % vnffg, body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def update_vnffg(self, vnffg, body):
|
||||
|
|
Loading…
Reference in New Issue