From 2f4d7a5b1d2a629e5856a5e3e17576bc618452f0 Mon Sep 17 00:00:00 2001 From: dyh Date: Fri, 15 Nov 2019 09:26:18 +0800 Subject: Implement read VNFD API Issue-ID: MODELING-266 Change-Id: Ib5e4a965c080329f68d407b414a347298da6a84b Signed-off-by: dyh --- catalog/packages/views/vnf_package_views.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'catalog/packages/views') diff --git a/catalog/packages/views/vnf_package_views.py b/catalog/packages/views/vnf_package_views.py index 44e3df7..76891f2 100644 --- a/catalog/packages/views/vnf_package_views.py +++ b/catalog/packages/views/vnf_package_views.py @@ -72,6 +72,30 @@ def vnf_packages_rc(request): return Response(data=data, status=status.HTTP_201_CREATED) +@swagger_auto_schema( + method="GET", + operation_description="Read VNFD of an on-boarded VNF package", + tags=["VNF Package API"], + request_body=no_body, + responses={ + status.HTTP_200_OK: VnfPkgInfosSerializer(), + status.HTTP_404_NOT_FOUND: "VNF package does not exist", + status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" + } +) +@api_view(http_method_names=["GET"]) +@view_safe_call_with_log(logger=logger) +def vnfd_rd(request, **kwargs): + vnf_pkg_id = kwargs.get("vnfPkgId") + logger.debug("Read VNFD for VNF package %s" % vnf_pkg_id) + try: + file_iterator = VnfPackage().download_vnfd(vnf_pkg_id) + return StreamingHttpResponse(file_iterator, status=status.HTTP_200_OK) + except Exception as e: + logger.error(e) + raise e + + @swagger_auto_schema( method='PUT', operation_description="Upload VNF package content", -- cgit 1.2.3-korg