from catalog.pub.config.config import CATALOG_ROOT_PATH
from catalog.pub.database.models import NSPackageModel, PnfPackageModel, VnfPackageModel
-from catalog.pub.exceptions import CatalogException
+from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
from catalog.pub.utils import fileutil, toscaparser
from catalog.pub.utils.values import ignore_case_get
def query_multiple():
ns_pkgs = NSPackageModel.objects.all()
- if not ns_pkgs.exists():
- logger.error('NSDs do not exist.')
- raise CatalogException('NSDs do not exist.')
response_data = []
for ns_pkg in ns_pkgs:
data = fill_resp_data(ns_pkg)
ns_pkgs = NSPackageModel.objects.filter(nsPackageId=nsd_info_id)
if not ns_pkgs.exists():
logger.error('NSD(%s) does not exist.' % nsd_info_id)
- raise CatalogException('NSD(%s) does not exist.' % nsd_info_id)
+ raise ResourceNotFoundException('NSD(%s) does not exist.' % nsd_info_id)
return fill_resp_data(ns_pkgs[0])
if not ns_pkgs.exists():
logger.info('NSD(%s) is deleted.' % nsd_info_id)
return
-
- if ns_pkgs[0].onboardingState == 'ONBOARDED':
- logger.error('NSD(%s) shall be non-ONBOARDED.' % nsd_info_id)
- raise CatalogException('NSD(%s) shall be non-ONBOARDED.' % nsd_info_id)
+ '''
if ns_pkgs[0].operationalState != 'DISABLED':
logger.error('NSD(%s) shall be DISABLED.' % nsd_info_id)
raise CatalogException('NSD(%s) shall be DISABLED.' % nsd_info_id)
if ns_pkgs[0].usageState != 'NOT_IN_USE':
logger.error('NSD(%s) shall be NOT_IN_USE.' % nsd_info_id)
raise CatalogException('NSD(%s) shall be NOT_IN_USE.' % nsd_info_id)
-
+ '''
ns_pkgs.delete()
ns_pkg_path = os.path.join(CATALOG_ROOT_PATH, nsd_info_id)
fileutil.delete_dirs(ns_pkg_path)
ns_pkgs = NSPackageModel.objects.filter(nsPackageId=nsd_info_id)
if not ns_pkgs.exists():
logger.error('NSD(%s) does not exist.' % nsd_info_id)
- raise CatalogException('NSD(%s) does not exist.' % nsd_info_id)
+ raise ResourceNotFoundException('NSD(%s) does not exist.' % nsd_info_id)
if ns_pkgs[0].onboardingState != 'ONBOARDED':
logger.error('NSD(%s) is not ONBOARDED.' % nsd_info_id)
raise CatalogException('NSD(%s) is not ONBOARDED.' % nsd_info_id)
from django.http import StreamingHttpResponse
from catalog.pub.config.config import CATALOG_ROOT_PATH
from catalog.pub.database.models import VnfPackageModel
-from catalog.pub.exceptions import CatalogException, VnfPkgNotFoundException
+from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
from catalog.pub.utils.values import ignore_case_get
from catalog.pub.utils import fileutil, toscaparser
def query_single(vnf_pkg_id):
nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnf_pkg_id)
if not nf_pkg.exists():
- raise VnfPkgNotFoundException('VNF package(%s) does not exist.' % vnf_pkg_id)
+ raise ResourceNotFoundException('VNF package(%s) does not exist.' % vnf_pkg_id)
return fill_response_data(nf_pkg[0])
def fetch_vnf_pkg(request, vnf_pkg_id):
nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnf_pkg_id)
if not nf_pkg.exists():
- raise VnfPkgNotFoundException('VNF package(%s) does not exist.' % vnf_pkg_id)
+ raise ResourceNotFoundException('VNF package(%s) does not exist.' % vnf_pkg_id)
if nf_pkg[0].onboardingState != "ONBOARDED":
raise CatalogException("VNF package (%s) is not on-boarded" % vnf_pkg_id)
file_path = nf_pkg[0].localFilePath
class _LinkSerializer(serializers.Serializer):
- this = LinkSerializer(
+ self = LinkSerializer(
help_text='URI of this resource.',
required=True,
allow_null=False
class _LinkSerializer(serializers.Serializer):
- this = LinkSerializer(
+ self = LinkSerializer(
help_text='URI of this resource.',
required=True,
allow_null=False
from catalog.packages.serializers.create_nsd_info_request import CreateNsdInfoRequestSerializer
from catalog.packages.serializers.nsd_info import NsdInfoSerializer
from catalog.packages.serializers.nsd_infos import NsdInfosSerializer
-from catalog.pub.exceptions import CatalogException
+from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
from drf_yasg.utils import no_body, swagger_auto_schema
from rest_framework import status
from rest_framework.decorators import api_view
request_body=no_body,
responses={
status.HTTP_200_OK: NsdInfoSerializer(),
+ status.HTTP_404_NOT_FOUND: 'NSDs do not exist.',
status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
}
)
data = query_single(nsdInfoId)
nsd_info = validate_data(data, NsdInfoSerializer)
return Response(data=nsd_info.data, status=status.HTTP_200_OK)
+ except ResourceNotFoundException as e:
+ logger.error(e.message)
+ return Response(data={'error': 'NSDs do not exist.'}, status=status.HTTP_404_NOT_FOUND)
except CatalogException as e:
logger.error(e.message)
error_msg = {'error': 'Query of a NSD failed.'}
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: None,
+ status.HTTP_404_NOT_FOUND: 'NSD does not exist.',
status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
}
)
try:
upload(files[0], nsd_info_id)
return Response(data=None, status=status.HTTP_204_NO_CONTENT)
+ except CatalogException as e:
+ logger.error(e.message)
+ error_msg = {'error': 'Uploading NSD content failed.'}
except Exception as e:
logger.error(e.message)
logger.error(traceback.format_exc())
response['Content-Disposition'] = 'attachment; filename=%s' % file_name.encode('utf-8')
response['Content-Length'] = end - start
return response
+ except ResourceNotFoundException as e:
+ logger.error(e.message)
+ return Response(data={'error': 'NSD does not exist.'}, status=status.HTTP_404_NOT_FOUND)
+ except CatalogException as e:
+ logger.error(e.message)
+ error_msg = {'error': 'Downloading NSD content failed.'}
except Exception as e:
logger.error(e.message)
logger.error(traceback.format_exc())
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
-from catalog.pub.exceptions import CatalogException, VnfPkgNotFoundException
+from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
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
return Response(None, status=status.HTTP_202_ACCEPTED)
except CatalogException as e:
handle_upload_failed(vnfPkgId)
- logger.debug(e.message)
+ logger.error(e.message)
error_msg = {'error': 'Upload VNF package failed.'}
except Exception as e:
handle_upload_failed(vnfPkgId)
try:
response = fetch_vnf_pkg(request, vnfPkgId)
return response
- except VnfPkgNotFoundException as e:
+ except ResourceNotFoundException as e:
logger.error(e.message)
return Response(data={'error': "VNF package does not exist"}, status=status.HTTP_404_NOT_FOUND)
except CatalogException as e:
return Response(None, status=status.HTTP_202_ACCEPTED)
except CatalogException as e:
handle_upload_failed(vnfPkgId)
- logger.debug(e.message)
+ logger.error(e.message)
error_msg = {'error': 'Upload VNF package failed.'}
except Exception as e:
handle_upload_failed(vnfPkgId)
res = query_single(vnfPkgId)
query_serializer = validate_data(res, VnfPkgInfoSerializer)
return Response(data=query_serializer.data, status=status.HTTP_200_OK)
- except VnfPkgNotFoundException as e:
+ except ResourceNotFoundException as e:
logger.error(e.message)
return Response(data={'error': "VNF package does not exist"}, status=status.HTTP_404_NOT_FOUND)
except CatalogException as e:
pass
-class VnfPkgNotFoundException(CatalogException):
+class ResourceNotFoundException(CatalogException):
pass