diff options
author | maopeng zhang <zhang.maopeng1@zte.com.cn> | 2019-09-03 09:33:06 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-09-03 09:33:06 +0000 |
commit | e1e0c957138779a8a19b72f5595550f35866af88 (patch) | |
tree | 6c5aa4ee9b645bba2d74ab64a275b5b8b613e233 /gvnfmadapter/driver/interfaces/views.py | |
parent | e785b0e792f5b50ff2b3667ef61a1ccf6b018d20 (diff) | |
parent | ae84dc13220419c9793abc11485d6d15a2c7a0a8 (diff) |
Merge "fix bug for failure in deleting subscriptions for vnfm"5.0.2-ONAPelalto
Diffstat (limited to 'gvnfmadapter/driver/interfaces/views.py')
-rw-r--r-- | gvnfmadapter/driver/interfaces/views.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gvnfmadapter/driver/interfaces/views.py b/gvnfmadapter/driver/interfaces/views.py index db47884..3aec4d9 100644 --- a/gvnfmadapter/driver/interfaces/views.py +++ b/gvnfmadapter/driver/interfaces/views.py @@ -489,6 +489,35 @@ class Subscription(APIView): return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) +class SubscriptionDetail(APIView): + @swagger_auto_schema( + responses={ + status.HTTP_204_NO_CONTENT: "Sucess", + status.HTTP_404_NOT_FOUND: "Not found", + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } + ) + def delete(self, request, vnfmtype, vnfmid, subscriptionid): + try: + logger.debug("Subscription--delete begin!") + vnfm_info = get_vnfminfo_from_nslcm(vnfmid) + logger.debug("[delete_subscription] vnfm_info=[%s]", vnfm_info) + ret = call_vnfm("api/vnflcm/v1/subscriptions/%s" % subscriptionid, "DELETE", vnfm_info) + logger.debug("[%s] call_req ret=%s", fun_name(), ret) + if int(ret[2]) not in [status.HTTP_204_NO_CONTENT, status.HTTP_404_NOT_FOUND]: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise GvnfmDriverException('Failed to delete subscribeid=%s.' % subscriptionid) + logger.debug("Subscription--delete sucess!") + return Response(status=ret[2]) + except GvnfmDriverException as e: + logger.error(e.args[0]) + return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) + except Exception as e: + logger.error(e.args[0]) + logger.error(traceback.format_exc()) + return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + def call_vnfm(resource, method, vnfm_info, data=""): ret = restcall.call_req( base_url=ignorcase_get(vnfm_info, "url"), |