# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+import json
import logging
import traceback
import uuid
class CreateVnf:
def __init__(self, data):
self.data = data
- self.vnfd_id = ignore_case_get(self.data, "vnfdId")
+ self.csar_id = ignore_case_get(self.data, "vnfdId")
self.vnf_instance_mame = ignore_case_get(self.data, "vnfInstanceName")
self.description = ignore_case_get(self.data, "vnfInstanceDescription")
- self.vnfd = None
- self.csar_id = self.vnfd_id
def do_biz(self):
self.nf_inst_id = str(uuid.uuid4())
vnfd_model='',
status='NOT_INSTANTIATED',
nf_desc=self.description,
- vnfdid=self.vnfd_id,
+ vnfdid=self.csar_id,
vnfSoftwareVersion='',
create_time=now_time())
-
vnf_inst = NfInstModel.objects.get(nfinstid=self.nf_inst_id)
- logger.debug('id is [%s],name is [%s],vnfd_id is [%s],vnfd_model is [%s],'
- 'description is [%s],create_time is [%s]' %
- (vnf_inst.nfinstid, vnf_inst.nf_name, vnf_inst.vnfdid,
- vnf_inst.vnfd_model, vnf_inst.nf_desc, vnf_inst.create_time))
- return self.nf_inst_id
+ resp = {
+ 'id': vnf_inst.nfinstid,
+ 'vnfInstanceName': vnf_inst.nf_name,
+ 'vnfInstanceDescription': 'Human-readable description of the VNF instance.',
+ 'vnfdId': vnf_inst.vnfdid,
+ 'vnfProvider': vnf_inst.vendor,
+ 'vnfProductName': vnf_inst.nf_name,
+ 'vnfSoftwareVersion': vnf_inst.vnfSoftwareVersion,
+ 'vnfdVersion': vnf_inst.version,
+ 'vnfPkgId': vnf_inst.package_id,
+ 'vnfConfigurableProperties': {}
+ }
+ return resp
def check_valid(self):
- logger.debug("CreateVnf--check_valid::> %s" % self.data)
is_exist = NfInstModel.objects.filter(nf_name=self.vnf_instance_mame).exists()
- logger.debug("check_valid::is_exist=%s" % is_exist)
if is_exist:
raise NFLCMException('VNF is already exist.')
- self.vnfdModel = query_vnfpackage_by_id(self.csar_id)
+ vnf_package_info = query_vnfpackage_by_id(self.csar_id)
+ self.vnfd_info = json.loads(ignore_case_get(ignore_case_get(vnf_package_info, "packageInfo"), "vnfdModel"))
def save_db(self):
- metadata = ignore_case_get(self.vnfdModel, "metadata")
+ metadata = ignore_case_get(self.vnfd_info, "metadata")
version = ignore_case_get(metadata, "vnfdVersion")
vendor = ignore_case_get(metadata, "vendor")
netype = ignore_case_get(metadata, "type")
version=version,
vendor=vendor,
netype=netype,
- vnfd_model=self.vnfdModel,
+ vnfd_model=self.vnfd_info,
status='NOT_INSTANTIATED',
nf_desc=self.description,
- vnfdid=self.vnfd_id,
+ vnfdid=self.csar_id,
vnfSoftwareVersion=vnfsoftwareversion,
create_time=now_time())
+ logger.debug('Create VNF instance[%s] success', self.nf_inst_id)