From: laili Date: Thu, 23 Aug 2018 07:24:28 +0000 (+0800) Subject: Ns descriptor related stuffs. X-Git-Tag: 1.2.0~75^2~3 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=ce6eb1df8a7482e80a2c4fcd6639e944968c8c1a;p=vfc%2Fnfvo%2Fcatalog.git Ns descriptor related stuffs. Implement the biz for query of multiple pnfds. Change-Id: I779b9a36a3fa93d2aab40eb8666b29f41597fd8e Issue-ID: VFC-1037 Signed-off-by: laili --- diff --git a/catalog/packages/biz/ns_descriptor.py b/catalog/packages/biz/ns_descriptor.py index ee0b005b..7983c7d8 100644 --- a/catalog/packages/biz/ns_descriptor.py +++ b/catalog/packages/biz/ns_descriptor.py @@ -48,7 +48,7 @@ def create(data): def query_multiple(): ns_pkgs = NSPackageModel.objects.all() - if not ns_pkgs: + if not ns_pkgs.exists(): raise CatalogException('NS descriptors do not exist.') response_data = [] for ns_pkg in ns_pkgs: diff --git a/catalog/packages/biz/pnf_descriptor.py b/catalog/packages/biz/pnf_descriptor.py index a711fa50..ea9b9aeb 100644 --- a/catalog/packages/biz/pnf_descriptor.py +++ b/catalog/packages/biz/pnf_descriptor.py @@ -13,6 +13,7 @@ # limitations under the License. +import json import logging import os import uuid @@ -21,6 +22,7 @@ from catalog.pub.config.config import CATALOG_ROOT_PATH from catalog.pub.utils import fileutil from catalog.pub.utils.values import ignore_case_get from catalog.pub.database.models import PnfPackageModel +from catalog.pub.exceptions import CatalogException logger = logging.getLogger(__name__) @@ -43,6 +45,33 @@ def create(data): return data +def query_multiple(): + pnf_pkgs = PnfPackageModel.objects.all() + if not pnf_pkgs.exists(): + raise CatalogException('PNF descriptors do not exist.') + response_data = [] + for pnf_pkg in pnf_pkgs: + data = { + 'id': pnf_pkg.pnfPackageId, + 'pnfdId': pnf_pkg.pnfdId, + 'pnfdName': pnf_pkg.pnfdProductName, # TODO: check + 'pnfdVersion': pnf_pkg.pnfdVersion, + 'pnfdProvider': pnf_pkg.pnfVendor, # TODO: check + 'pnfdInvariantId': None, # TODO + 'pnfdOnboardingState': pnf_pkg.onboardingState, + 'onboardingFailureDetails': None, # TODO + 'pnfdUsageState': pnf_pkg.usageState, + 'userDefinedData': {}, + '_links': None # TODO + } + if pnf_pkg.userDefinedData: + user_defined_data = json.JSONDecoder().decode(pnf_pkg.userDefinedData) + data['userDefinedData'] = user_defined_data + response_data.append(data) + + return response_data + + def upload(files, pnfd_info_id): remote_files = files for remote_file in remote_files: