summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorying.yunlong <ying.yunlong@zte.com.cn>2017-03-02 11:11:49 +0800
committerying.yunlong <ying.yunlong@zte.com.cn>2017-03-02 11:11:49 +0800
commit8469a023d5bc96b27257f82e6eeedc727da78497 (patch)
treea1ada270d47bb2867c230e002d89cc7f9a824c54
parent556c89c48942c28fbafb2ae4acdd571fc8967634 (diff)
Modify toscalutil of gvnfm vnflcm
Change-Id: I25c09c35ac3e1057bba3b46b5b90296b69cea6b2 Issue-Id: GVNFM-42 Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
-rw-r--r--lcm/lcm/nf/vnfs/tests/test_vnf_create.py12
-rw-r--r--lcm/lcm/nf/vnfs/vnf_create/create_vnf_identifier.py10
-rw-r--r--lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py11
-rw-r--r--lcm/lcm/pub/utils/toscautil.py3348
4 files changed, 1122 insertions, 2259 deletions
diff --git a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py
index 0961f64e..e43e8fa5 100644
--- a/lcm/lcm/nf/vnfs/tests/test_vnf_create.py
+++ b/lcm/lcm/nf/vnfs/tests/test_vnf_create.py
@@ -49,7 +49,7 @@ class TestNFInstantiate(TestCase):
@mock.patch.object(restcall, 'call_req')
def test_create_vnf_identifier(self, mock_call_req):
- r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
r2_get_rawdata_from_catalog = [0, json.JSONEncoder().encode(vnfd_rawdata), '200']
mock_call_req.side_effect = [r1_get_csarid_by_vnfdid, r2_get_rawdata_from_catalog]
data = {
@@ -85,7 +85,7 @@ class TestNFInstantiate(TestCase):
NfInstModel.objects.create(nfinstid='1111', nf_name='vFW_01', package_id='222',
version='', vendor='', netype='', vnfd_model='', status='NOT_INSTANTIATED',
nf_desc='vFW in Nanjing TIC Edge', vnfdid='111', create_time=now_time())
- r1_get_csarid_by_vnfdid = [1, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [1, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
mock_call_req.side_effect = [r1_get_csarid_by_vnfdid]
self.nf_inst_id = '1111'
self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
@@ -99,7 +99,7 @@ class TestNFInstantiate(TestCase):
NfInstModel.objects.create(nfinstid='1111', nf_name='vFW_01', package_id='222',
version='', vendor='', netype='', vnfd_model='', status='NOT_INSTANTIATED',
nf_desc='vFW in Nanjing TIC Edge', vnfdid='111', create_time=now_time())
- r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
r2_get_rawdata_from_catalog = [1, json.JSONEncoder().encode(vnfd_rawdata), '200']
mock_call_req.side_effect = [r1_get_csarid_by_vnfdid, r2_get_rawdata_from_catalog]
self.nf_inst_id = '1111'
@@ -114,7 +114,7 @@ class TestNFInstantiate(TestCase):
NfInstModel.objects.create(nfinstid='1111', nf_name='vFW_01', package_id='222',
version='', vendor='', netype='', vnfd_model='', status='NOT_INSTANTIATED',
nf_desc='vFW in Nanjing TIC Edge', vnfdid='111', create_time=now_time())
- r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
r2_get_rawdata_from_catalog = [0, json.JSONEncoder().encode(vnfd_rawdata), '200']
r3_apply_grant_result = [1, json.JSONEncoder().encode(
{"vim": {"vimid": 'vimid_1', "accessinfo": {"tenant": 'tenantname_1'}}}), '200']
@@ -132,7 +132,7 @@ class TestNFInstantiate(TestCase):
NfInstModel.objects.create(nfinstid='1111', nf_name='vFW_01', package_id='222',
version='', vendor='', netype='', vnfd_model='', status='NOT_INSTANTIATED',
nf_desc='vFW in Nanjing TIC Edge', vnfdid='111', create_time=now_time())
- r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
r2_get_rawdata_from_catalog = [0, json.JSONEncoder().encode(vnfd_rawdata), '200']
r3_apply_grant_result = [0, json.JSONEncoder().encode(
{"vim": {"vimid": 'vimid_1', "accessinfo": {"tenant": 'tenantname_1'}}}), '200']
@@ -151,7 +151,7 @@ class TestNFInstantiate(TestCase):
NfInstModel.objects.create(nfinstid='1111', nf_name='vFW_01', package_id='222',
version='', vendor='', netype='', vnfd_model='', status='NOT_INSTANTIATED',
nf_desc='vFW in Nanjing TIC Edge', vnfdid='111', create_time=now_time())
- r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode({'package_id': '222', 'csar_id': '2222'}), '200']
+ r1_get_csarid_by_vnfdid = [0, json.JSONEncoder().encode([{'package_id': '222', 'csar_id': '2222','vnfd_id':'111'}]), '200']
r2_get_rawdata_from_catalog = [0, json.JSONEncoder().encode(vnfd_rawdata), '200']
r3_apply_grant_result = [0, json.JSONEncoder().encode(
{"vim": {"vimid": 'vimid_1', "accessinfo": {"tenant": 'tenantname_1'}}}), '200']
diff --git a/lcm/lcm/nf/vnfs/vnf_create/create_vnf_identifier.py b/lcm/lcm/nf/vnfs/vnf_create/create_vnf_identifier.py
index ceda2249..7fcace1e 100644
--- a/lcm/lcm/nf/vnfs/vnf_create/create_vnf_identifier.py
+++ b/lcm/lcm/nf/vnfs/vnf_create/create_vnf_identifier.py
@@ -47,8 +47,14 @@ class CreateVnf:
try:
# get package_info from nslcm by vnfd_id
self.package_info = get_packageinfo_by_vnfdid(self.vnfd_id)
- self.package_id = ignore_case_get(self.package_info, "package_id")
- self.csar_id = ignore_case_get(self.package_info, "csar_id")
+ for val in self.package_info:
+ if self.vnfd_id == ignore_case_get(val, "vnfd_id"):
+ self.package_id = ignore_case_get(val, "package_id")
+ self.csar_id = ignore_case_get(val, "csar_id")
+ break
+ # self.package_info = get_packageinfo_by_vnfdid(self.vnfd_id)
+ # self.package_id = ignore_case_get(self.package_info, "package_id")
+ # self.csar_id = ignore_case_get(self.package_info, "csar_id")
# get rawdata from catalog by csar_id
raw_data = query_rawdata_from_catalog(self.csar_id, self.data)
diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py
index 6ceddbb1..d6e06a53 100644
--- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py
+++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py
@@ -38,6 +38,7 @@ class InstVnf(Thread):
self.data = data
self.nf_inst_id = nf_inst_id
self.job_id = job_id
+ self.vnfd_id = ''
self.nfvo_inst_id = ''
self.vnfm_inst_id = ''
self.csar_id = ''
@@ -73,9 +74,13 @@ class InstVnf(Thread):
JobUtil.add_job_status(self.job_id, 5, 'Get packageinfo by vnfd_id')
# get csar_id from nslcm by vnfd_id
- self.package_info = get_packageinfo_by_vnfdid(vnf_insts[0].vnfdid)
- self.package_id = ignore_case_get(self.package_info, "package_id")
- self.csar_id = ignore_case_get(self.package_info, "csar_id")
+ self.vnfd_id = vnf_insts[0].vnfdid
+ self.package_info = get_packageinfo_by_vnfdid(self.vnfd_id)
+ for val in self.package_info:
+ if self.vnfd_id == ignore_case_get(val, "vnfd_id"):
+ self.package_id = ignore_case_get(val, "package_id")
+ self.csar_id = ignore_case_get(val, "csar_id")
+ break
JobUtil.add_job_status(self.job_id, 10, 'Get rawdata from catalog by csar_id')
# get rawdata from catalog by csar_id
diff --git a/lcm/lcm/pub/utils/toscautil.py b/lcm/lcm/pub/utils/toscautil.py
index 70fba673..af62a49c 100644
--- a/lcm/lcm/pub/utils/toscautil.py
+++ b/lcm/lcm/pub/utils/toscautil.py
@@ -14,6 +14,7 @@
import json
+
def safe_get(key_val, key):
return key_val[key] if key in key_val else ""
@@ -37,7 +38,7 @@ def find_related_node(node_id, src_json_model, requirement_name):
for model_tpl in safe_get(src_json_model, "node_templates"):
for rt in safe_get(model_tpl, 'requirement_templates'):
if safe_get(rt, 'name') == requirement_name and \
- safe_get(rt, 'target_node_template_name') == node_id:
+ safe_get(rt, 'target_node_template_name') == node_id:
related_nodes.append(model_tpl['name'])
return related_nodes
@@ -46,13 +47,17 @@ def convert_props(src_node, dest_node):
if 'properties' in src_node and src_node['properties']:
for prop_name, prop_info in src_node['properties'].items():
if 'value' in prop_info:
- dest_node['properties'][prop_name] = prop_info['value']
+ dest_node['properties'][prop_name] = prop_info['value']
def convert_metadata(src_json):
return src_json['metadata'] if 'metadata' in src_json else {}
+def convert_factor_unit(value):
+ return "%s %s" % (value["factor"], value["unit"])
+
+
def convert_inputs(src_json):
inputs = {}
if 'inputs' in src_json:
@@ -71,19 +76,19 @@ def convert_inputs(src_json):
def convert_vnf_node(src_node, src_json_model):
vnf_node = {'type': src_node['type_name'], 'vnf_id': src_node['template_name'],
- 'description': '', 'properties': {}, 'dependencies': [], 'networks': []}
+ 'description': '', 'properties': {}, 'dependencies': [], 'networks': []}
convert_props(src_node, vnf_node)
for model_tpl in safe_get(src_json_model, "node_templates"):
if model_tpl['name'] != vnf_node['vnf_id']:
continue
vnf_node['dependencies'] = [{
- 'key_name': requirement['name'],
- 'vl_id': requirement['target_node_template_name']} for \
- requirement in safe_get(model_tpl, 'requirement_templates') if \
- safe_get(requirement, 'target_capability_name') == 'virtual_linkable']
+ 'key_name': requirement['name'],
+ 'vl_id': requirement['target_node_template_name']} for \
+ requirement in safe_get(model_tpl, 'requirement_templates') if \
+ safe_get(requirement, 'target_capability_name') == 'virtual_linkable']
vnf_node['networks'] = [requirement['target_node_template_name'] for \
- requirement in safe_get(model_tpl, 'requirement_templates') if \
- safe_get(requirement, 'name') == 'dependency']
+ requirement in safe_get(model_tpl, 'requirement_templates') if \
+ safe_get(requirement, 'name') == 'dependency']
return vnf_node
@@ -111,9 +116,9 @@ def convert_cp_node(src_node, src_node_list, model_type='NSD'):
convert_props(src_node, cp_node)
src_relationships = src_node['relationships']
for relation in src_relationships:
- if safe_get(relation, 'name') == 'virtualLink':
+ if safe_get(relation, 'name') in ('virtualLink', 'virtual_link'):
cp_node['vl_id'] = find_node_name(relation['target_node_id'], src_node_list)
- elif safe_get(relation, 'name') == 'virtualbinding':
+ elif safe_get(relation, 'name') in ('virtualbinding', 'virtual_binding'):
node_key = 'pnf_id' if model_type == 'NSD' else 'vdu_id'
cp_node[node_key] = find_node_name(relation['target_node_id'], src_node_list)
return cp_node
@@ -137,8 +142,8 @@ def convert_router_node(src_node, src_node_list):
def convert_fp_node(src_node, src_node_list, src_json_model):
- fp_node = {'fp_id': src_node['template_name'], 'description': '',
- 'properties': {}, 'forwarder_list': []}
+ fp_node = {'fp_id': src_node['template_name'], 'description': '',
+ 'properties': {}, 'forwarder_list': []}
convert_props(src_node, fp_node)
for relation in safe_get(src_node, 'relationships'):
if safe_get(relation, 'name') != 'forwarder':
@@ -164,8 +169,8 @@ def convert_fp_node(src_node, src_node_list, src_json_model):
def convert_vnffg_group(src_group, src_group_list, src_node_list):
- vnffg = {'vnffg_id': src_group['template_name'], 'description': '',
- 'properties': {}, 'members': []}
+ vnffg = {'vnffg_id': src_group['template_name'], 'description': '',
+ 'properties': {}, 'members': []}
convert_props(src_group, vnffg)
for member_node_id in src_group['member_node_ids']:
vnffg['members'].append(find_node_name(member_node_id, src_node_list))
@@ -173,42 +178,65 @@ def convert_vnffg_group(src_group, src_group_list, src_node_list):
def convert_imagefile_node(src_node, src_node_list):
- image_node = {'image_file_id': src_node['template_name'], 'description': '',
- 'properties': {}}
+ image_node = {'image_file_id': src_node['template_name'], 'description': '',
+ 'properties': {}}
convert_props(src_node, image_node)
return image_node
def convert_localstorage_node(src_node, src_node_list):
- localstorage_node = {'local_storage_id': src_node['template_name'], 'description': '',
- 'properties': {}}
+ localstorage_node = {'local_storage_id': src_node['template_name'], 'description': '',
+ 'properties': {}}
convert_props(src_node, localstorage_node)
return localstorage_node
+def convert_volumestorage_node(src_node, src_node_list):
+ volumestorage_node = {
+ 'volume_storage_id': src_node['id'],
+ 'description': "",
+ 'properties': {}}
+ convert_props(src_node, volumestorage_node)
+ volumestorage_node["properties"]["size"] = convert_factor_unit(
+ volumestorage_node["properties"]["size_of_storage"])
+ return volumestorage_node
+
+
def convert_vdu_node(src_node, src_node_list, src_json_model):
vdu_node = {'vdu_id': src_node['template_name'], 'description': '', 'properties': {},
- 'image_file': '', 'local_storages': [], 'dependencies': [], 'nfv_compute': {},
- 'vls': [], 'artifacts': []}
+ 'image_file': '', 'local_storages': [], 'dependencies': [], 'nfv_compute': {},
+ 'vls': [], 'artifacts': [], 'volume_storages': []}
convert_props(src_node, vdu_node)
- for relation in src_node['relationships']:
+ for relation in src_node.get('relationships', ''):
r_id, r_name = safe_get(relation, 'target_node_id'), safe_get(relation, 'name')
if r_name == 'guest_os':
vdu_node['image_file'] = find_node_name(r_id, src_node_list)
elif r_name == 'local_storage':
vdu_node['local_storages'].append(find_node_name(r_id, src_node_list))
+ elif r_name == 'virtual_storage':
+ vdu_node['volume_storages'].append(r_id)
elif r_name.endswith('.AttachesTo'):
nt = find_node_type(r_id, src_node_list)
if nt.endswith('.BlockStorage.Local') or nt.endswith('.LocalStorage'):
vdu_node['local_storages'].append(find_node_name(r_id, src_node_list))
for capability in src_node['capabilities']:
- if capability['name'] != 'nfv_compute':
+ if not capability['type_name'].endswith('.VirtualCompute'):
continue
+ vdu_node['nfv_compute']['flavor_extra_specs'] = {}
for prop_name, prop_info in capability['properties'].items():
- if 'value' in prop_info:
- vdu_node['nfv_compute'][prop_name] = prop_info['value']
+ if prop_name == "virtual_cpu":
+ vdu_node['nfv_compute']['num_cpus'] = prop_info["value"]["num_virtual_cpu"]
+ vdu_node['nfv_compute']['cpu_frequency'] = convert_factor_unit(
+ prop_info["value"]["virtual_cpu_clock"])
+ elif prop_name == "virtual_memory":
+ vdu_node['nfv_compute']['mem_size'] = convert_factor_unit(
+ prop_info["value"]["virtual_mem_size"])
+ elif prop_name == "requested_additional_capabilities":
+ for key, val in prop_info["value"].items():
+ vdu_node['nfv_compute']['flavor_extra_specs'].update(
+ val["target_performance_parameters"])
vdu_node['cps'] = find_related_node(src_node['id'], src_json_model, 'virtualbinding')
@@ -224,20 +252,25 @@ def convert_vdu_node(src_node, src_node_list, src_json_model):
vdu_node['vls'].append(vl_node_name)
for item in safe_get(src_node, 'artifacts'):
- artifact = {'artifact_name': item['name'], 'type': item['type_name'],
- 'file': item['source_path']}
+ artifact = {'artifact_name': item['name'], 'type': item['type_name'],
+ 'file': item['source_path'], 'properties': {}}
+ convert_props(item, artifact)
+ for key in artifact['properties']:
+ if 'factor' in artifact['properties'][key] and 'unit' in artifact['properties'][key]:
+ artifact['properties'][key] = convert_factor_unit(artifact['properties'][key])
vdu_node['artifacts'].append(artifact)
-
+ if artifact["type"].endswith(".SwImage"):
+ vdu_node['image_file'] = artifact["artifact_name"]
return vdu_node
def convert_exposed_node(src_json, src_nodes, exposed):
for item in safe_get(safe_get(src_json, 'substitution'), 'requirements'):
exposed['external_cps'].append({'key_name': item['mapped_name'],
- "cp_id": find_node_name(item['node_id'], src_nodes)})
+ "cp_id": find_node_name(item['node_id'], src_nodes)})
for item in safe_get(safe_get(src_json, 'substitution'), 'capabilities'):
exposed['forward_cps'].append({'key_name': item['mapped_name'],
- "cp_id": find_node_name(item['node_id'], src_nodes)})
+ "cp_id": find_node_name(item['node_id'], src_nodes)})
def convert_vnffgs(src_json_inst, src_nodes):
@@ -250,6 +283,21 @@ def convert_vnffgs(src_json_inst, src_nodes):
return vnffgs
+def merge_imagefile_node(img_nodes, vdu_nodes):
+ for vdu_node in vdu_nodes:
+ for artifact in vdu_node.get("artifacts", []):
+ if not artifact["type"].endswith(".SwImage"):
+ continue
+ imgids = [img["image_file_id"] for img in img_nodes]
+ if artifact["artifact_name"] in imgids:
+ continue
+ img_nodes.append({
+ "image_file_id": artifact["artifact_name"],
+ "description": "",
+ "properties": artifact["properties"]
+ })
+
+
def convert_common(src_json, target_json):
if isinstance(src_json, (unicode, str)):
src_json_dict = json.loads(src_json)
@@ -270,7 +318,7 @@ def convert_common(src_json, target_json):
def convert_nsd_model(src_json):
target_json = {'vnfs': [], 'pnfs': [], 'fps': []}
src_json_inst, src_json_model = convert_common(src_json, target_json)
-
+
src_nodes = src_json_inst['nodes']
for node in src_nodes:
type_name = node['type_name']
@@ -296,7 +344,7 @@ def convert_nsd_model(src_json):
def convert_vnfd_model(src_json):
- target_json = {'image_files': [], 'local_storages': [], 'vdus': []}
+ target_json = {'image_files': [], 'local_storages': [], 'vdus': [], 'volume_storages': []}
src_json_inst, src_json_model = convert_common(src_json, target_json)
src_nodes = src_json_inst['nodes']
@@ -306,2301 +354,1105 @@ def convert_vnfd_model(src_json):
target_json['image_files'].append(convert_imagefile_node(node, src_nodes))
elif type_name.endswith('.BlockStorage.Local') or type_name.endswith('.LocalStorage'):
target_json['local_storages'].append(convert_localstorage_node(node, src_nodes))
- elif type_name.find('.VDU.') > 0 or type_name.endswith('.VDU'):
+ elif type_name.endswith('VDU.VirtualStorage'):
+ target_json['volume_storages'].append(convert_volumestorage_node(node, src_nodes))
+ elif type_name.endswith('VDU.Compute'):
target_json['vdus'].append(convert_vdu_node(node, src_nodes, src_json_model))
elif type_name.find('.VL.') > 0 or type_name.endswith('.VL') \
- or node['type_name'].find('.RouteExternalVL') > 0:
+ or type_name.endswith('.VnfVirtualLinkDesc') \
+ or type_name.endswith('.RouteExternalVL'):
target_json['vls'].append(convert_vl_node(node, src_nodes))
- elif type_name.find('.CP.') > 0 or type_name.endswith('.CP'):
+ elif type_name.find('.CP.') > 0 or type_name.endswith('.CP') or type_name.endswith(".VduCpd"):
target_json['cps'].append(convert_cp_node(node, src_nodes, 'VNFD'))
elif type_name.endswith('.Router'):
target_json['routers'].append(convert_router_node(node, src_nodes))
-
+
target_json['vnf_exposed'] = {'external_cps': [], 'forward_cps': []}
convert_exposed_node(src_json_inst, src_nodes, target_json['vnf_exposed'])
+ merge_imagefile_node(target_json['image_files'], target_json['vdus'])
return json.dumps(target_json)
+
if __name__ == '__main__':
- src_json = json.dumps(
- {
- "instance":{
- "metadata":{
- "vendor":"ZTE",
- "name":"VCPE_NS",
- "csarVersion":"v1.0",
- "csarType":"NSAR",
- "csarProvider":"ZTE",
- "version":1,
- "invariant_id":"vcpe_ns_sff_1",
- "id":"VCPE_NS",
- "description":"vcpe_ns"
- },
- "nodes":[
- {
- "id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "type_name":"tosca.nodes.nfv.ext.FP",
- "template_name":"path2",
- "properties":{
- "symmetric":{
- "type_name":"boolean",
- "value":False
- },
- "policy":{
- "type_name":"tosca.datatypes.nfv.ext.FPPolicy",
- "value":{
- "type":"ACL",
- "criteria":{
- "dest_port_range":"1-100",
- "ip_protocol":"tcp",
- "source_ip_range":[
- "119.1.1.1-119.1.1.10"
- ],
- "dest_ip_range":[
- {"get_input":"NatIpRange"}
- ],
- "dscp":0,
- "source_port_range":"1-100"
- }
- }
+ src_json = json.dumps({
+ "instance": {
+ "metadata": {
+ "vnfSoftwareVersion": "1.0.0",
+ "vnfProductName": "zte",
+ "localizationLanguage": [
+ "english",
+ "chinese"
+ ],
+ "vnfProvider": "zte",
+ "vnfmInfo": "zte",
+ "defaultLocalizationLanguage": "english",
+ "vnfdId": "zte-hss-1.0",
+ "vnfProductInfoDescription": "hss",
+ "vnfdVersion": "1.0.0",
+ "vnfProductInfoName": "hss"
+ },
+ "nodes": [
+ {
+ "id": "vNAT_Storage_6wdgwzedlb6sq18uzrr41sof7",
+ "type_name": "tosca.nodes.nfv.VDU.VirtualStorage",
+ "template_name": "vNAT_Storage",
+ "properties": {
+ "size_of_storage": {
+ "type_name": "scalar-unit.size",
+ "value": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
}
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- }
- ],
- "relationships":[
- {
- "name":"forwarder",
- "source_requirement_index":0,
- "target_node_id":"m6000_data_out_qeukdtf6g87cnparxi51fa8s6"
- },
- {
- "name":"forwarder",
- "source_requirement_index":1,
- "target_node_id":"m600_tunnel_cp_imwfk5l48ljz0g9knc6d68hv5"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"VNAT_cfdljtspvkp234irka59wgab0",
- "target_capability_name":"feature"
- }
- ]
+ "type_of_storage": {
+ "type_name": "string",
+ "value": "volume"
+ },
+ "rdma_enabled": {
+ "type_name": "boolean",
+ "value": False
+ }
},
- {
- "id":"path1_bv53fblv26hawr8dj4fxe2rsd",
- "type_name":"tosca.nodes.nfv.ext.FP",
- "template_name":"path1",
- "properties":{
- "symmetric":{
- "type_name":"boolean",
- "value":True
- },
- "policy":{
- "type_name":"tosca.datatypes.nfv.ext.FPPolicy",
- "value":{
- "type":"ACL",
- "criteria":{
- "dest_port_range":"1-100",
- "ip_protocol":"tcp",
- "source_ip_range":[
- "1-100"
- ],
- "dest_ip_range":[
- "1-100"
- ],
- "dscp":4,
- "source_port_range":"1-100"
- }
+ "interfaces": [
+ {
+ "name": "Standard",
+ "description": "This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
+ "type_name": "tosca.interfaces.node.lifecycle.Standard",
+ "operations": [
+ {
+ "name": "create",
+ "description": "Standard lifecycle create operation."
+ },
+ {
+ "name": "stop",
+ "description": "Standard lifecycle stop operation."
+ },
+ {
+ "name": "start",
+ "description": "Standard lifecycle start operation."
+ },
+ {
+ "name": "delete",
+ "description": "Standard lifecycle delete operation."
+ },
+ {
+ "name": "configure",
+ "description": "Standard lifecycle configure operation."
}
- }
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- }
- ],
- "relationships":[
- {
- "name":"forwarder",
- "source_requirement_index":0,
- "target_node_id":"m6000_data_in_eldly5txw4frny3cc349uz3nc"
- },
- {
- "name":"forwarder",
- "source_requirement_index":1,
- "target_node_id":"m600_tunnel_cp_imwfk5l48ljz0g9knc6d68hv5"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"VFW_57z0ua89aiyl8ncvw7h7mjf34",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":3,
- "target_node_id":"VNAT_cfdljtspvkp234irka59wgab0",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":4,
- "target_node_id":"m600_tunnel_cp_imwfk5l48ljz0g9knc6d68hv5"
- },
- {
- "name":"forwarder",
- "source_requirement_index":5,
- "target_node_id":"m6000_data_out_qeukdtf6g87cnparxi51fa8s6"
- }
- ]
- },
- {
- "id":"m6000_data_out_qeukdtf6g87cnparxi51fa8s6",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "template_name":"m6000_data_out",
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"11-22-33-22-11-44"
- },
- "interface_name":{
- "type_name":"string",
- "value":"xgei-0/4/1/5"
- },
- "ip_address":{
- "type_name":"string",
- "value":"176.1.1.2"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
+ {
+ "name": "virtual_storage",
+ "type_name": "tosca.capabilities.nfv.VirtualStorage"
+ }
+ ]
+ },
+ {
+ "id": "sriov_link_2610d7gund4e645wo39dvp238",
+ "type_name": "tosca.nodes.nfv.VnfVirtualLinkDesc",
+ "template_name": "sriov_link",
+ "properties": {
+ "vl_flavours": {
+ "type_name": "map",
+ "value": {
+ "vl_id": "aaaa"
}
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"virtualbinding",
- "source_requirement_index":0,
- "target_node_id":"m6000_s_7qtzo5nuocyfmebc6kp9raq18",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualLink",
- "source_requirement_index":1,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
- },
- {
- "id":"VFW_57z0ua89aiyl8ncvw7h7mjf34",
- "type_name":"tosca.nodes.nfv.ext.zte.VNF.VFW",
- "template_name":"VFW",
- "properties":{
- "is_shared":{
- "type_name":"boolean",
- "value":False
- },
- "plugin_info":{
- "type_name":"string",
- "value":"vbrasplugin_1.0"
- },
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_extend_type":{
- "type_name":"string",
- "value":"driver"
- },
- "name":{
- "type_name":"string",
- "value":"VFW"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "cross_dc":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_type":{
- "type_name":"string",
- "value":"VFW"
- },
- "vnfd_version":{
- "type_name":"string",
- "value":"1.0.0"
- },
- "id":{
- "type_name":"string",
- "value":"vcpe_vfw_zte_1_0"
- },
- "nsh_aware":{
- "type_name":"boolean",
- "value":True
- },
- "adjust_vnf_capacity":{
- "type_name":"boolean",
- "value":True
- },
- "vmnumber_overquota_alarm":{
- "type_name":"boolean",
- "value":True
- },
- "csarProvider":{
- "type_name":"string",
- "value":"ZTE"
- },
- "csarVersion":{
- "type_name":"string",
- "value":"v1.0"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- },
- "csarType":{
- "type_name":"string",
- "value":"NFAR"
+ "connectivity_type": {
+ "type_name": "tosca.datatypes.nfv.ConnectivityType",
+ "value": {
+ "layer_protocol": "ipv4",
+ "flow_pattern": "flat"
}
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- },
- {
- "name":"vfw_fw_inout",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"vfw_ctrl_by_manager_cp",
- "source_requirement_index":0,
- "target_node_id":"ext_mnet_net_au2otee5mcy0dnpqykj487zr3",
- "target_capability_name":"feature"
- },
- {
- "name":"vfw_data_cp",
- "source_requirement_index":1,
- "target_node_id":"sfc_data_network_vx3pc1oahn0k0pa5q722yafee",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualLink",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":3,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
- },
- {
- "id":"m600_tunnel_cp_imwfk5l48ljz0g9knc6d68hv5",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "template_name":"m600_tunnel_cp",
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"00-11-00-22-33-00"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/13"
- },
- "ip_address":{
- "type_name":"string",
- "value":"191.167.100.5"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- }
+ "description": {
+ "type_name": "string",
+ "value": "sriov_link"
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"virtualLink",
- "source_requirement_index":0,
- "target_node_id":"ext_datanet_net_qtqzlx5dsthzs883hxjn6hyhd",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualbinding",
- "source_requirement_index":1,
- "target_node_id":"m6000_s_7qtzo5nuocyfmebc6kp9raq18",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
+ "test_access": {
+ "type_name": "list",
+ "value": [
+ "test"
+ ]
+ }
},
- {
- "id":"ext_mnet_net_au2otee5mcy0dnpqykj487zr3",
- "type_name":"tosca.nodes.nfv.ext.VL.Vmware",
- "template_name":"ext_mnet_net",
- "properties":{
- "name":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ "interfaces": [
+ {
+ "name": "Standard",
+ "description": "This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
+ "type_name": "tosca.interfaces.node.lifecycle.Standard",
+ "operations": [
+ {
+ "name": "create",
+ "description": "Standard lifecycle create operation."
+ },
+ {
+ "name": "stop",
+ "description": "Standard lifecycle stop operation."
+ },
+ {
+ "name": "start",
+ "description": "Standard lifecycle start operation."
+ },
+ {
+ "name": "delete",
+ "description": "Standard lifecycle delete operation."
+ },
+ {
+ "name": "configure",
+ "description": "Standard lifecycle configure operation."
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
- }
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
+ {
+ "name": "virtual_linkable",
+ "type_name": "tosca.capabilities.nfv.VirtualLinkable"
+ }
+ ]
+ },
+ {
+ "id": "vdu_vNat_7ozwkcr86sa87fmd2nue2ww07",
+ "type_name": "tosca.nodes.nfv.VDU.Compute",
+ "template_name": "vdu_vNat",
+ "properties": {
+ "configurable_properties": {
+ "type_name": "map",
+ "value": {
+ "test": {
+ "additional_vnfc_configurable_properties": {
+ "aaa": "1",
+ "bbb": "2",
+ "ccc": "3"
}
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
- }
- ]
- },
- {
- "id":"m6000_data_in_eldly5txw4frny3cc349uz3nc",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "template_name":"m6000_data_in",
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"11-22-33-22-11-41"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/7"
- },
- "ip_address":{
- "type_name":"string",
- "value":"1.1.1.1"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- },
- "bond":{
- "type_name":"string",
- "value":"none"
+ }
}
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"virtualbinding",
- "source_requirement_index":0,
- "target_node_id":"m6000_s_7qtzo5nuocyfmebc6kp9raq18",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualLink",
- "source_requirement_index":1,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
+ "boot_order": {
+ "type_name": "list",
+ "value": [
+ "vNAT_Storage"
+ ]
+ },
+ "name": {
+ "type_name": "string",
+ "value": "vNat"
+ },
+ "nfvi_constraints": {
+ "type_name": "list",
+ "value": [
+ "test"
+ ]
+ },
+ "description": {
+ "type_name": "string",
+ "value": "the virtual machine of vNat"
+ }
},
- {
- "id":"ext_datanet_net_qtqzlx5dsthzs883hxjn6hyhd",
- "type_name":"tosca.nodes.nfv.ext.VL.Vmware",
- "template_name":"ext_datanet_net",
- "properties":{
- "name":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ "interfaces": [
+ {
+ "name": "Standard",
+ "description": "This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
+ "type_name": "tosca.interfaces.node.lifecycle.Standard",
+ "operations": [
+ {
+ "name": "create",
+ "description": "Standard lifecycle create operation."
+ },
+ {
+ "name": "stop",
+ "description": "Standard lifecycle stop operation."
+ },
+ {
+ "name": "start",
+ "description": "Standard lifecycle start operation."
+ },
+ {
+ "name": "delete",
+ "description": "Standard lifecycle delete operation."
+ },
+ {
+ "name": "configure",
+ "description": "Standard lifecycle configure operation."
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
- }
- },
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
+ ]
+ }
+ ],
+ "artifacts": [
+ {
+ "name": "vNatVNFImage",
+ "type_name": "tosca.artifacts.nfv.SwImage",
+ "source_path": "/swimages/vRouterVNF_ControlPlane.qcow2",
+ "properties": {
+ "operating_system": {
+ "type_name": "string",
+ "value": "linux"
+ },
+ "sw_image": {
+ "type_name": "string",
+ "value": "/swimages/vRouterVNF_ControlPlane.qcow2"
+ },
+ "name": {
+ "type_name": "string",
+ "value": "vNatVNFImage"
+ },
+ "checksum": {
+ "type_name": "string",
+ "value": "5000"
+ },
+ "min_ram": {
+ "type_name": "scalar-unit.size",
+ "value": {
+ "value": 1000000000,
+ "factor": 1,
+ "unit": "GB",
+ "unit_size": 1000000000
}
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
- }
- ]
- },
- {
- "id":"m600_mnt_cp_l3488y2a8ilyfdn0l89ni4os7",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "template_name":"m600_mnt_cp",
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"00-11-00-22-33-11"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/1"
- },
- "ip_address":{
- "type_name":"string",
- "value":"10.46.244.51"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- },
- "bond":{
- "type_name":"string",
- "value":"none"
- }
- },
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
+ },
+ "disk_format": {
+ "type_name": "string",
+ "value": "qcow2"
+ },
+ "version": {
+ "type_name": "string",
+ "value": "1.0"
+ },
+ "container_format": {
+ "type_name": "string",
+ "value": "bare"
+ },
+ "min_disk": {
+ "type_name": "scalar-unit.size",
+ "value": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
}
- ]
+ },
+ "supported_virtualisation_environments": {
+ "type_name": "list",
+ "value": [
+ "test_0"
+ ]
+ },
+ "size": {
+ "type_name": "scalar-unit.size",
+ "value": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
+ }
+ }
}
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
+ },
+ {
+ "name": "os",
+ "type_name": "tosca.capabilities.OperatingSystem",
+ "properties": {
+ "distribution": {
+ "type_name": "string",
+ "description": "The Operating System (OS) distribution. Examples of valid values for a \"type\" of \"Linux\" would include: debian, fedora, rhel and ubuntu."
+ },
+ "version": {
+ "type_name": "version",
+ "description": "The Operating System version."
+ },
+ "type": {
+ "type_name": "string",
+ "description": "The Operating System (OS) type. Examples of valid values include: linux, aix, mac, windows, etc."
+ },
+ "architecture": {
+ "type_name": "string",
+ "description": "The Operating System (OS) architecture. Examples of valid values include: x86_32, x86_64, etc."
+ }
}
- ],
- "relationships":[
- {
- "name":"virtualLink",
- "source_requirement_index":0,
- "target_node_id":"ext_mnet_net_au2otee5mcy0dnpqykj487zr3",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualbinding",
- "source_requirement_index":1,
- "target_node_id":"m6000_s_7qtzo5nuocyfmebc6kp9raq18",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
+ },
+ {
+ "name": "host",
+ "type_name": "tosca.capabilities.Container",
+ "properties": {
+ "cpu_frequency": {
+ "type_name": "scalar-unit.frequency",
+ "description": "Specifies the operating frequency of CPU's core. This property expresses the expected frequency of one (1) CPU as provided by the property \"num_cpus\"."
+ },
+ "mem_size": {
+ "type_name": "scalar-unit.size",
+ "description": "Size of memory available to applications running on the Compute node (default unit is MB)."
+ },
+ "num_cpus": {
+ "type_name": "integer",
+ "description": "Number of (actual or virtual) CPUs associated with the Compute node."
+ },
+ "disk_size": {
+ "type_name": "scalar-unit.size",
+ "description": "Size of the local disk available to applications running on the Compute node (default unit is MB)."
+ }
}
- ]
- },
- {
- "id":"sfc_data_network_vx3pc1oahn0k0pa5q722yafee",
- "type_name":"tosca.nodes.nfv.ext.zte.VL",
- "template_name":"sfc_data_network",
- "properties":{
- "name":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "is_predefined":{
- "type_name":"boolean",
- "value":False
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ },
+ {
+ "name": "binding",
+ "type_name": "tosca.capabilities.network.Bindable"
+ },
+ {
+ "name": "scalable",
+ "type_name": "tosca.capabilities.Scalable",
+ "properties": {
+ "min_instances": {
+ "type_name": "integer",
+ "value": 1,
+ "description": "This property is used to indicate the minimum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator."
+ },
+ "default_instances": {
+ "type_name": "integer",
+ "description": "An optional property that indicates the requested default number of instances that should be the starting number of instances a TOSCA orchestrator should attempt to allocate. Note: The value for this property MUST be in the range between the values set for \"min_instances\" and \"max_instances\" properties."
+ },
+ "max_instances": {
+ "type_name": "integer",
+ "value": 1,
+ "description": "This property is used to indicate the maximum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator."
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
}
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
+ {
+ "name": "virtual_compute",
+ "type_name": "tosca.capabilities.nfv.VirtualCompute",
+ "properties": {
+ "requested_additional_capabilities": {
+ "type_name": "map",
+ "value": {
+ "ovs_dpdk": {
+ "requested_additional_capability_name": "ovs_dpdk",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "sw:ovs_dpdk": "true"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ },
+ "hyper_threading": {
+ "requested_additional_capability_name": "hyper_threading",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "hw:cpu_cores": "2",
+ "hw:cpu_threads": "2",
+ "hw:cpu_threads_policy": "isolate",
+ "hw:cpu_sockets": "2"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ },
+ "numa": {
+ "requested_additional_capability_name": "numa",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "hw:numa_cpus.0": "0,1",
+ "hw:numa_cpus.1": "2,3,4,5",
+ "hw:numa_nodes": "2",
+ "hw:numa_mem.1": "3072",
+ "hw:numa_mem.0": "1024"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ }
}
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
+ },
+ "virtual_cpu": {
+ "type_name": "tosca.datatypes.nfv.VirtualCpu",
+ "value": {
+ "num_virtual_cpu": 2,
+ "virtual_cpu_clock": {
+ "value": 2400000000,
+ "factor": 2.4,
+ "unit": "GHz",
+ "unit_size": 1000000000
+ },
+ "cpu_architecture": "X86",
+ "virtual_cpu_oversubscription_policy": "test",
+ "virtual_cpu_pinning": {
+ "cpu_pinning_map": {
+ "cpu_pinning_0": "1"
+ },
+ "cpu_pinning_policy": "static"
+ }
+ }
+ },
+ "virtual_memory": {
+ "type_name": "tosca.datatypes.nfv.VirtualMemory",
+ "value": {
+ "virtual_mem_oversubscription_policy": "mem_policy_test",
+ "numa_enabled": True,
+ "virtual_mem_size": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
+ }
+ }
+ }
}
- ]
- },
- {
- "id":"m6000_s_7qtzo5nuocyfmebc6kp9raq18",
- "type_name":"tosca.nodes.nfv.ext.PNF",
- "template_name":"m6000_s",
- "properties":{
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "pnf_type":{
- "type_name":"string",
- "value":"m6000s"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "management_address":{
- "type_name":"string",
- "value":"111111"
- },
- "id":{
- "type_name":"string",
- "value":"m6000_s"
+ },
+ {
+ "name": "virtual_binding",
+ "type_name": "tosca.capabilities.nfv.VirtualBindable"
+ }
+ ],
+ "relationships": [
+ {
+ "name": "virtual_storage",
+ "source_requirement_index": 0,
+ "target_node_id": "vNAT_Storage_6wdgwzedlb6sq18uzrr41sof7",
+ "properties": {
+ "location": {
+ "type_name": "string",
+ "value": "/mnt/volume_0",
+ "description": "The relative location (e.g., path on the file system), which provides the root location to address an attached node. e.g., a mount point / path such as '/usr/data'. Note: The user must provide it and it cannot be \"root\"."
+ }
},
- "nsh_aware":{
- "type_name":"boolean",
- "value":False
- }
+ "source_interfaces": [
+ {
+ "name": "Configure",
+ "description": "The lifecycle interfaces define the essential, normative operations that each TOSCA Relationship Types may support.",
+ "type_name": "tosca.interfaces.relationship.Configure",
+ "operations": [
+ {
+ "name": "add_source",
+ "description": "Operation to notify the target node of a source node which is now available via a relationship."
+ },
+ {
+ "name": "pre_configure_target",
+ "description": "Operation to pre-configure the target endpoint."
+ },
+ {
+ "name": "post_configure_source",
+ "description": "Operation to post-configure the source endpoint."
+ },
+ {
+ "name": "target_changed",
+ "description": "Operation to notify source some property or attribute of the target changed"
+ },
+ {
+ "name": "pre_configure_source",
+ "description": "Operation to pre-configure the source endpoint."
+ },
+ {
+ "name": "post_configure_target",
+ "description": "Operation to post-configure the target endpoint."
+ },
+ {
+ "name": "remove_target",
+ "description": "Operation to remove a target node."
+ },
+ {
+ "name": "add_target",
+ "description": "Operation to notify the source node of a target node being added via a relationship."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SRIOV_Port_leu1j6rfdt4c8vta6aec1xe39",
+ "type_name": "tosca.nodes.nfv.VduCpd",
+ "template_name": "SRIOV_Port",
+ "properties": {
+ "address_data": {
+ "type_name": "list",
+ "value": [
+ {
+ "address_type": "ip_address",
+ "l3_address_data": {
+ "ip_address_type": "ipv4",
+ "floating_ip_activated": False,
+ "number_of_ip_address": 1,
+ "ip_address_assignment": True
+ }
+ }
+ ]
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
+ "description": {
+ "type_name": "string",
+ "value": "sriov port"
+ },
+ "layer_protocol": {
+ "type_name": "string",
+ "value": "ipv4"
+ },
+ "virtual_network_interface_requirements": {
+ "type_name": "list",
+ "value": [
+ {
+ "requirement": {
+ "SRIOV": "true"
},
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
+ "support_mandatory": False,
+ "name": "sriov",
+ "description": "sriov"
+ },
+ {
+ "requirement": {
+ "SRIOV": "false"
},
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtualBinding",
- "type_name":"tosca.capabilities.nfv.VirtualBindable"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"forwarder",
- "source_requirement_index":0,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
+ "support_mandatory": False,
+ "name": "normal",
+ "description": "normal"
+ }
+ ]
+ },
+ "role": {
+ "type_name": "string",
+ "value": "root"
+ },
+ "bitrate_requirement": {
+ "type_name": "integer",
+ "value": 10
+ }
},
- {
- "id":"VNAT_cfdljtspvkp234irka59wgab0",
- "type_name":"tosca.nodes.nfv.ext.zte.VNF.VNAT",
- "template_name":"VNAT",
- "properties":{
- "is_shared":{
- "type_name":"boolean",
- "value":False
- },
- "plugin_info":{
- "type_name":"string",
- "value":"vbrasplugin_1.0"
- },
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "name":{
- "type_name":"string",
- "value":"VNAT"
- },
- "vnf_extend_type":{
- "type_name":"string",
- "value":"driver"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "cross_dc":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_type":{
- "type_name":"string",
- "value":"VNAT"
- },
- "vnfd_version":{
- "type_name":"string",
- "value":"1.0.0"
- },
- "id":{
- "type_name":"string",
- "value":"vcpe_vnat_zte_1"
- },
- "nsh_aware":{
- "type_name":"boolean",
- "value":True
- },
- "adjust_vnf_capacity":{
- "type_name":"boolean",
- "value":True
- },
- "vmnumber_overquota_alarm":{
- "type_name":"boolean",
- "value":True
- },
- "csarProvider":{
- "type_name":"string",
- "value":"ZTE"
- },
- "NatIpRange":{
- "type_name":"string",
- "value":"192.167.0.10-192.168.0.20"
- },
- "csarVersion":{
- "type_name":"string",
- "value":"v1.0"
- },
- "csarType":{
- "type_name":"string",
- "value":"NFAR"
- }
+ "interfaces": [
+ {
+ "name": "Standard",
+ "description": "This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
+ "type_name": "tosca.interfaces.node.lifecycle.Standard",
+ "operations": [
+ {
+ "name": "create",
+ "description": "Standard lifecycle create operation."
+ },
+ {
+ "name": "stop",
+ "description": "Standard lifecycle stop operation."
+ },
+ {
+ "name": "start",
+ "description": "Standard lifecycle start operation."
+ },
+ {
+ "name": "delete",
+ "description": "Standard lifecycle delete operation."
+ },
+ {
+ "name": "configure",
+ "description": "Standard lifecycle configure operation."
+ }
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
+ }
+ ],
+ "relationships": [
+ {
+ "name": "virtual_binding",
+ "source_requirement_index": 0,
+ "target_node_id": "vdu_vNat_7ozwkcr86sa87fmd2nue2ww07",
+ "source_interfaces": [
+ {
+ "name": "Configure",
+ "description": "The lifecycle interfaces define the essential, normative operations that each TOSCA Relationship Types may support.",
+ "type_name": "tosca.interfaces.relationship.Configure",
+ "operations": [
+ {
+ "name": "add_source",
+ "description": "Operation to notify the target node of a source node which is now available via a relationship."
+ },
+ {
+ "name": "pre_configure_target",
+ "description": "Operation to pre-configure the target endpoint."
+ },
+ {
+ "name": "post_configure_source",
+ "description": "Operation to post-configure the source endpoint."
+ },
+ {
+ "name": "target_changed",
+ "description": "Operation to notify source some property or attribute of the target changed"
+ },
+ {
+ "name": "pre_configure_source",
+ "description": "Operation to pre-configure the source endpoint."
+ },
+ {
+ "name": "post_configure_target",
+ "description": "Operation to post-configure the target endpoint."
+ },
+ {
+ "name": "remove_target",
+ "description": "Operation to remove a target node."
+ },
+ {
+ "name": "add_target",
+ "description": "Operation to notify the source node of a target node being added via a relationship."
+ }
+ ]
+ }
+ ]
},
- "interfaces":[
- {
- "name":"Standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "capabilities":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- },
- {
- "name":"vnat_fw_inout",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "relationships":[
- {
- "name":"vnat_ctrl_by_manager_cp",
- "source_requirement_index":0,
- "target_node_id":"ext_mnet_net_au2otee5mcy0dnpqykj487zr3",
- "target_capability_name":"feature"
- },
- {
- "name":"vnat_data_cp",
- "source_requirement_index":1,
- "target_node_id":"sfc_data_network_vx3pc1oahn0k0pa5q722yafee",
- "target_capability_name":"feature"
- },
- {
- "name":"virtualLink",
- "source_requirement_index":2,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- },
- {
- "name":"forwarder",
- "source_requirement_index":3,
- "target_node_id":"path2_kgmfqr5ldqs9lj3oscrgxqefc",
- "target_capability_name":"feature"
- }
- ]
- }
- ],
- "groups":[
+ {
+ "name": "virtual_link",
+ "source_requirement_index": 1,
+ "target_node_id": "sriov_link_2610d7gund4e645wo39dvp238",
+ "target_capability_name": "feature",
+ "source_interfaces": [
+ {
+ "name": "Configure",
+ "description": "The lifecycle interfaces define the essential, normative operations that each TOSCA Relationship Types may support.",
+ "type_name": "tosca.interfaces.relationship.Configure",
+ "operations": [
+ {
+ "name": "add_source",
+ "description": "Operation to notify the target node of a source node which is now available via a relationship."
+ },
+ {
+ "name": "pre_configure_target",
+ "description": "Operation to pre-configure the target endpoint."
+ },
+ {
+ "name": "post_configure_source",
+ "description": "Operation to post-configure the source endpoint."
+ },
+ {
+ "name": "target_changed",
+ "description": "Operation to notify source some property or attribute of the target changed"
+ },
+ {
+ "name": "pre_configure_source",
+ "description": "Operation to pre-configure the source endpoint."
+ },
+ {
+ "name": "post_configure_target",
+ "description": "Operation to post-configure the target endpoint."
+ },
+ {
+ "name": "remove_target",
+ "description": "Operation to remove a target node."
+ },
+ {
+ "name": "add_target",
+ "description": "Operation to notify the source node of a target node being added via a relationship."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "substitution": {
+ "node_type_name": "tosca.nodes.nfv.VNF.vOpenNAT",
+ "requirements": [
{
- "id":"vnffg1_wk1aqhk6exoh5fmds2unu0uyc",
- "type_name":"tosca.groups.nfv.VNFFG",
- "template_name":"vnffg1",
- "properties":{
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "connection_point":{
- "type_name":"list",
- "value":[
- "m6000_data_in",
- "m600_tunnel_cp",
- "m6000_data_out"
- ]
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "constituent_vnfs":{
- "type_name":"list",
- "value":[
- "VFW",
- "VNAT"
- ]
- },
- "number_of_endpoints":{
- "type_name":"integer",
- "value":3
- },
- "dependent_virtual_link":{
- "type_name":"list",
- "value":[
- "sfc_data_network",
- "ext_datanet_net",
- "ext_mnet_net"
- ]
- }
- },
- "interfaces":[
- {
- "name":"standard",
- "description":"This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.",
- "type_name":"tosca.interfaces.node.lifecycle.Standard",
- "operations":[
- {
- "name":"create",
- "description":"Standard lifecycle create operation."
- },
- {
- "name":"stop",
- "description":"Standard lifecycle stop operation."
- },
- {
- "name":"start",
- "description":"Standard lifecycle start operation."
- },
- {
- "name":"delete",
- "description":"Standard lifecycle delete operation."
- },
- {
- "name":"configure",
- "description":"Standard lifecycle configure operation."
- }
- ]
- }
- ],
- "member_node_ids":[
- "path1_bv53fblv26hawr8dj4fxe2rsd",
- "path2_kgmfqr5ldqs9lj3oscrgxqefc"
- ]
+ "mapped_name": "sriov_plane",
+ "node_id": "SRIOV_Port_leu1j6rfdt4c8vta6aec1xe39",
+ "name": "virtual_link"
}
+ ]
+ }
+ },
+ "model": {
+ "metadata": {
+ "vnfSoftwareVersion": "1.0.0",
+ "vnfProductName": "openNAT",
+ "localizationLanguage": [
+ "english",
+ "chinese"
],
- "substitution":{
- "node_type_name":"tosca.nodes.nfv.NS.VCPE_NS"
- },
- "inputs":{
- "externalDataNetworkName":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "sfc_data_network":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "NatIpRange":{
- "type_name":"string",
- "value":"192.167.0.10-192.168.0.20"
- },
- "externalManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- }
- }
+ "vnfProvider": "intel",
+ "vnfmInfo": "GVNFM",
+ "defaultLocalizationLanguage": "english",
+ "vnfdId": "openNAT-1.0",
+ "vnfProductInfoDescription": "openNAT",
+ "vnfdVersion": "1.0.0",
+ "vnfProductInfoName": "openNAT"
},
- "model":{
- "metadata":{
- "vendor":"ZTE",
- "name":"VCPE_NS",
- "csarVersion":"v1.0",
- "csarType":"NSAR",
- "csarProvider":"ZTE",
- "version":1,
- "invariant_id":"vcpe_ns_sff_1",
- "id":"VCPE_NS",
- "description":"vcpe_ns"
- },
- "node_templates":[
- {
- "name":"path2",
- "type_name":"tosca.nodes.nfv.ext.FP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "symmetric":{
- "type_name":"boolean",
- "value":False
- },
- "policy":{
- "type_name":"tosca.datatypes.nfv.ext.FPPolicy",
- "value":{
- "type":"ACL",
- "criteria":{
- "dest_port_range":"1-100",
- "ip_protocol":"tcp",
- "source_ip_range":[
- "119.1.1.1-119.1.1.10"
- ],
- "dest_ip_range":[
- {"get_input":"NatIpRange"}
- ],
- "dscp":0,
- "source_port_range":"1-100"
- }
- }
+ "node_templates": [
+ {
+ "name": "vNAT_Storage",
+ "type_name": "tosca.nodes.nfv.VDU.VirtualStorage",
+ "default_instances": 1,
+ "min_instances": 0,
+ "properties": {
+ "size_of_storage": {
+ "type_name": "scalar-unit.size",
+ "value": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ed0288a10>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- }
- ],
- "requirement_templates":[
- {
- "name":"forwarder",
- "target_node_template_name":"m6000_data_out"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"m600_tunnel_cp"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"VNAT",
- "target_capability_name":"vnat_fw_inout"
- }
- ]
+ "type_of_storage": {
+ "type_name": "string",
+ "value": "volume"
+ },
+ "rdma_enabled": {
+ "type_name": "boolean",
+ "value": False
+ }
},
- {
- "name":"path1",
- "type_name":"tosca.nodes.nfv.ext.FP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "symmetric":{
- "type_name":"boolean",
- "value":True
- },
- "policy":{
- "type_name":"tosca.datatypes.nfv.ext.FPPolicy",
- "value":{
- "type":"ACL",
- "criteria":{
- "dest_port_range":"1-100",
- "ip_protocol":"tcp",
- "source_ip_range":[
- "1-100"
- ],
- "dest_ip_range":[
- "1-100"
- ],
- "dscp":4,
- "source_port_range":"1-100"
+ "interface_templates": [
+ ""
+ ],
+ "capability_templates": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
+ },
+ {
+ "name": "virtual_storage",
+ "type_name": "tosca.capabilities.nfv.VirtualStorage"
+ }
+ ]
+ },
+ {
+ "name": "vdu_vNat",
+ "type_name": "tosca.nodes.nfv.VDU.Compute",
+ "default_instances": 1,
+ "min_instances": 0,
+ "properties": {
+ "configurable_properties": {
+ "type_name": "map",
+ "value": {
+ "test": {
+ "additional_vnfc_configurable_properties": {
+ "aaa": "1",
+ "bbb": "2",
+ "ccc": "3"
}
}
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec81df090>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- }
- ],
- "requirement_templates":[
- {
- "name":"forwarder",
- "target_node_template_name":"m6000_data_in"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"m600_tunnel_cp"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"VFW",
- "target_capability_name":"vfw_fw_inout"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"VNAT",
- "target_capability_name":"vnat_fw_inout"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"m600_tunnel_cp"
- },
- {
- "name":"forwarder",
- "target_node_template_name":"m6000_data_out"
- }
- ]
- },
- {
- "name":"m6000_data_out",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"11-22-33-22-11-44"
- },
- "interface_name":{
- "type_name":"string",
- "value":"xgei-0/4/1/5"
- },
- "ip_address":{
- "type_name":"string",
- "value":"176.1.1.2"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- }
+ "boot_order": {
+ "type_name": "list",
+ "value": [
+ "vNAT_Storage"
+ ]
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec82c6610>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"virtualbinding",
- "target_node_template_name":"m6000_s",
- "target_capability_name":"virtualBinding"
- },
- {
- "name":"virtualLink",
- "target_node_type_name":"tosca.nodes.Root"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
- },
- {
- "name":"VFW",
- "type_name":"tosca.nodes.nfv.ext.zte.VNF.VFW",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "is_shared":{
- "type_name":"boolean",
- "value":False
- },
- "plugin_info":{
- "type_name":"string",
- "value":"vbrasplugin_1.0"
- },
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_extend_type":{
- "type_name":"string",
- "value":"driver"
- },
- "name":{
- "type_name":"string",
- "value":"VFW"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "cross_dc":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_type":{
- "type_name":"string",
- "value":"VFW"
- },
- "vnfd_version":{
- "type_name":"string",
- "value":"1.0.0"
- },
- "id":{
- "type_name":"string",
- "value":"vcpe_vfw_zte_1_0"
- },
- "nsh_aware":{
- "type_name":"boolean",
- "value":True
- },
- "adjust_vnf_capacity":{
- "type_name":"boolean",
- "value":True
- },
- "vmnumber_overquota_alarm":{
- "type_name":"boolean",
- "value":True
- },
- "csarProvider":{
- "type_name":"string",
- "value":"ZTE"
- },
- "csarVersion":{
- "type_name":"string",
- "value":"v1.0"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- },
- "csarType":{
- "type_name":"string",
- "value":"NFAR"
- }
+ "name": {
+ "type_name": "string",
+ "value": "vNat"
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec8281950>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- },
- {
- "name":"vfw_fw_inout",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"vfw_ctrl_by_manager_cp",
- "target_node_template_name":"ext_mnet_net",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"vfw_data_cp",
- "target_node_template_name":"sfc_data_network",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"virtualLink",
- "target_node_type_name":"tosca.nodes.Root"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
- },
- {
- "name":"m600_tunnel_cp",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"00-11-00-22-33-00"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/13"
- },
- "ip_address":{
- "type_name":"string",
- "value":"191.167.100.5"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- }
+ "nfvi_constraints": {
+ "type_name": "list",
+ "value": [
+ "test"
+ ]
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x1ae39d0>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"virtualLink",
- "target_node_template_name":"ext_datanet_net",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"virtualbinding",
- "target_node_template_name":"m6000_s",
- "target_capability_name":"virtualBinding"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
+ "description": {
+ "type_name": "string",
+ "value": "the virtual machine of vNat"
+ }
},
- {
- "name":"ext_mnet_net",
- "type_name":"tosca.nodes.nfv.ext.VL.Vmware",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "name":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ "interface_templates": [
+ ""
+ ],
+ "artifact_templates": [
+ ""
+ ],
+ "capability_templates": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
+ },
+ {
+ "name": "os",
+ "type_name": "tosca.capabilities.OperatingSystem",
+ "properties": {
+ "distribution": {
+ "type_name": "string",
+ "description": "The Operating System (OS) distribution. Examples of valid values for a \"type\" of \"Linux\" would include: debian, fedora, rhel and ubuntu."
+ },
+ "version": {
+ "type_name": "version",
+ "description": "The Operating System version."
+ },
+ "type": {
+ "type_name": "string",
+ "description": "The Operating System (OS) type. Examples of valid values include: linux, aix, mac, windows, etc."
+ },
+ "architecture": {
+ "type_name": "string",
+ "description": "The Operating System (OS) architecture. Examples of valid values include: x86_32, x86_64, etc."
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ed00f89d0>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
- }
- ]
- },
- {
- "name":"m6000_data_in",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"11-22-33-22-11-41"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/7"
- },
- "ip_address":{
- "type_name":"string",
- "value":"1.1.1.1"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- },
- "bond":{
- "type_name":"string",
- "value":"none"
+ {
+ "name": "host",
+ "type_name": "tosca.capabilities.Container",
+ "valid_source_node_type_names": [
+ "tosca.nodes.SoftwareComponent"
+ ],
+ "properties": {
+ "cpu_frequency": {
+ "type_name": "scalar-unit.frequency",
+ "description": "Specifies the operating frequency of CPU's core. This property expresses the expected frequency of one (1) CPU as provided by the property \"num_cpus\"."
+ },
+ "mem_size": {
+ "type_name": "scalar-unit.size",
+ "description": "Size of memory available to applications running on the Compute node (default unit is MB)."
+ },
+ "num_cpus": {
+ "type_name": "integer",
+ "description": "Number of (actual or virtual) CPUs associated with the Compute node."
+ },
+ "disk_size": {
+ "type_name": "scalar-unit.size",
+ "description": "Size of the local disk available to applications running on the Compute node (default unit is MB)."
+ }
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x1745710>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"virtualbinding",
- "target_node_template_name":"m6000_s",
- "target_capability_name":"virtualBinding"
- },
- {
- "name":"virtualLink",
- "target_node_type_name":"tosca.nodes.Root"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
- },
- {
- "name":"ext_datanet_net",
- "type_name":"tosca.nodes.nfv.ext.VL.Vmware",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "name":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ {
+ "name": "binding",
+ "type_name": "tosca.capabilities.network.Bindable"
+ },
+ {
+ "name": "scalable",
+ "type_name": "tosca.capabilities.Scalable",
+ "properties": {
+ "min_instances": {
+ "type_name": "integer",
+ "value": 1,
+ "description": "This property is used to indicate the minimum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator."
+ },
+ "default_instances": {
+ "type_name": "integer",
+ "description": "An optional property that indicates the requested default number of instances that should be the starting number of instances a TOSCA orchestrator should attempt to allocate. Note: The value for this property MUST be in the range between the values set for \"min_instances\" and \"max_instances\" properties."
+ },
+ "max_instances": {
+ "type_name": "integer",
+ "value": 1,
+ "description": "This property is used to indicate the maximum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator."
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8eac063990>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
- }
- ]
- },
- {
- "name":"m600_mnt_cp",
- "type_name":"tosca.nodes.nfv.ext.zte.CP",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "direction":{
- "type_name":"string",
- "value":"bidirectional"
- },
- "vnic_type":{
- "type_name":"string",
- "value":"normal"
- },
- "bandwidth":{
- "type_name":"integer",
- "value":0
- },
- "mac_address":{
- "type_name":"string",
- "value":"00-11-00-22-33-11"
- },
- "interface_name":{
- "type_name":"string",
- "value":"gei-0/4/0/1"
- },
- "ip_address":{
- "type_name":"string",
- "value":"10.46.244.51"
- },
- "order":{
- "type_name":"integer",
- "value":0
- },
- "sfc_encapsulation":{
- "type_name":"string",
- "value":"mac"
- },
- "bond":{
- "type_name":"string",
- "value":"none"
+ {
+ "name": "virtual_compute",
+ "type_name": "tosca.capabilities.nfv.VirtualCompute",
+ "properties": {
+ "requested_additional_capabilities": {
+ "type_name": "map",
+ "value": {
+ "ovs_dpdk": {
+ "requested_additional_capability_name": "ovs_dpdk",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "sw:ovs_dpdk": "true"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ },
+ "hyper_threading": {
+ "requested_additional_capability_name": "hyper_threading",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "hw:cpu_cores": "2",
+ "hw:cpu_threads": "2",
+ "hw:cpu_threads_policy": "isolate",
+ "hw:cpu_sockets": "2"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ },
+ "numa": {
+ "requested_additional_capability_name": "numa",
+ "min_requested_additional_capability_version": "1.0",
+ "support_mandatory": True,
+ "target_performance_parameters": {
+ "hw:numa_cpus.0": "0,1",
+ "hw:numa_cpus.1": "2,3,4,5",
+ "hw:numa_nodes": "2",
+ "hw:numa_mem.1": "3072",
+ "hw:numa_mem.0": "1024"
+ },
+ "preferred_requested_additional_capability_version": "1.0"
+ }
+ }
+ },
+ "virtual_cpu": {
+ "type_name": "tosca.datatypes.nfv.VirtualCpu",
+ "value": {
+ "num_virtual_cpu": 2,
+ "virtual_cpu_clock": {
+ "value": 2400000000,
+ "factor": 2.4,
+ "unit": "GHz",
+ "unit_size": 1000000000
+ },
+ "cpu_architecture": "X86",
+ "virtual_cpu_oversubscription_policy": "test",
+ "virtual_cpu_pinning": {
+ "cpu_pinning_map": {
+ "cpu_pinning_0": "1"
+ },
+ "cpu_pinning_policy": "static"
+ }
+ }
+ },
+ "virtual_memory": {
+ "type_name": "tosca.datatypes.nfv.VirtualMemory",
+ "value": {
+ "virtual_mem_oversubscription_policy": "mem_policy_test",
+ "numa_enabled": True,
+ "virtual_mem_size": {
+ "value": 10000000000,
+ "factor": 10,
+ "unit": "GB",
+ "unit_size": 1000000000
+ }
+ }
+ }
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec81264d0>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"virtualLink",
- "target_node_template_name":"ext_mnet_net",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"virtualbinding",
- "target_node_template_name":"m6000_s",
- "target_capability_name":"virtualBinding"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
+ {
+ "name": "virtual_binding",
+ "type_name": "tosca.capabilities.nfv.VirtualBindable"
+ }
+ ],
+ "requirement_templates": [
+ {
+ "name": "virtual_storage",
+ "target_node_template_name": "vNAT_Storage",
+ "relationship_template": {
+ "type_name": "tosca.relationships.nfv.VDU.AttachedTo",
+ "properties": {
+ "location": {
+ "type_name": "string",
+ "value": "/mnt/volume_0",
+ "description": "The relative location (e.g., path on the file system), which provides the root location to address an attached node. e.g., a mount point / path such as '/usr/data'. Note: The user must provide it and it cannot be \"root\"."
+ }
+ },
+ "source_interface_templates": [
+ ""
+ ]
}
- ]
- },
- {
- "name":"sfc_data_network",
- "type_name":"tosca.nodes.nfv.ext.zte.VL",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "name":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "dhcp_enabled":{
- "type_name":"boolean",
- "value":True
- },
- "is_predefined":{
- "type_name":"boolean",
- "value":False
- },
- "location_info":{
- "type_name":"tosca.datatypes.nfv.ext.LocationInfo",
- "value":{
- "tenant":"admin",
- "vimid":2,
- "availability_zone":"nova"
+ }
+ ]
+ },
+ {
+ "name": "SRIOV_Port",
+ "type_name": "tosca.nodes.nfv.VduCpd",
+ "default_instances": 1,
+ "min_instances": 0,
+ "properties": {
+ "address_data": {
+ "type_name": "list",
+ "value": [
+ {
+ "address_type": "ip_address",
+ "l3_address_data": {
+ "ip_address_type": "ipv4",
+ "floating_ip_activated": False,
+ "number_of_ip_address": 1,
+ "ip_address_assignment": True
+ }
}
- },
- "ip_version":{
- "type_name":"integer",
- "value":4
- },
- "mtu":{
- "type_name":"integer",
- "value":1500
- },
- "network_name":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "network_type":{
- "type_name":"string",
- "value":"vlan"
- }
+ ]
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec813c6d0>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtual_linkable",
- "type_name":"tosca.capabilities.nfv.VirtualLinkable"
- }
- ]
- },
- {
- "name":"m6000_s",
- "type_name":"tosca.nodes.nfv.ext.PNF",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "pnf_type":{
- "type_name":"string",
- "value":"m6000s"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "management_address":{
- "type_name":"string",
- "value":"111111"
- },
- "id":{
- "type_name":"string",
- "value":"m6000_s"
- },
- "nsh_aware":{
- "type_name":"boolean",
- "value":False
- }
+ "description": {
+ "type_name": "string",
+ "value": "sriov port"
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec8132490>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"virtualBinding",
- "type_name":"tosca.capabilities.nfv.VirtualBindable"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
+ "layer_protocol": {
+ "type_name": "string",
+ "value": "ipv4"
+ },
+ "virtual_network_interface_requirements": {
+ "type_name": "list",
+ "value": [
+ {
+ "requirement": {
+ "SRIOV": "true"
+ },
+ "support_mandatory": False,
+ "name": "sriov",
+ "description": "sriov"
+ },
+ {
+ "requirement": {
+ "SRIOV": "false"
+ },
+ "support_mandatory": False,
+ "name": "normal",
+ "description": "normal"
+ }
+ ]
+ },
+ "role": {
+ "type_name": "string",
+ "value": "root"
+ },
+ "bitrate_requirement": {
+ "type_name": "integer",
+ "value": 10
+ }
},
- {
- "name":"VNAT",
- "type_name":"tosca.nodes.nfv.ext.zte.VNF.VNAT",
- "default_instances":1,
- "min_instances":0,
- "properties":{
- "is_shared":{
- "type_name":"boolean",
- "value":False
- },
- "plugin_info":{
- "type_name":"string",
- "value":"vbrasplugin_1.0"
- },
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "request_reclassification":{
- "type_name":"boolean",
- "value":False
- },
- "name":{
- "type_name":"string",
- "value":"VNAT"
- },
- "vnf_extend_type":{
- "type_name":"string",
- "value":"driver"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "cross_dc":{
- "type_name":"boolean",
- "value":False
- },
- "vnf_type":{
- "type_name":"string",
- "value":"VNAT"
- },
- "vnfd_version":{
- "type_name":"string",
- "value":"1.0.0"
- },
- "id":{
- "type_name":"string",
- "value":"vcpe_vnat_zte_1"
- },
- "nsh_aware":{
- "type_name":"boolean",
- "value":True
- },
- "adjust_vnf_capacity":{
- "type_name":"boolean",
- "value":True
- },
- "vmnumber_overquota_alarm":{
- "type_name":"boolean",
- "value":True
- },
- "csarProvider":{
- "type_name":"string",
- "value":"ZTE"
- },
- "NatIpRange":{
- "type_name":"string",
- "value":"192.167.0.10-192.168.0.20"
- },
- "csarVersion":{
- "type_name":"string",
- "value":"v1.0"
- },
- "csarType":{
- "type_name":"string",
- "value":"NFAR"
+ "interface_templates": [
+ ""
+ ],
+ "capability_templates": [
+ {
+ "name": "feature",
+ "type_name": "tosca.capabilities.Node"
+ }
+ ],
+ "requirement_templates": [
+ {
+ "name": "virtual_binding",
+ "target_node_template_name": "vdu_vNat",
+ "relationship_template": {
+ "type_name": "tosca.relationships.nfv.VirtualBindsTo",
+ "source_interface_templates": [
+ ""
+ ]
}
},
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x1bba810>"
- ],
- "capability_templates":[
- {
- "name":"feature",
- "type_name":"tosca.capabilities.Node"
- },
- {
- "name":"forwarder",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- },
- {
- "name":"vnat_fw_inout",
- "type_name":"tosca.capabilities.nfv.Forwarder"
- }
- ],
- "requirement_templates":[
- {
- "name":"vnat_ctrl_by_manager_cp",
- "target_node_template_name":"ext_mnet_net",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"vnat_data_cp",
- "target_node_template_name":"sfc_data_network",
- "target_capability_name":"virtual_linkable"
- },
- {
- "name":"virtualLink",
- "target_node_type_name":"tosca.nodes.Root"
- },
- {
- "name":"forwarder",
- "target_node_type_name":"tosca.nodes.Root"
- }
- ]
- }
- ],
- "group_templates":[
- {
- "name":"vnffg1",
- "type_name":"tosca.groups.nfv.VNFFG",
- "properties":{
- "vendor":{
- "type_name":"string",
- "value":"zte"
- },
- "connection_point":{
- "type_name":"list",
- "value":[
- "m6000_data_in",
- "m600_tunnel_cp",
- "m6000_data_out"
- ]
- },
- "version":{
- "type_name":"string",
- "value":"1.0"
- },
- "constituent_vnfs":{
- "type_name":"list",
- "value":[
- "VFW",
- "VNAT"
- ]
- },
- "number_of_endpoints":{
- "type_name":"integer",
- "value":3
- },
- "dependent_virtual_link":{
- "type_name":"list",
- "value":[
- "sfc_data_network",
- "ext_datanet_net",
- "ext_mnet_net"
+ {
+ "name": "virtual_link",
+ "target_node_type_name": "tosca.nodes.nfv.VnfVirtualLinkDesc",
+ "relationship_template": {
+ "type_name": "tosca.relationships.nfv.VirtualLinksTo",
+ "source_interface_templates": [
+ ""
]
}
- },
- "interface_templates":[
- "<aria.modeling.model_elements.InterfaceTemplate object at 0x7f8ec811cd10>"
- ],
- "member_node_template_names":[
- "path1",
- "path2"
- ]
- }
- ],
- "substitution_template":{
- "node_type_name":"tosca.nodes.nfv.NS.VCPE_NS"
- },
- "inputs":{
- "externalDataNetworkName":{
- "type_name":"string",
- "value":"vlan_4004_tunnel_net"
- },
- "sfc_data_network":{
- "type_name":"string",
- "value":"sfc_data_network"
- },
- "NatIpRange":{
- "type_name":"string",
- "value":"192.167.0.10-192.168.0.20"
- },
- "externalManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4008_mng_net"
- },
- "externalPluginManageNetworkName":{
- "type_name":"string",
- "value":"vlan_4007_plugin_net"
- }
+ }
+ ]
}
+ ],
+ "substitution_template": {
+ "node_type_name": "tosca.nodes.nfv.VNF.vOpenNAT",
+ "requirement_templates": [
+ {
+ "mapped_name": "sriov_plane",
+ "node_template_name": "SRIOV_Port",
+ "name": "virtual_link"
+ }
+ ]
}
}
- )
- print convert_nsd_model(src_json)
-
-
-
-
+ })
+ print convert_vnfd_model(src_json)