X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog%2Fpackages%2Fns_package.py;h=bd700b96e332ea9aa8906dc9210bc8f3f36efc70;hb=e59d31fd31468f3e4af27e555e23131704b0d380;hp=396d0866707b921d2cd6ef55b4f4a295b4dcf583;hpb=5eac5f1fcb2239a6bfea60539e267cd13e25340a;p=vfc%2Fnfvo%2Fcatalog.git diff --git a/catalog/packages/ns_package.py b/catalog/packages/ns_package.py index 396d0866..bd700b96 100644 --- a/catalog/packages/ns_package.py +++ b/catalog/packages/ns_package.py @@ -18,13 +18,13 @@ import os import sys import traceback -from catalog.pub.config.config import CATALOG_ROOT_PATH +from catalog.pub.config.config import CATALOG_ROOT_PATH, CATALOG_URL_PATH +from catalog.pub.config.config import REG_TO_MSB_REG_PARAM from catalog.pub.database.models import NSPackageModel, VnfPackageModel from catalog.pub.exceptions import CatalogException from catalog.pub.msapi import sdc from catalog.pub.utils import fileutil from catalog.pub.utils import toscaparser -from rest_framework import status logger = logging.getLogger(__name__) @@ -87,9 +87,10 @@ def parse_nsd(csar_id, inputs): ret= None try: ns_pkg = NSPackageModel.objects.filter(nsPackageId=csar_id) - if ns_pkg: - csar_path = ns_pkg[0].localFilePath - ret = {"model": toscaparser.parse_nsd(csar_path, inputs)} + if not ns_pkg: + raise CatalogException("NS CSAR(%s) does not exist." % csar_id) + csar_path = ns_pkg[0].localFilePath + ret = {"model": toscaparser.parse_nsd(csar_path, inputs)} except CatalogException as e: return [1, e.message] except: @@ -112,8 +113,9 @@ class NsPackage(object): artifact = sdc.get_artifact(sdc.ASSETTYPE_SERVICES, csar_id) local_path = os.path.join(CATALOG_ROOT_PATH, csar_id) + csar_name = "%s.csar" % artifact.get("name", csar_id) local_file_name = sdc.download_artifacts(artifact["toscaModelURL"], - local_path, "%s.csar" % artifact.get("name", csar_id)) + local_path, csar_name) nsd_json = toscaparser.parse_nsd(local_file_name) nsd = json.JSONDecoder().decode(nsd_json) @@ -135,11 +137,11 @@ class NsPackage(object): nsdDesginer=nsd["metadata"].get("vendor", "undefined"), nsdDescription=nsd["metadata"].get("description", ""), nsdVersion=nsd["metadata"].get("version", "undefined"), - nsPackageUri=local_file_name, + nsPackageUri=csar_name, sdcCsarId=csar_id, localFilePath=local_file_name, nsdModel=nsd_json - ).save() + ).save() return [0, "CSAR(%s) distributed successfully." % csar_id] @@ -149,10 +151,10 @@ class NsPackage(object): return [0, "Delete CSAR(%s) successfully." % csar_id] def get_csars(self): - csars = [] + csars = {"csars": []} nss = NSPackageModel.objects.filter() for ns in nss: - csars.append({ + csars["csars"].append({ "csarId": ns.nsPackageId, "nsdId": ns.nsdId, "nsdProvider": ns.nsdDesginer, @@ -167,9 +169,15 @@ class NsPackage(object): package_info["nsdId"] = csars[0].nsdId package_info["nsdProvider"] = csars[0].nsdDesginer package_info["nsdVersion"] = csars[0].nsdVersion - - return [0, {"csarId": csar_id, - "packageInfo": package_info}] + package_info["csarName"] = csars[0].nsPackageUri + package_info["downloadUrl"] = "http://%s:%s/%s/%s/%s" % ( + REG_TO_MSB_REG_PARAM["nodes"][0]["ip"], + REG_TO_MSB_REG_PARAM["nodes"][0]["port"], + CATALOG_URL_PATH, + csar_id, + csars[0].nsPackageUri) + + return [0, {"csarId": csar_id, "packageInfo": package_info}] def delete_catalog(self, csar_id): local_path = os.path.join(CATALOG_ROOT_PATH, csar_id)