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__)
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:
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)
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]
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,
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)