Code Review
/
modeling
/
etsicatalog.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
change the ETSI package directory name from the “ONBOARDED_PACKAGE” to “ETSI_PACKAGE"
[modeling/etsicatalog.git]
/
catalog
/
packages
/
biz
/
sdc_vnf_package.py
diff --git
a/catalog/packages/biz/sdc_vnf_package.py
b/catalog/packages/biz/sdc_vnf_package.py
index
2160a00
..
7c9d547
100644
(file)
--- a/
catalog/packages/biz/sdc_vnf_package.py
+++ b/
catalog/packages/biz/sdc_vnf_package.py
@@
-21,15
+21,16
@@
import traceback
import zipfile
from catalog.packages.biz.vnf_package import VnfPackage
import zipfile
from catalog.packages.biz.vnf_package import VnfPackage
-from catalog.packages
.const import PKG_STATUS
+from catalog.packages
import const
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 VnfPackageModel
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 VnfPackageModel
-from catalog.pub.exceptions import CatalogException
+from catalog.pub.exceptions import CatalogException
, PackageHasExistsException
from catalog.pub.msapi import sdc
from catalog.pub.utils import fileutil
from catalog.pub.utils import toscaparser
from catalog.pub.msapi import sdc
from catalog.pub.utils import fileutil
from catalog.pub.utils import toscaparser
-from catalog.pub.utils.jobutil import JobUtil
+from catalog.pub.utils.jobutil import JobUtil, JOB_ERROR_CODE
+from catalog.packages.biz.notificationsutil import PkgNotifications
logger = logging.getLogger(__name__)
logger = logging.getLogger(__name__)
@@
-96,15
+97,19
@@
class NfDistributeThread(threading.Thread):
def run(self):
try:
self.on_distribute()
def run(self):
try:
self.on_distribute()
+ except PackageHasExistsException as e:
+ self.rollback_distribute()
+ JobUtil.add_job_status(self.job_id, JOB_ERROR, e.args[0], error_code=JOB_ERROR_CODE.PACKAGE_EXIST)
except CatalogException as e:
self.rollback_distribute()
except CatalogException as e:
self.rollback_distribute()
- JobUtil.add_job_status(self.job_id, JOB_ERROR, e.args[0])
+ JobUtil.add_job_status(self.job_id, JOB_ERROR, e.args[0]
, error_code=JOB_ERROR_CODE.CATALOG_EXCEPTION
)
except Exception as e:
logger.error(e.args[0])
logger.error(traceback.format_exc())
logger.error(str(sys.exc_info()))
self.rollback_distribute()
except Exception as e:
logger.error(e.args[0])
logger.error(traceback.format_exc())
logger.error(str(sys.exc_info()))
self.rollback_distribute()
- JobUtil.add_job_status(self.job_id, JOB_ERROR, "Failed to distribute CSAR(%s)" % self.csar_id)
+ JobUtil.add_job_status(self.job_id, JOB_ERROR, "Failed to distribute CSAR(%s)" % self.csar_id,
+ error_code=JOB_ERROR_CODE.SYSTEM_ERROR)
def on_distribute(self):
JobUtil.create_job(
def on_distribute(self):
JobUtil.create_job(
@@
-116,7
+121,7
@@
class NfDistributeThread(threading.Thread):
if VnfPackageModel.objects.filter(vnfPackageId=self.csar_id):
err_msg = "NF CSAR(%s) already exists." % self.csar_id
if VnfPackageModel.objects.filter(vnfPackageId=self.csar_id):
err_msg = "NF CSAR(%s) already exists." % self.csar_id
- JobUtil.add_job_status(self.job_id, JOB_ERROR, err_msg)
+ JobUtil.add_job_status(self.job_id, JOB_ERROR, err_msg
, error_code=JOB_ERROR_CODE.PACKAGE_EXIST
)
return
artifact = sdc.get_artifact(sdc.ASSETTYPE_RESOURCES, self.csar_id)
return
artifact = sdc.get_artifact(sdc.ASSETTYPE_RESOURCES, self.csar_id)
@@
-126,12
+131,12
@@
class NfDistributeThread(threading.Thread):
if local_file_name.endswith(".csar") or local_file_name.endswith(".zip"):
fileutil.unzip_csar(local_file_name, local_path)
vendor_vnf_file = ''
if local_file_name.endswith(".csar") or local_file_name.endswith(".zip"):
fileutil.unzip_csar(local_file_name, local_path)
vendor_vnf_file = ''
- # find original vendor ETSI package under the
ONBOARDING
_PACKAGE directory
-
onboarding_package_dir = os.path.join(local_path, "Artifacts/Deployment/ONBOARDED
_PACKAGE")
- if os.path.exists(
onboarding
_package_dir):
- files = os.listdir(
onboarding
_package_dir)
+ # find original vendor ETSI package under the
ETSI
_PACKAGE directory
+
etsi_package_dir = os.path.join(local_path, "Artifacts/Deployment/ETSI
_PACKAGE")
+ if os.path.exists(
etsi
_package_dir):
+ files = os.listdir(
etsi
_package_dir)
for file_name in files:
for file_name in files:
- a_file = os.path.join(
onboarding
_package_dir, file_name)
+ a_file = os.path.join(
etsi
_package_dir, file_name)
if os.path.isfile(a_file) & file_name.endswith(".csar"):
vendor_vnf_file = a_file
break
if os.path.isfile(a_file) & file_name.endswith(".csar"):
vendor_vnf_file = a_file
break
@@
-156,7
+161,7
@@
class NfDistributeThread(threading.Thread):
vnfd_id = vnfd["vnf"]["properties"].get("descriptor_id", "")
if VnfPackageModel.objects.filter(vnfdId=vnfd_id):
logger.error("VNF package(%s) already exists.", vnfd_id)
vnfd_id = vnfd["vnf"]["properties"].get("descriptor_id", "")
if VnfPackageModel.objects.filter(vnfdId=vnfd_id):
logger.error("VNF package(%s) already exists.", vnfd_id)
- raise
Catalog
Exception("VNF package(%s) already exists." % vnfd_id)
+ raise
PackageHasExists
Exception("VNF package(%s) already exists." % vnfd_id)
JobUtil.add_job_status(self.job_id, 30, "Save CSAR(%s) to database." % self.csar_id)
vnfd_ver = vnfd["vnf"]["properties"].get("descriptor_version", "")
vnf_provider = vnfd["vnf"]["properties"].get("provider", "")
JobUtil.add_job_status(self.job_id, 30, "Save CSAR(%s) to database." % self.csar_id)
vnfd_ver = vnfd["vnf"]["properties"].get("descriptor_version", "")
vnf_provider = vnfd["vnf"]["properties"].get("provider", "")
@@
-172,11
+177,13
@@
class NfDistributeThread(threading.Thread):
vnfdModel=vnfd_json,
localFilePath=local_file_name,
vnfPackageUri=csar_name,
vnfdModel=vnfd_json,
localFilePath=local_file_name,
vnfPackageUri=csar_name,
- onboardingState=PKG_STATUS.ONBOARDED,
- operationalState=PKG_STATUS.ENABLED,
- usageState=PKG_STATUS.NOT_IN_USE
+ onboardingState=
const.
PKG_STATUS.ONBOARDED,
+ operationalState=
const.
PKG_STATUS.ENABLED,
+ usageState=
const.
PKG_STATUS.NOT_IN_USE
).save()
JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) distribute successfully." % self.csar_id)
).save()
JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) distribute successfully." % self.csar_id)
+ send_notification(self.csar_id, const.PKG_NOTIFICATION_TYPE.ONBOARDING,
+ const.PKG_CHANGE_TYPE.OP_STATE_CHANGE)
def create_vnfd_zip(self, csar_id, vendor_vnf_file):
"""
def create_vnfd_zip(self, csar_id, vendor_vnf_file):
"""
@@
-242,7
+249,8
@@
class NfPkgDeleteThread(threading.Thread):
inst_id=self.csar_id,
job_id=self.job_id)
JobUtil.add_job_status(self.job_id, 5, "Start to delete CSAR(%s)." % self.csar_id)
inst_id=self.csar_id,
job_id=self.job_id)
JobUtil.add_job_status(self.job_id, 5, "Start to delete CSAR(%s)." % self.csar_id)
-
+ send_notification(self.csar_id, const.PKG_NOTIFICATION_TYPE.CHANGE,
+ const.PKG_CHANGE_TYPE.PKG_DELETE)
VnfPackageModel.objects.filter(vnfPackageId=self.csar_id).delete()
JobUtil.add_job_status(self.job_id, 50, "Delete local CSAR(%s) file." % self.csar_id)
VnfPackageModel.objects.filter(vnfPackageId=self.csar_id).delete()
JobUtil.add_job_status(self.job_id, 50, "Delete local CSAR(%s) file." % self.csar_id)
@@
-299,3
+307,9
@@
class NfPackage(object):
"imageInfo": []
}
return [0, csar_info]
"imageInfo": []
}
return [0, csar_info]
+
+
+def send_notification(pkg_id, type, pkg_change_type, operational_state=None):
+ notify = PkgNotifications(type, pkg_id, change_type=pkg_change_type,
+ operational_state=operational_state)
+ notify.send_notification()