new --force option for xxx-delete commands in sol005 client
Change-Id: Ib593840025e2e7cdf91a9c181deb9dc67f895b49
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/osmclient/scripts/osm.py b/osmclient/scripts/osm.py
index 1fc824e..570ad8c 100755
--- a/osmclient/scripts/osm.py
+++ b/osmclient/scripts/osm.py
@@ -687,9 +687,13 @@
# DELETE operations
####################
-def nsd_delete(ctx, name):
+def nsd_delete(ctx, name, force):
try:
- ctx.obj.nsd.delete(name)
+ if not force:
+ ctx.obj.nsd.delete(name)
+ else:
+ check_client_version(ctx.obj, '--force')
+ ctx.obj.nsd.delete(name, force)
except ClientException as inst:
print(inst.message)
exit(1)
@@ -697,29 +701,35 @@
@cli.command(name='nsd-delete', short_help='deletes a NSD/NSpkg')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def nsd_delete1(ctx, name):
+def nsd_delete1(ctx, name, force):
'''deletes a NSD/NSpkg
NAME: name or ID of the NSD/NSpkg to be deleted
'''
- nsd_delete(ctx, name)
+ nsd_delete(ctx, name, force)
@cli.command(name='nspkg-delete', short_help='deletes a NSD/NSpkg')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def nsd_delete2(ctx, name):
+def nsd_delete2(ctx, name, force):
'''deletes a NSD/NSpkg
NAME: name or ID of the NSD/NSpkg to be deleted
'''
- nsd_delete(ctx, name)
+ nsd_delete(ctx, name, force)
-def vnfd_delete(ctx, name):
+def vnfd_delete(ctx, name, force):
try:
- ctx.obj.vnfd.delete(name)
+ if not force:
+ ctx.obj.vnfd.delete(name)
+ else:
+ check_client_version(ctx.obj, '--force')
+ ctx.obj.vnfd.delete(name, force)
except ClientException as inst:
print(inst.message)
exit(1)
@@ -727,36 +737,43 @@
@cli.command(name='vnfd-delete', short_help='deletes a VNFD/VNFpkg')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def vnfd_delete1(ctx, name):
+def vnfd_delete1(ctx, name, force):
'''deletes a VNFD/VNFpkg
NAME: name or ID of the VNFD/VNFpkg to be deleted
'''
- vnfd_delete(ctx, name)
+ vnfd_delete(ctx, name, force)
@cli.command(name='vnfpkg-delete', short_help='deletes a VNFD/VNFpkg')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def vnfd_delete2(ctx, name):
+def vnfd_delete2(ctx, name, force):
'''deletes a VNFD/VNFpkg
NAME: name or ID of the VNFD/VNFpkg to be deleted
'''
- vnfd_delete(ctx, name)
+ vnfd_delete(ctx, name, force)
@cli.command(name='ns-delete', short_help='deletes a NS instance')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def ns_delete(ctx, name):
+def ns_delete(ctx, name, force):
'''deletes a NS instance
NAME: name or ID of the NS instance to be deleted
'''
try:
- ctx.obj.ns.delete(name)
+ if not force:
+ ctx.obj.ns.delete(name)
+ else:
+ check_client_version(ctx.obj, '--force')
+ ctx.obj.ns.delete(name, force)
except ClientException as inst:
print(inst.message)
exit(1)
@@ -865,14 +882,19 @@
@cli.command(name='vim-delete')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def vim_delete(ctx, name):
+def vim_delete(ctx, name, force):
'''deletes a VIM account
NAME: name or ID of the VIM account to be deleted
'''
try:
- ctx.obj.vim.delete(name)
+ if not force:
+ ctx.obj.vim.delete(name)
+ else:
+ check_client_version(ctx.obj, '--force')
+ ctx.obj.vim.delete(name, force)
except ClientException as inst:
print(inst.message)
exit(1)
@@ -1047,15 +1069,16 @@
@cli.command(name='sdnc-delete')
@click.argument('name')
+@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
@click.pass_context
-def sdnc_delete(ctx, name):
+def sdnc_delete(ctx, name, force):
'''deletes an SDN controller
NAME: name or ID of the SDN controller to be deleted
'''
try:
check_client_version(ctx.obj, ctx.command.name)
- ctx.obj.sdnc.delete(name)
+ ctx.obj.sdnc.delete(name, force)
except ClientException as inst:
print(inst.message)
exit(1)
diff --git a/osmclient/sol005/ns.py b/osmclient/sol005/ns.py
index ebb779c..9ce1fcd 100644
--- a/osmclient/sol005/ns.py
+++ b/osmclient/sol005/ns.py
@@ -74,9 +74,13 @@
return resp
raise NotFound("ns {} not found".format(name))
- def delete(self, name):
+ def delete(self, name, force=False):
ns = self.get(name)
- http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase,ns['_id']))
+ querystring = ''
+ if force:
+ querystring = '?FORCE=True'
+ http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase,
+ ns['_id'], querystring))
if resp:
resp = json.loads(resp)
#print 'RESP: {}'.format(resp)
diff --git a/osmclient/sol005/nsd.py b/osmclient/sol005/nsd.py
index 055d2e5..ef9e5ab 100644
--- a/osmclient/sol005/nsd.py
+++ b/osmclient/sol005/nsd.py
@@ -90,9 +90,13 @@
def get_artifact(self, name, artifact, filename):
self.get_thing(name, 'artifacts/{}'.format(artifact), filename)
- def delete(self, name):
+ def delete(self, name, force=False):
nsd = self.get(name)
- http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase, nsd['_id']))
+ querystring = ''
+ if force:
+ querystring = '?FORCE=True'
+ http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase,
+ nsd['_id'], querystring))
if resp:
resp = json.loads(resp)
#print 'RESP: {}'.format(resp)
diff --git a/osmclient/sol005/sdncontroller.py b/osmclient/sol005/sdncontroller.py
index 7833fbd..b11eb06 100644
--- a/osmclient/sol005/sdncontroller.py
+++ b/osmclient/sol005/sdncontroller.py
@@ -59,9 +59,13 @@
else:
print resp['id']
- def delete(self, name):
+ def delete(self, name, force=False):
sdn_controller = self.get(name)
- http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase,sdn_controller['_id']))
+ querystring = ''
+ if force:
+ querystring = '?FORCE=True'
+ http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase,
+ sdn_controller['_id'], querystring))
if resp:
resp = json.loads(resp)
#print 'RESP: {}'.format(resp)
diff --git a/osmclient/sol005/vim.py b/osmclient/sol005/vim.py
index dca8444..ec1ccad 100644
--- a/osmclient/sol005/vim.py
+++ b/osmclient/sol005/vim.py
@@ -90,11 +90,15 @@
return vim['uuid']
raise NotFound("vim {} not found".format(name))
- def delete(self, vim_name):
+ def delete(self, vim_name, force=False):
vim_id = vim_name
if not utils.validate_uuid4(vim_name):
vim_id = self.get_id(vim_name)
- http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase,vim_id))
+ querystring = ''
+ if force:
+ querystring = '?FORCE=True'
+ http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase,
+ vim_id, querystring))
if resp:
resp = json.loads(resp)
#print 'RESP: {}'.format(resp)
diff --git a/osmclient/sol005/vnfd.py b/osmclient/sol005/vnfd.py
index dd12096..c903f93 100644
--- a/osmclient/sol005/vnfd.py
+++ b/osmclient/sol005/vnfd.py
@@ -89,9 +89,13 @@
def get_artifact(self, name, artifact, filename):
self.get_thing(name, 'artifacts/{}'.format(artifact), filename)
- def delete(self, name):
+ def delete(self, name, force=False):
vnfd = self.get(name)
- http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase,vnfd['_id']))
+ querystring = ''
+ if force:
+ querystring = '?FORCE=True'
+ http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase,
+ vnfd['_id'], querystring))
if resp:
resp = json.loads(resp)
#print 'RESP: {}'.format(resp)