From: biancunkang Date: Thu, 23 Aug 2018 04:10:50 +0000 (+0800) Subject: Deal with nfPackage X-Git-Tag: 1.2.0~83^2~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F57%2F61957%2F1;p=vfc%2Fnfvo%2Fcatalog.git Deal with nfPackage Add the view of query_singe and delete, rename test_nf to test_vnfpackage Change-Id: I94563434d678b1ca456ca151746eada83bb7d7f5 Issue-ID: VFC-1038 Signed-off-by: biancunkang --- diff --git a/catalog/packages/biz/vnf_package.py b/catalog/packages/biz/vnf_package.py index b4440500..da17a61c 100644 --- a/catalog/packages/biz/vnf_package.py +++ b/catalog/packages/biz/vnf_package.py @@ -62,6 +62,23 @@ def query_multiple(): return data +def query_single(vnfPkgId): + # TODO + data = { + "id": "1", + "onboardingState": "CREATED", + "operationalState": "DISABLED", + "usageState": "NOT_IN_USE", + "userDefinedData": "1", + "_links": None + } + return data + + +def delete_single(vnfPkgId): + return None + + class VnfpkgUploadThread(threading.Thread): def __init__(self, data, vnfPkgId): threading.Thread.__init__(self) diff --git a/catalog/packages/tests/test_nf.py b/catalog/packages/tests/test_vnfpackage.py similarity index 100% rename from catalog/packages/tests/test_nf.py rename to catalog/packages/tests/test_vnfpackage.py diff --git a/catalog/packages/urls.py b/catalog/packages/urls.py index f5dfecc5..07043666 100644 --- a/catalog/packages/urls.py +++ b/catalog/packages/urls.py @@ -43,7 +43,7 @@ urlpatterns = [ # url(r'^api/nsd/v1/subscriptions', nsd_subscriptions.as_view(), name='subscriptions_rc'), # url(r'^api/nsd/v1/subscriptions/(?P[0-9a-zA-Z\-\_]+)$', nsd_subscription.as_view(), name='subscription_rd'), url(r'^api/vnfpkgm/v1/vnf_packages$', vnf_package_views.vnf_packages_rc, name='vnf_packages_rc'), - # url(r'^api/vnfpkgm/v1/vnf_packages/(?P[0-9a-zA-Z\-\_]+)$', vnf_package.as_view(), name='vnf_package_rd'), + url(r'^api/vnfpkgm/v1/vnf_packages/(?P[0-9a-zA-Z\-\_]+)$', vnf_package_views.vnf_package_rd, name='vnf_package_rd'), # url(r'^api/vnfpkgm/v1/vnf_packages/(?P[0-9a-zA-Z\-\_]+)/vnfd$', vnfd.as_view(), name='vnfd_r'), url(r'^api/vnfpkgm/v1/vnf_packages/(?P[0-9a-zA-Z\-\_]+)/package_content$', vnf_package_views.upload_vnf_pkg_content, name='package_content_ru'), diff --git a/catalog/packages/views/vnf_package_views.py b/catalog/packages/views/vnf_package_views.py index 11de348d..447152e2 100644 --- a/catalog/packages/views/vnf_package_views.py +++ b/catalog/packages/views/vnf_package_views.py @@ -25,7 +25,8 @@ from catalog.pub.exceptions import CatalogException from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer -from catalog.packages.biz.vnf_package import create_vnf_pkg, query_multiple, VnfpkgUploadThread +from catalog.packages.biz.vnf_package import create_vnf_pkg, query_multiple, VnfpkgUploadThread, \ + query_single, delete_single logger = logging.getLogger(__name__) @@ -60,7 +61,7 @@ def vnf_packages_rc(request): return Response(data=query_serializer.data, status=status.HTTP_200_OK) except CatalogException: logger.error(traceback.format_exc()) - return Response(data={'error': 'Querying vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + return Response(data={'error': 'Query vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) except Exception as e: logger.error(e.message) logger.error(traceback.format_exc()) @@ -79,7 +80,7 @@ def vnf_packages_rc(request): return Response(data=create_vnf_pkg_resp_serializer.data, status=status.HTTP_201_CREATED) except CatalogException: logger.error(traceback.format_exc()) - return Response(data={'error': 'Creating vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + return Response(data={'error': 'Create vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) except Exception as e: logger.error(e.message) logger.error(traceback.format_exc()) @@ -137,3 +138,55 @@ def upload_vnf_pkg_from_uri(request, vnfPkgId): logger.error(e.message) logger.error(traceback.format_exc()) return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + +@swagger_auto_schema( + method='GET', + operation_description="Query an individual VNF package resource", + request_body=no_body, + responses={ + status.HTTP_200_OK: VnfPkgInfoSerializer(), + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } +) +@swagger_auto_schema( + method='DELETE', + operation_description="Delete an individual VNF package resource", + request_body=no_body, + responses={ + status.HTTP_204_NO_CONTENT: None, + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } +) +@api_view(http_method_names=['GET', 'DELETE']) +def vnf_package_rd(request, vnfPkgId): + if request.method == 'GET': + logger.debug("Query an individual VNF package> %s" % request.data) + try: + res = query_single(vnfPkgId) + query_serializer = VnfPkgInfoSerializer(data=res) + if not query_serializer.is_valid(): + raise CatalogException + return Response(data=query_serializer.data, status=status.HTTP_200_OK) + except CatalogException: + logger.error(traceback.format_exc()) + return Response(data={'error': 'Query an individual VNF package failed.'}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) + except Exception as e: + logger.error(e.message) + logger.error(traceback.format_exc()) + return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + if request.method == 'DELETE': + logger.debug("Delete an individual VNF package> %s" % request.data) + try: + delete_single(vnfPkgId) + return Response(data=None, status=status.HTTP_204_NO_CONTENT) + except CatalogException: + logger.error(traceback.format_exc()) + return Response(data={'error': 'Delete an individual VNF package failed.'}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) + except Exception as e: + logger.error(e.message) + logger.error(traceback.format_exc()) + return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)