from catalog.pub.database.models import VnfPackageModel
from catalog.pub.exceptions import CatalogException
from catalog.pub.utils.values import ignore_case_get
+from catalog.pub.utils import fileutil
logger = logging.getLogger(__name__)
return pkg_info
-def delete_single(vnfPkgId):
- return None
+def delete_vnf_pkg(vnfPkgId):
+ vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnfPkgId)
+ if not vnf_pkg.exists():
+ logger.debug('VNF package(%s) is deleted.' % vnfPkgId)
+ return
+ if vnf_pkg[0].onboardingState != "CREATED":
+ raise CatalogException("The VNF package (%s) is not on-boarded" % vnfPkgId)
+ if vnf_pkg[0].operationalState != "DISABLED":
+ raise CatalogException("The VNF package (%s) is not disabled" % vnfPkgId)
+ if vnf_pkg[0].usageState != "NOT_IN_USE":
+ raise CatalogException("The VNF package (%s) is in use" % vnfPkgId)
+ vnf_pkg.delete()
+ vnf_pkg_path = os.path.join(CATALOG_ROOT_PATH, vnfPkgId)
+ fileutil.delete_dirs(vnf_pkg_path)
class VnfpkgUploadThread(threading.Thread):
from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer
from catalog.packages.serializers.vnf_pkg_infos import VnfPkgInfosSerializer
from catalog.packages.biz.vnf_package import create_vnf_pkg, query_multiple, VnfpkgUploadThread, \
- query_single, delete_single
+ query_single, delete_vnf_pkg
logger = logging.getLogger(__name__)
if request.method == 'DELETE':
logger.debug("Delete an individual VNF package> %s" % request.data)
try:
- delete_single(vnfPkgId)
+ delete_vnf_pkg(vnfPkgId)
return Response(data=None, status=status.HTTP_204_NO_CONTENT)
except CatalogException:
logger.error(traceback.format_exc())