Fix vfc-catalog pep8 E123,E125,W391 issue
[vfc/nfvo/catalog.git] / catalog / packages / ns_package.py
index 396d086..bd700b9 100644 (file)
@@ -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)