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 = [
# 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'),
# 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
# 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