Deal with nfPackage 95/61795/1
authorbiancunkang <bian.cunkang@zte.com.cn>
Wed, 22 Aug 2018 07:54:17 +0000 (15:54 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Wed, 22 Aug 2018 07:54:17 +0000 (15:54 +0800)
Change-Id: I648914cadf84d4e08cc2704eedee9bea93c4a923
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/urls.py
catalog/packages/views/vnfpkg_views.py

index 75d4c71..ead9bc8 100644 (file)
@@ -14,7 +14,7 @@
 
 from django.conf.urls import url
 
-from catalog.packages.views.vnfpkg_views import package_content, upload_from_uri
+from catalog.packages.views.vnfpkg_views import package_content, upload_from_uri, vnf_packages
 from catalog.packages.views import (catalog_views, ns_descriptor_views,
                                     nsd_content_views, pnf_descriptor_views,
                                     pnfd_content_views)
@@ -42,7 +42,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_packages.as_view(), name='vnf_packages_rc'),
+    url(r'^api/vnfpkgm/v1/vnf_packages$', vnf_packages.as_view(), 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\-\_]+)/vnfd$', vnfd.as_view(), name='vnfd_r'),
     url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/package_content$',
index 0b48702..1ef8aeb 100644 (file)
@@ -23,6 +23,9 @@ from rest_framework.response import Response
 from catalog.packages.biz.nf_package import VnfpkgUploadThread\r
 from catalog.pub.exceptions import CatalogException\r
 from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer\r
+from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer\r
+from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer\r
+from catalog.packages.biz.nf_package import create_vnf_pkg\r
 \r
 logger = logging.getLogger(__name__)\r
 \r
@@ -39,15 +42,26 @@ class vnf_packages(APIView):
         return None\r
 \r
     @swagger_auto_schema(\r
-        # request_body=CreateVnfReqSerializer(),\r
+        request_body=CreateVnfPkgInfoRequestSerializer(),\r
         responses={\r
-            #     status.HTTP_201_CREATED: CreateVnfRespSerializer(),\r
+            status.HTTP_201_CREATED: VnfPkgInfoSerializer(),\r
             status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
         }\r
     )\r
     def post(self, request):\r
-        # TODO\r
-        return None\r
+        logger.debug("CreateVnfPkg> %s" % request.data)\r
+        try:\r
+            req_serializer = CreateVnfPkgInfoRequestSerializer(data=request.data)\r
+            if not req_serializer.is_valid():\r
+                raise CatalogException\r
+            res = create_vnf_pkg(req_serializer.data)\r
+            create_vnf_pkg_resp_serializer = VnfPkgInfoSerializer(data=res)\r
+            if not create_vnf_pkg_resp_serializer.is_valid():\r
+                raise CatalogException\r
+            return Response(data=create_vnf_pkg_resp_serializer.data, status=status.HTTP_201_CREATED)\r
+        except CatalogException:\r
+            logger.error(traceback.format_exc())\r
+            return Response(data={'error': 'Creating vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
 \r
 \r
 class vnf_package(APIView):\r