import json
import logging
import traceback
+import uuid
from threading import Thread
from lcm.nf.vnfs.const import vnfd_model_dict
from lcm.pub.utils import toscautil
from lcm.pub.utils.jobutil import JobUtil
from lcm.pub.utils.timeutil import now_time
-from lcm.pub.utils.values import ignore_case_get
+from lcm.pub.utils.values import ignore_case_get, get_none, get_boolean
from lcm.pub.vimapi import adaptor
logger = logging.getLogger(__name__)
self.inst_pre()
self.apply_grant()
self.create_res()
- self.lcm_notify()
+ # self.lcm_notify()
JobUtil.add_job_status(self.job_id, 100, "Instantiate Vnf success.")
# is_exist = JobStatusModel.objects.filter(jobid=self.job_id).exists()
# logger.debug("check_ns_inst_name_exist::is_exist=%s" % is_exist)
# self.rollback(e.message)
except:
self.vnf_inst_failed_handle('unexpected exception')
+ tt= traceback.format_exc()
logger.error(traceback.format_exc())
# self.rollback('unexpected exception')
# "res_id": ignore_case_get(ret, "res_id")})
JobUtil.add_job_status(self.job_id, 25, 'Create vloumns!')
StorageInstModel.objects.create(
- storageid=ret["id"],
- vimid=ret["vimId"],
- resouceid=ret["id"],
- name=ret["name"],
- tenant=ret["tenantId"],
+ storageid=str(uuid.uuid4()),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ name=ignore_case_get(ret, "name"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ create_time=ignore_case_get(ret, "createTime"),
+ storagetype=get_none(ignore_case_get(ret, "type")),
+ size=ignore_case_get(ret, "size"),
insttype=0,
- is_predefined=ret["returnCode"],
+ is_predefined=ignore_case_get(ret, "returnCode"),
instid=self.nf_inst_id)
elif res_type == adaptor.RES_NETWORK:
logger.info('Create networks!')
# self.inst_resource['network'].append({"vim_id": "1"}, {"res_id": "2"})
JobUtil.add_job_status(self.job_id, 35, 'Create networks!')
NetworkInstModel.objects.create(
- networkid= ignore_case_get(ret, "id"),
- vimid = ignore_case_get(ret, "vimId"),
- resouceid = ignore_case_get(ret, "id"),
- name = ignore_case_get(ret, "name"),
- tenant = ignore_case_get(ret, "tenatId"),
+ networkid=str(uuid.uuid4()),
+ name=ignore_case_get(ret, "name"),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ segmentid=str(ignore_case_get(ret, "segmentationId")),
+ network_type=ignore_case_get(ret, "networkType"),
+ physicalNetwork=ignore_case_get(ret, "physicalNetwork"),
+ vlantrans=get_boolean(ignore_case_get(ret, "vlanTransparent")),
+ is_shared=get_boolean(ignore_case_get(ret, "shared")),
+ routerExternal=get_boolean(ignore_case_get(ret, "routerExternal")),
insttype = 0,
- is_predefined = ignore_case_get(ret, "returnCode"),
+ is_predefined=ignore_case_get(ret, "returnCode"),
instid = self.nf_inst_id)
elif res_type == adaptor.RES_SUBNET:
logger.info('Create subnets!')
# self.inst_resource['subnet'].append({"vim_id": "1"}, {"res_id": "2"})
JobUtil.add_job_status(self.job_id, 40, 'Create subnets!')
SubNetworkInstModel.objects.create(
- subnetworkid=ret["id"],
- vimid=ret["vimId"],
- resouceid=ret["id"],
- name=ret["name"],
- tenant=ret["tenatId"],
+ subnetworkid=str(uuid.uuid4()),
+ name=ignore_case_get(ret, "name"),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ networkid=ignore_case_get(ret, "networkId"),
+ cidr=ignore_case_get(ret, "cidr"),
+ ipversion=ignore_case_get(ret, "ipversion"),
+ isdhcpenabled=ignore_case_get(ret, "enableDhcp"),
+ gatewayip=ignore_case_get(ret, "gatewayIp"),
+ dnsNameservers=ignore_case_get(ret, "dnsNameservers"),
+ hostRoutes=ignore_case_get(ret, "hostRoutes"),
+ allocationPools=ignore_case_get(ret, "allocationPools"),
insttype=0,
is_predefined=ret["returnCode"],
instid=self.nf_inst_id)
# self.inst_resource['port'].append({"vim_id": "1"}, {"res_id": "2"})
JobUtil.add_job_status(self.job_id, 50, 'Create ports!')
PortInstModel.objects.create(
- portid=ret["id"],
- networkid=ret["networkId"],
- subnetworkid=ret["subnetId"],
- vimid=ret["vimId"],
- resouceid=ret["id"],
- name=ret["name"],
- tenant=ret["tenatId"],
+ portid=str(uuid.uuid4()),
+ networkid=ignore_case_get(ret, "networkId"),
+ subnetworkid=ignore_case_get(ret, "subnetId"),
+ name=ignore_case_get(ret, "name"),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ macaddress = ignore_case_get(ret, "macAddress"),
+ ipaddress = ignore_case_get(ret, "ip"),
+ typevirtualnic=ignore_case_get(ret, "vnicType"),
+ securityGroups=ignore_case_get(ret, "securityGroups"),
insttype=0,
- is_predefined=ret["returnCode"],
+ is_predefined=ignore_case_get(ret, "returnCode"),
instid=self.nf_inst_id)
elif res_type == adaptor.RES_FLAVOR:
logger.info('Create flavors!')
# self.inst_resource['flavor'].append({"vim_id": "1"}, {"res_id": "2"})
JobUtil.add_job_status(self.job_id, 60, 'Create flavors!')
FlavourInstModel.objects.create(
- falavourid=ret["id"],
- name=ret["name"],
- vcpu=ret["vcpu"],
- memory=ret["memory"],
- extraspecs=ret["extraSpecs"],
- is_predefined=ret["returnCode"],
- tenant=ret["tenatId"],
- vimid=ret["vimId"],
+ flavourid=str(uuid.uuid4()),
+ name=ignore_case_get(ret, "name"),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ vcpu=ignore_case_get(ret, "vcpu"),
+ memory=ignore_case_get(ret, "memory"),
+ disk=ignore_case_get(ret, "disk"),
+ ephemeral=ignore_case_get(ret, "ephemeral"),
+ swap=ignore_case_get(ret, "swap"),
+ isPublic=get_boolean(ignore_case_get(ret, "isPublic")),
+ extraspecs=ignore_case_get(ret, "extraSpecs"),
+ is_predefined=ignore_case_get(ret, "returnCode"),
instid=self.nf_inst_id)
elif res_type == adaptor.RES_VM:
logger.info('Create vms!')
# self.inst_resource['vm'].append({"vim_id": "1"}, {"res_id": "2"})
JobUtil.add_job_status(self.job_id, 70, 'Create vms!')
VmInstModel.objects.create(
- vmid=ret["id"],
- vimid=ret["vimId"],
- resouceid=ret["id"],
+ vmid=str(uuid.uuid4()),
+ vmname=ignore_case_get(ret, "name"),
+ vimid=ignore_case_get(ret, "vimId"),
+ resouceid=ignore_case_get(ret, "id"),
+ tenant=ignore_case_get(ret, "tenantId"),
+ nic_array=ignore_case_get(ret, "nicArray"),
+ metadata=ignore_case_get(ret, "metadata"),
+ volume_array=ignore_case_get(ret, "volumeArray"),
+ server_group=ignore_case_get(ret, "serverGroup"),
+ availability_zone=ignore_case_get(ret, "availabilityZone"),
+ flavor_id=ignore_case_get(ret, "flavorId"),
+ security_groups=ignore_case_get(ret, "securityGroups"),
+ operationalstate=ignore_case_get(ret, "status"),
insttype=0,
- instid=self.nf_inst_id,
- vmname=ret["name"],
- is_predefined=ret["returnCode"])
+ is_predefined=ignore_case_get(ret, "returnCode"),
+ instid=self.nf_inst_id)
# def do_rollback(self, args_=None):
# logger.error('error info : %s' % args_)