import json
import logging
import os
-import sys
+
import threading
import traceback
import urllib
# logger.error("VNF package(%s) is not CREATED" % vnf_pkg_id)
# raise CatalogException("VNF package(%s) is not CREATED" % vnf_pkg_id)
vnf_pkg.update(onboardingState=const.PKG_STATUS.UPLOADING)
- send_notification(vnf_pkg_id, const.PKG_NOTIFICATION_TYPE.ONBOARDING,
- const.PKG_CHANGE_TYPE.OP_STATE_CHANGE)
local_file_name = save(remote_file, vnf_pkg_id)
logger.info('VNF package(%s) has been uploaded.' % vnf_pkg_id)
self.data = data
self.upload_file_name = None
+ def vnf_pkg_upload_failed_handle(self, error_msg):
+ logger.error(error_msg)
+ logger.error(traceback.format_exc())
+ vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=self.vnf_pkg_id)
+ if vnf_pkg and vnf_pkg[0].onboardingState == const.PKG_STATUS.UPLOADING:
+ vnf_pkg.update(onboardingState=const.PKG_STATUS.CREATED)
+
def run(self):
try:
self.upload_vnf_pkg_from_uri()
parse_vnfd_and_save(self.vnf_pkg_id, self.upload_file_name)
except CatalogException as e:
- logger.error(e.args[0])
+ self.vnf_pkg_upload_failed_handle(e.args[0])
except Exception as e:
- logger.error(e.args[0])
- logger.error(traceback.format_exc())
- logger.error(str(sys.exc_info()))
+ self.vnf_pkg_upload_failed_handle(e.args[0])
def upload_vnf_pkg_from_uri(self):
logger.info("Start to upload VNF packge(%s) from URI..." % self.vnf_pkg_id)
localFilePath=vnf_pkg_path,
vnfPackageUri=os.path.split(vnf_pkg_path)[-1]
)
+ send_notification(vnf_pkg_id, const.PKG_NOTIFICATION_TYPE.ONBOARDING,
+ const.PKG_CHANGE_TYPE.OP_STATE_CHANGE)
else:
raise CatalogException("VNF propeties and metadata in VNF Package(id=%s) are empty." % vnf_pkg_id)
logger.info('VNF package(%s) has been processed(done).' % vnf_pkg_id)