From: laili Date: Wed, 22 Aug 2018 06:16:43 +0000 (+0800) Subject: Ns descriptor related stuffs. X-Git-Tag: 1.2.0~110^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F67%2F61767%2F1;p=vfc%2Fnfvo%2Fcatalog.git Ns descriptor related stuffs. Modify the biz of ns descriptors. Change-Id: I73fe9d9939b2ca55369058a52a98e8dbd8578f0e 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 16e4810b..b1da5c29 100644 --- a/catalog/packages/biz/ns_descriptor.py +++ b/catalog/packages/biz/ns_descriptor.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. - +import json import logging import os import uuid @@ -20,6 +20,8 @@ import uuid 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 NSPackageModel, VnfPackageModel +from catalog.pub.exceptions import CatalogException logger = logging.getLogger(__name__) @@ -34,9 +36,69 @@ def create(data): 'userDefinedData': user_defined_data, '_links': None # TODO } + NSPackageModel( + nsPackageId=data['id'], + operationalState=data['nsdOperationalState'], + usageState=data['nsdUsageState'], + userDefinedData=data['userDefinedData'] + ).save() return data +def query_multiple(): + ns_packages = NSPackageModel.objects.all() + if not ns_packages: + raise CatalogException('NS descriptors do not exist.') + response_data = [] + for ns_pkg in ns_packages: + data = { + 'id': ns_pkg.nsPackageId, + 'nsdId': ns_pkg.nsdId, + 'nsdName': ns_pkg.nsdName, + 'nsdVersion': ns_pkg.nsdVersion, + 'nsdDesigner': ns_pkg.nsdDesginer, + 'nsdInvariantId': None, # TODO + 'vnfPkgIds': [], + 'pnfdInfoIds': [], # TODO + 'nestedNsdInfoIds': [], # TODO + 'nsdOnboardingState': 'CREATED', + 'onboardingFailureDetails': None, # TODO + 'nsdOperationalState': ns_pkg.operationalState, + 'nsdUsageState': ns_pkg.usageState, + 'userDefinedData': {}, + '_links': None # TODO + } + + if ns_pkg.nsdModel: + data['nsdOnboardingState'] = 'ONBOARDED' + elif ns_pkg.localFilePath: # TODO: strip() + data['nsdOnboardingState'] = 'PROCESSING' + elif ns_pkg.nsdId: + data['nsdOnboardingState'] = 'UPLOADING' + data['nsdOnboardingState'] = 'CREATED' + + if ns_pkg.nsdModel: + nsd_model = json.JSONDecoder().decode(ns_pkg.nsdModel) + vnf_pkg_ids = [] + for vnf in nsd_model['vnfs']: + vnfd_id = vnf["properties"]["id"] + pkgs = VnfPackageModel.objects.filter(vnfdId=vnfd_id) + for pkg in pkgs: + vnf_pkg_ids.append(pkg.vnfPackageId) + data['vnfPkgIds'] = vnf_pkg_ids + + if ns_pkg.userDefinedData: + user_defined_data = json.JSONDecoder().decode(ns_pkg.userDefinedData) + data['userDefinedData'] = user_defined_data + + response_data.append(data) + return response_data + + +def query_single(nsd_info_id): + pass + + def upload(files, nsd_info_id): remote_files = files for remote_file in remote_files: @@ -52,3 +114,7 @@ def upload(files, nsd_info_id): else: data = remote_file.read() local_file.write(data) + + +def fill_resp_data(ns_pkg): + pass