Deal with nfPackage 87/61487/2
authorbiancunkang <bian.cunkang@zte.com.cn>
Tue, 21 Aug 2018 07:24:57 +0000 (15:24 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Tue, 21 Aug 2018 07:32:21 +0000 (15:32 +0800)
Change-Id: Ib714cca4a50477824f7f0f403ff1363f8291e494
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/urls.py
catalog/packages/views/vnfpkg_views.py

index 7cd72cd..a3b4f0f 100644 (file)
@@ -15,6 +15,7 @@
 from django.conf.urls import url
 
 from catalog.packages.views import catalog_views, ns_descriptor_views, nsd_content_views
+from catalog.packages.views.vnfpkg_views import package_content
 
 
 urlpatterns = [
@@ -39,7 +40,8 @@ urlpatterns = [
     # 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$', package_content.as_view(), name='package_content_ru'),
+    url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/package_content$',
+        package_content.as_view(), name='package_content_ru'),
     # url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/package_content/upload_from_uri$', upload_from_uri.as_view(), name='upload_from_uri_c'),
     # url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/artifacts/artifactPath$', artifacts.as_view(), name='artifacts_r'),
     # url(r'^api/vnfpkgm/v1/subscriptions', vnfpkg_subscriptions.as_view(), name='subscriptions_rc'),
index a95bcd1..98c6dd9 100644 (file)
 # See the License for the specific language governing permissions and\r
 # limitations under the License.\r
 \r
+import os\r
+import traceback\r
+import logging\r
+from catalog.pub.config.config import CATALOG_ROOT_PATH\r
 from drf_yasg.utils import swagger_auto_schema\r
 from rest_framework import status\r
 from rest_framework.views import APIView\r
+from rest_framework.response import Response\r
+\r
+logger = logging.getLogger(__name__)\r
 \r
 \r
 class vnf_packages(APIView):\r
@@ -108,6 +115,22 @@ class package_content(APIView):
         # TODO\r
         return None\r
 \r
+    def put(self, request, vnfPkgId):\r
+        logger.debug("UploadVnf %s" % vnfPkgId)\r
+        file_object = request.FILES.get('file')\r
+        upload_path = os.path.join(CATALOG_ROOT_PATH, vnfPkgId)\r
+        if not os.path.exists(upload_path):\r
+            os.makedirs(upload_path, 0o777)\r
+        try:\r
+            upload_file_name = os.path.join(upload_path, file_object.name)\r
+            with open(upload_file_name, 'wb+') as dest_file:\r
+                for chunk in file_object.chunks():\r
+                    dest_file.write(chunk)\r
+        except Exception as e:\r
+            logger.error("File upload exception.[%s:%s]" % (type(e), str(e)))\r
+            logger.error("%s", traceback.format_exc())\r
+        return Response(None, status.HTTP_202_ACCEPTED)\r
+\r
 \r
 class upload_from_uri(APIView):\r
     @swagger_auto_schema(\r