Deal with nfPackage 57/61957/1
authorbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 04:10:50 +0000 (12:10 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 04:10:50 +0000 (12:10 +0800)
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 <bian.cunkang@zte.com.cn>
catalog/packages/biz/vnf_package.py
catalog/packages/tests/test_vnfpackage.py [moved from catalog/packages/tests/test_nf.py with 100% similarity]
catalog/packages/urls.py
catalog/packages/views/vnf_package_views.py

index b444050..da17a61 100644 (file)
@@ -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)
index f5dfecc..0704366 100644 (file)
@@ -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<subscriptionId>[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<vnfPkgId>[0-9a-zA-Z\-\_]+)$', vnf_package.as_view(), name='vnf_package_rd'),
+    url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)$', vnf_package_views.vnf_package_rd, name='vnf_package_rd'),
     # url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/vnfd$', vnfd.as_view(), name='vnfd_r'),
     url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/package_content$',
         vnf_package_views.upload_vnf_pkg_content, name='package_content_ru'),
index 11de348..447152e 100644 (file)
@@ -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)