-# Created by .ignore support plugin (hsz.mobi)
-#this is a template with common files to be igonored, after clone make a copy to .gitignore
-#cp .gitignore-common .gitignore
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+
+# This is a template with common files to be igonored, after clone make a copy to .gitignore
+# cp .gitignore-common .gitignore
*.pyc
#logs of openmano
logs
-#pycham
+#pycharm
.idea
-#eclpise
+#eclipse
.project
.pydevproject
.settings
instance-scenarios/local
database_utils/local
scripts/local
+
logger.error("http_get_tenants error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/tenants/<tenant_id>', method='GET')
logger.error("http_get_tenant_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/tenants', method='POST')
logger.error("http_post_tenants error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/tenants/<tenant_id>', method='PUT')
logger.error("http_edit_tenant_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/tenants/<tenant_id>', method='DELETE')
logger.error("http_delete_tenant_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/datacenters', method='GET')
logger.error("http_get_datacenters error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>', method='GET')
logger.error("http_get_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/datacenters', method='POST')
def http_post_datacenters():
logger.error("http_post_datacenters error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/datacenters/<datacenter_id_name>', method='PUT')
def http_edit_datacenter_id(datacenter_id_name):
logger.error("http_edit_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/networks', method='GET') #deprecated
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps', method='GET')
logger.error("http_getnetwork_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps', method='DELETE')
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps/<netmap_id>', method='DELETE')
logger.error("http_delnetmap_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps/upload', method='POST')
logger.error("http_uploadnetmap_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps', method='POST')
def http_postnetmap_datacenter_id(tenant_id, datacenter_id):
logger.error("http_postnetmap_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/netmaps/<netmap_id>', method='PUT')
def http_putnettmap_datacenter_id(tenant_id, datacenter_id, netmap_id):
logger.error("http_putnettmap_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>/action', method='POST')
logger.error("http_action_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/datacenters/<datacenter_id>', method='DELETE')
logger.error("http_delete_datacenter_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>', method='POST')
def http_associate_datacenters(tenant_id, datacenter_id):
logger.error("http_associate_datacenters error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/datacenters/<datacenter_id>', method='DELETE')
def http_deassociate_datacenters(tenant_id, datacenter_id):
logger.error("http_deassociate_datacenters error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vim/<datacenter_id>/<item>', method='GET')
@bottle.route(url_base + '/<tenant_id>/vim/<datacenter_id>/<item>/<name>', method='GET')
logger.error("http_get_vim_items error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vim/<datacenter_id>/<item>/<name>', method='DELETE')
def http_del_vim_items(tenant_id, datacenter_id, item, name):
logger.error("http_del_vim_items error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vim/<datacenter_id>/<item>', method='POST')
def http_post_vim_items(tenant_id, datacenter_id, item):
logger.error("http_post_vim_items error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vnfs', method='GET')
def http_get_vnfs(tenant_id):
logger.error("http_get_vnfs error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vnfs/<vnf_id>', method='GET')
def http_get_vnf_id(tenant_id,vnf_id):
logger.error("http_get_vnf_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vnfs', method='POST')
def http_post_vnfs(tenant_id):
logger.error("http_post_vnfs error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/vnfs/<vnf_id>', method='DELETE')
def http_delete_vnf_id(tenant_id,vnf_id):
logger.error("http_delete_vnf_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
#@bottle.route(url_base + '/<tenant_id>/hosts/topology', method='GET')
#@bottle.route(url_base + '/<tenant_id>/physicalview/Madrid-Alcantara', method='GET')
logger.error("http_get_hosts error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<path:path>', method='OPTIONS')
logger.error("http_post_deploy error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/topology/verify', method='POST')
def http_post_verify(tenant_id):
logger.error("http_post_scenarios error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/scenarios/<scenario_id>/action', method='POST')
def http_post_scenario_action(tenant_id, scenario_id):
logger.error("http_post_scenario_action error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/scenarios', method='GET')
def http_get_scenarios(tenant_id):
logger.error("http_get_scenarios error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/scenarios/<scenario_id>', method='GET')
def http_get_scenario_id(tenant_id, scenario_id):
logger.error("http_get_scenarios error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/scenarios/<scenario_id>', method='DELETE')
def http_delete_scenario_id(tenant_id, scenario_id):
logger.error("http_delete_scenario_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/scenarios/<scenario_id>', method='PUT')
logger.error("http_put_scenario_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.route(url_base + '/<tenant_id>/instances', method='POST')
def http_post_instances(tenant_id):
- '''take an action over a scenario'''
+ '''create an instance-scenario'''
logger.debug('FROM %s %s %s', bottle.request.remote_addr, bottle.request.method, bottle.request.url)
try:
#check valid tenant_id
logger.error("http_post_instances error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
#
# INSTANCES
logger.error("http_get_instances error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/instances/<instance_id>', method='GET')
def http_get_instance_id(tenant_id, instance_id):
logger.error("http_get_instance_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/instances/<instance_id>', method='DELETE')
def http_delete_instance_id(tenant_id, instance_id):
logger.error("http_delete_instance_id error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
+
@bottle.route(url_base + '/<tenant_id>/instances/<instance_id>/action', method='POST')
def http_post_instance_scenario_action(tenant_id, instance_id):
logger.error("http_post_instance_scenario_action error {}: {}".format(e.http_code, str(e)))
bottle.abort(e.http_code, str(e))
except Exception as e:
- logger.error("Unexpected exception %s", str(e))
- bottle.abort(HTTP_Internal_Server_Error, str(e))
+ logger.error("Unexpected exception: ", exc_info=True)
+ bottle.abort(HTTP_Internal_Server_Error, type(e).__name__ + ": " + str(e))
@bottle.error(400)
ipprofile['dhcp_enabled'] = ipprofile['dhcp'].get('enabled',True)
ipprofile['dhcp_count'] = ipprofile['dhcp'].get('count',None)
del ipprofile['dhcp']
- update(scenario_net['ip_profile'],ipprofile)
+ if 'ip_profile' not in scenario_net:
+ scenario_net['ip_profile'] = ipprofile
+ else:
+ update(scenario_net['ip_profile'],ipprofile)
for interface in net_instance_desc.get('interfaces', () ):
if 'ip_address' in interface:
for vnf in scenarioDict['vnfs']:
'''
__author__="Alfonso Tierno, Gerardo Garcia, Pablo Montes"
__date__ ="$26-aug-2014 11:09:29$"
-__version__="0.4.59-r502"
+__version__="0.4.60-r503"
version_date="Sep 2016"
database_version="0.15" #expected database schema version
def new_network(self,net_name, net_type, ip_profile=None, shared=False, vlan=None):
'''Adds a tenant network to VIM. Returns the network identifier'''
self.logger.debug("Adding a new network to VIM name '%s', type '%s'", net_name, net_type)
+ #self.logger.debug(">>>>>>>>>>>>>>>>>> IP profile %s", str(ip_profile))
try:
+ new_net = None
self._reload_connection()
network_dict = {'name': net_name, 'admin_state_up': True}
if net_type=="data" or net_type=="ptp":
}
if 'gateway_address' in ip_profile:
subnet['gateway_ip'] = ip_profile['gateway_address']
- if 'dns_address' in ip_profile:
+ if ip_profile.get('dns_address'):
#TODO: manage dns_address as a list of addresses separated by commas
subnet['dns_nameservers'] = []
subnet['dns_nameservers'].append(ip_profile['dns_address'])
ip_int += ip_profile['dhcp_count']
ip_str = str(netaddr.IPAddress(ip_int))
subnet['allocation_pools'][0]['end'] = ip_str
+ #self.logger.debug(">>>>>>>>>>>>>>>>>> Subnet: %s", str(subnet))
self.neutron.create_subnet({"subnet": subnet} )
return new_net["network"]["id"]
except (neExceptions.ConnectionFailed, ksExceptions.ClientException, neExceptions.NeutronException, ConnectionError) as e:
+ if new_net:
+ self.neutron.delete_network(new_net['network']['id'])
self._format_exception(e)
def get_network_list(self, filter_dict={}):
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: dataplaneVNF1\r
- description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"\r
- external-connections:\r
- - name: mgmt\r
- type: mgmt # "mgmt"(autoconnect to management net)\r
- VNFC: dataplaneVNF1-VM\r
- local_iface_name: eth0\r
- description: Management interface for general use\r
- - name: xe0\r
- type: data\r
- VNFC: dataplaneVNF1-VM\r
- local_iface_name: xe0\r
- description: Dataplane interface 1\r
- - name: xe1\r
- type: data\r
- VNFC: dataplaneVNF1-VM\r
- local_iface_name: xe1\r
- description: Dataplane interface 2\r
- - name: xe2\r
- type: data\r
- VNFC: dataplaneVNF1-VM\r
- local_iface_name: xe2\r
- description: Dataplane interface 3\r
- - name: xe3\r
- type: data\r
- VNFC: dataplaneVNF1-VM\r
- local_iface_name: xe3\r
- description: Dataplane interface 4\r
- VNFC:\r
- - name: dataplaneVNF1-VM\r
- description: "Dataplane VM with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF1.qcow2\r
- numas: \r
- - paired-threads: 7 # "cores", "paired-threads", "threads"\r
- paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12, 13] ]\r
- memory: 16 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 10 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- - name: xe2\r
- vpci: "0000:00:13.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- - name: xe3\r
- vpci: "0000:00:14.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: dataplaneVNF1
+ description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"
+ external-connections:
+ - name: mgmt
+ type: mgmt # "mgmt"(autoconnect to management net)
+ VNFC: dataplaneVNF1-VM
+ local_iface_name: eth0
+ description: Management interface for general use
+ - name: xe0
+ type: data
+ VNFC: dataplaneVNF1-VM
+ local_iface_name: xe0
+ description: Dataplane interface 1
+ - name: xe1
+ type: data
+ VNFC: dataplaneVNF1-VM
+ local_iface_name: xe1
+ description: Dataplane interface 2
+ - name: xe2
+ type: data
+ VNFC: dataplaneVNF1-VM
+ local_iface_name: xe2
+ description: Dataplane interface 3
+ - name: xe3
+ type: data
+ VNFC: dataplaneVNF1-VM
+ local_iface_name: xe3
+ description: Dataplane interface 4
+ VNFC:
+ - name: dataplaneVNF1-VM
+ description: "Dataplane VM with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF1.qcow2
+ numas:
+ - paired-threads: 7 # "cores", "paired-threads", "threads"
+ paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12, 13] ]
+ memory: 16 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 10 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ - name: xe2
+ vpci: "0000:00:13.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ - name: xe3
+ vpci: "0000:00:14.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: dataplaneVNF2\r
- description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 3 cores, 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"\r
- external-connections:\r
- - name: mgmt\r
- type: mgmt # "mgmt"(autoconnect to management net)\r
- VNFC: dataplaneVNF2-VM\r
- local_iface_name: eth0\r
- description: Management interface for general use\r
- - name: control\r
- type: bridge\r
- VNFC: dataplaneVNF2-VM\r
- local_iface_name: eth1\r
- description: Bridge interface\r
- - name: xe0\r
- type: data\r
- VNFC: dataplaneVNF2-VM\r
- local_iface_name: xe0\r
- description: Dataplane interface 1\r
- - name: xe1\r
- type: data\r
- VNFC: dataplaneVNF2-VM\r
- local_iface_name: xe1\r
- description: Dataplane interface 2\r
- - name: xe2\r
- type: data\r
- VNFC: dataplaneVNF2-VM\r
- local_iface_name: xe2\r
- description: Dataplane interface 3 (SR-IOV)\r
- VNFC:\r
- - name: dataplaneVNF2-VM\r
- description: "Dataplane VM with high I/O performance requirements: 3 cores (no hyperthreading), 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF2.qcow2\r
- numas: \r
- - cores: 3 # "cores", "paired-threads", "threads"\r
- memory: 8 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 10 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- - name: xe2\r
- vpci: "0000:00:13.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
- - name: eth1\r
- vpci: "0000:00:10.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: dataplaneVNF2
+ description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 3 cores, 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"
+ external-connections:
+ - name: mgmt
+ type: mgmt # "mgmt"(autoconnect to management net)
+ VNFC: dataplaneVNF2-VM
+ local_iface_name: eth0
+ description: Management interface for general use
+ - name: control
+ type: bridge
+ VNFC: dataplaneVNF2-VM
+ local_iface_name: eth1
+ description: Bridge interface
+ - name: xe0
+ type: data
+ VNFC: dataplaneVNF2-VM
+ local_iface_name: xe0
+ description: Dataplane interface 1
+ - name: xe1
+ type: data
+ VNFC: dataplaneVNF2-VM
+ local_iface_name: xe1
+ description: Dataplane interface 2
+ - name: xe2
+ type: data
+ VNFC: dataplaneVNF2-VM
+ local_iface_name: xe2
+ description: Dataplane interface 3 (SR-IOV)
+ VNFC:
+ - name: dataplaneVNF2-VM
+ description: "Dataplane VM with high I/O performance requirements: 3 cores (no hyperthreading), 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF2.qcow2
+ numas:
+ - cores: 3 # "cores", "paired-threads", "threads"
+ memory: 8 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 10 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ - name: xe2
+ vpci: "0000:00:13.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+ - name: eth1
+ vpci: "0000:00:10.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: dataplaneVNF3\r
- description: "Example of a dataplane VNF consisting of one VM with two SR-IOV"\r
- # class: parent # Optional. Used to organize VNFs\r
- external-connections:\r
- - name: mgmt\r
- type: mgmt\r
- VNFC: dataplaneVNF3-VM\r
- local_iface_name: eth0\r
- description: control interface VM1\r
- - name: data0\r
- type: data\r
- VNFC: dataplaneVNF3-VM\r
- local_iface_name: xe0\r
- description: Dataplane interface\r
- - name: data1\r
- type: data\r
- VNFC: dataplaneVNF3-VM\r
- local_iface_name: xe1\r
- description: Dataplane interface\r
- VNFC:\r
- - name: dataplaneVNF3-VM\r
- description: "Dataplane VM with 2 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF3.qcow2\r
- disk: 10\r
- numas: \r
- - threads: 2 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: dataplaneVNF3
+ description: "Example of a dataplane VNF consisting of one VM with two SR-IOV"
+ # class: parent # Optional. Used to organize VNFs
+ external-connections:
+ - name: mgmt
+ type: mgmt
+ VNFC: dataplaneVNF3-VM
+ local_iface_name: eth0
+ description: control interface VM1
+ - name: data0
+ type: data
+ VNFC: dataplaneVNF3-VM
+ local_iface_name: xe0
+ description: Dataplane interface
+ - name: data1
+ type: data
+ VNFC: dataplaneVNF3-VM
+ local_iface_name: xe1
+ description: Dataplane interface
+ VNFC:
+ - name: dataplaneVNF3-VM
+ description: "Dataplane VM with 2 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF3.qcow2
+ disk: 10
+ numas:
+ - threads: 2 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: dataplaneVNF_2VMs\r
- description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"\r
- # class: parent # Optional. Used to organize VNFs\r
- internal-connections:\r
- - name: datanet\r
- description: datanet\r
- type: data\r
- elements:\r
- - VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe0\r
- - VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe0\r
- external-connections:\r
- - name: control0\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: eth0\r
- description: control interface VM1\r
- - name: control1\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: eth0\r
- description: control interface VM2\r
- - name: in\r
- type: data\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe1\r
- description: Dataplane interface input\r
- - name: out\r
- type: data\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe1\r
- description: Dataplane interface output\r
- VNFC:\r
- - name: VNF_2VMs-VM1\r
- description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2\r
- disk: 10\r
- numas: \r
- - paired-threads: 2 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
- - name: VNF_2VMs-VM2\r
- description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2\r
- disk: 10\r
- numas: \r
- - paired-threads: 1 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: dataplaneVNF_2VMs
+ description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"
+ # class: parent # Optional. Used to organize VNFs
+ internal-connections:
+ - name: datanet
+ description: datanet
+ type: data
+ elements:
+ - VNFC: VNF_2VMs-VM1
+ local_iface_name: xe0
+ - VNFC: VNF_2VMs-VM2
+ local_iface_name: xe0
+ external-connections:
+ - name: control0
+ type: mgmt
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: eth0
+ description: control interface VM1
+ - name: control1
+ type: mgmt
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: eth0
+ description: control interface VM2
+ - name: in
+ type: data
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: xe1
+ description: Dataplane interface input
+ - name: out
+ type: data
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: xe1
+ description: Dataplane interface output
+ VNFC:
+ - name: VNF_2VMs-VM1
+ description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2
+ disk: 10
+ numas:
+ - paired-threads: 2 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
+ - name: VNF_2VMs-VM2
+ description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2
+ disk: 10
+ numas:
+ - paired-threads: 1 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-schema_version: "0.2"\r
-vnf:\r
- name: dataplaneVNF_2VMs_v02\r
- description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"\r
- # class: parent # Optional. Used to organize VNFs\r
- internal-connections:\r
- - name: datanet\r
- description: datanet\r
- type: e-lan\r
- implementation: underlay\r
- ip-profile:\r
- ip-version: IPv4\r
- subnet-address: 192.168.1.0/24\r
- gateway-address: 192.168.1.1\r
- dns-address: 8.8.8.8\r
- dhcp:\r
- enabled: true\r
- start-address: 192.168.1.100\r
- count: 100\r
- elements:\r
- - VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.2\r
- - VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.3\r
- external-connections:\r
- - name: control0\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: eth0\r
- description: control interface VM1\r
- - name: control1\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: eth0\r
- description: control interface VM2\r
- - name: in\r
- type: data\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe1\r
- description: Dataplane interface input\r
- - name: out\r
- type: data\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe1\r
- description: Dataplane interface output\r
- VNFC:\r
- - name: VNF_2VMs-VM1\r
- description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2\r
- disk: 10\r
- numas: \r
- - paired-threads: 2 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
- - name: VNF_2VMs-VM2\r
- description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2\r
- disk: 10\r
- numas: \r
- - paired-threads: 1 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+schema_version: "0.2"
+vnf:
+ name: dataplaneVNF_2VMs_v02
+ description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"
+ # class: parent # Optional. Used to organize VNFs
+ internal-connections:
+ - name: datanet
+ description: datanet
+ type: e-lan
+ implementation: underlay
+ ip-profile:
+ ip-version: IPv4
+ subnet-address: 192.168.1.0/24
+ gateway-address: 192.168.1.1
+ dns-address: 8.8.8.8
+ dhcp:
+ enabled: true
+ start-address: 192.168.1.100
+ count: 100
+ elements:
+ - VNFC: VNF_2VMs-VM1
+ local_iface_name: xe0
+ ip_address: 192.168.1.2
+ - VNFC: VNF_2VMs-VM2
+ local_iface_name: xe0
+ ip_address: 192.168.1.3
+ external-connections:
+ - name: control0
+ type: mgmt
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: eth0
+ description: control interface VM1
+ - name: control1
+ type: mgmt
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: eth0
+ description: control interface VM2
+ - name: in
+ type: data
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: xe1
+ description: Dataplane interface input
+ - name: out
+ type: data
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: xe1
+ description: Dataplane interface output
+ VNFC:
+ - name: VNF_2VMs-VM1
+ description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2
+ disk: 10
+ numas:
+ - paired-threads: 2 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
+ - name: VNF_2VMs-VM2
+ description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/dataplaneVNF_2VMs.qcow2
+ disk: 10
+ numas:
+ - paired-threads: 1 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-schema_version: "0.2"\r
-vnf:\r
- name: dataplaneVNF_2VMs_v02_withimagename\r
- description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"\r
- # class: parent # Optional. Used to organize VNFs\r
- internal-connections:\r
- - name: datanet\r
- description: datanet\r
- type: e-lan\r
- implementation: underlay\r
- ip-profile:\r
- ip-version: IPv4\r
- subnet-address: 192.168.1.0/24\r
- gateway-address: 192.168.1.1\r
- dns-address: 8.8.8.8\r
- dhcp:\r
- enabled: true\r
- start-address: 192.168.1.100\r
- count: 100\r
- elements:\r
- - VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.2\r
- - VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.3\r
- external-connections:\r
- - name: control0\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: eth0\r
- description: control interface VM1\r
- - name: control1\r
- type: mgmt\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: eth0\r
- description: control interface VM2\r
- - name: in\r
- type: data\r
- VNFC: VNF_2VMs-VM1\r
- local_iface_name: xe1\r
- description: Dataplane interface input\r
- - name: out\r
- type: data\r
- VNFC: VNF_2VMs-VM2\r
- local_iface_name: xe1\r
- description: Dataplane interface output\r
- VNFC:\r
- - name: VNF_2VMs-VM1\r
- description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- image name: dataplaneVNF_2VMs-image\r
- disk: 10\r
- numas: \r
- - paired-threads: 2 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
- - name: VNF_2VMs-VM2\r
- description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"\r
- #Copy the image to a compute path and edit this path\r
- image name: dataplaneVNF_2VMs-image\r
- disk: 10\r
- numas: \r
- - paired-threads: 1 # "cores", "paired-threads", "threads"\r
- memory: 2 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 1 Gbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "no"\r
- bandwidth: 1 Gbps\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+schema_version: "0.2"
+vnf:
+ name: dataplaneVNF_2VMs_v02_withimagename
+ description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network"
+ # class: parent # Optional. Used to organize VNFs
+ internal-connections:
+ - name: datanet
+ description: datanet
+ type: e-lan
+ implementation: underlay
+ ip-profile:
+ ip-version: IPv4
+ subnet-address: 192.168.1.0/24
+ gateway-address: 192.168.1.1
+ dns-address: 8.8.8.8
+ dhcp:
+ enabled: true
+ start-address: 192.168.1.100
+ count: 100
+ elements:
+ - VNFC: VNF_2VMs-VM1
+ local_iface_name: xe0
+ ip_address: 192.168.1.2
+ - VNFC: VNF_2VMs-VM2
+ local_iface_name: xe0
+ ip_address: 192.168.1.3
+ external-connections:
+ - name: control0
+ type: mgmt
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: eth0
+ description: control interface VM1
+ - name: control1
+ type: mgmt
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: eth0
+ description: control interface VM2
+ - name: in
+ type: data
+ VNFC: VNF_2VMs-VM1
+ local_iface_name: xe1
+ description: Dataplane interface input
+ - name: out
+ type: data
+ VNFC: VNF_2VMs-VM2
+ local_iface_name: xe1
+ description: Dataplane interface output
+ VNFC:
+ - name: VNF_2VMs-VM1
+ description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ image name: dataplaneVNF_2VMs-image
+ disk: 10
+ numas:
+ - paired-threads: 2 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
+ - name: VNF_2VMs-VM2
+ description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"
+ #Copy the image to a compute path and edit this path
+ image name: dataplaneVNF_2VMs-image
+ disk: 10
+ numas:
+ - paired-threads: 1 # "cores", "paired-threads", "threads"
+ memory: 2 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "no" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 1 Gbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "no"
+ bandwidth: 1 Gbps
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: linux\r
- description: Single-VM VNF with a traditional cloud VM based on generic Linux OS\r
- external-connections:\r
- - name: eth0\r
- type: bridge\r
- VNFC: linux-VM\r
- local_iface_name: eth0\r
- description: General purpose interface\r
- VNFC:\r
- - name: linux-VM\r
- description: Generic Linux Virtual Machine\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/linux.qcow2\r
- vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).\r
- ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)\r
- disk: 10\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:11.0"\r
- numas: []\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: linux
+ description: Single-VM VNF with a traditional cloud VM based on generic Linux OS
+ external-connections:
+ - name: eth0
+ type: bridge
+ VNFC: linux-VM
+ local_iface_name: eth0
+ description: General purpose interface
+ VNFC:
+ - name: linux-VM
+ description: Generic Linux Virtual Machine
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/linux.qcow2
+ vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
+ ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
+ disk: 10
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:11.0"
+ numas: []
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-schema_version: "0.2"\r
-vnf:\r
- name: linux_2VMs_v02\r
- description: "Example of a linux VNF consisting of two VMs with one internal network"\r
- # class: parent # Optional. Used to organize VNFs\r
- internal-connections:\r
- - name: internalnet\r
- description: internalnet\r
- type: e-lan\r
- implementation: overlay\r
- ip-profile:\r
- ip-version: IPv4\r
- subnet-address: 192.168.1.0/24\r
- gateway-address: 192.168.1.1\r
- dns-address: 8.8.8.8\r
- dhcp:\r
- enabled: true\r
- start-address: 192.168.1.100\r
- count: 100\r
- elements:\r
- - VNFC: linux_2VMs-VM1\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.2\r
- - VNFC: linux_2VMs-VM2\r
- local_iface_name: xe0\r
- ip_address: 192.168.1.3\r
- external-connections:\r
- - name: control0\r
- type: mgmt\r
- VNFC: linux_2VMs-VM1\r
- local_iface_name: eth0\r
- description: control interface VM1\r
- - name: control1\r
- type: mgmt\r
- VNFC: linux_2VMs-VM2\r
- local_iface_name: eth0\r
- description: control interface VM2\r
- - name: in\r
- type: bridge\r
- VNFC: linux_2VMs-VM1\r
- local_iface_name: xe1\r
- description: data interface input\r
- - name: out\r
- type: bridge\r
- VNFC: linux_2VMs-VM2\r
- local_iface_name: xe1\r
- description: data interface output\r
- VNFC:\r
- - name: linux_2VMs-VM1\r
- description: "Linux VM1 with 4 CPUs, 2 GB RAM and 3 bridge interfaces"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/linux_VNF_2VMs.qcow2\r
- disk: 10\r
- vcpus: 4\r
- ram: 2048\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- bandwidth: 1 Mbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- bandwidth: 1 Mbps\r
- - name: linux_2VMs-VM2\r
- description: "Linux VM2 with 2 CPUs, 2 GB RAM and 3 bridge interfaces"\r
- #Copy the image to a compute path and edit this path\r
- VNFC image: /path/to/imagefolder/linux_VNF_2VMs.qcow2\r
- disk: 10\r
- vcpus: 2\r
- ram: 2048\r
- bridge-ifaces:\r
- - name: eth0\r
- vpci: "0000:00:09.0"\r
- bandwidth: 1 Mbps # Optional, informative only\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- bandwidth: 1 Mbps\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- bandwidth: 1 Mbps\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+schema_version: "0.2"
+vnf:
+ name: linux_2VMs_v02
+ description: "Example of a linux VNF consisting of two VMs with one internal network"
+ # class: parent # Optional. Used to organize VNFs
+ internal-connections:
+ - name: internalnet
+ description: internalnet
+ type: e-lan
+ implementation: overlay
+ ip-profile:
+ ip-version: IPv4
+ subnet-address: 192.168.1.0/24
+ gateway-address: 192.168.1.1
+ dns-address: 8.8.8.8
+ dhcp:
+ enabled: true
+ start-address: 192.168.1.100
+ count: 100
+ elements:
+ - VNFC: linux_2VMs-VM1
+ local_iface_name: xe0
+ ip_address: 192.168.1.2
+ - VNFC: linux_2VMs-VM2
+ local_iface_name: xe0
+ ip_address: 192.168.1.3
+ external-connections:
+ - name: control0
+ type: mgmt
+ VNFC: linux_2VMs-VM1
+ local_iface_name: eth0
+ description: control interface VM1
+ - name: control1
+ type: mgmt
+ VNFC: linux_2VMs-VM2
+ local_iface_name: eth0
+ description: control interface VM2
+ - name: in
+ type: bridge
+ VNFC: linux_2VMs-VM1
+ local_iface_name: xe1
+ description: data interface input
+ - name: out
+ type: bridge
+ VNFC: linux_2VMs-VM2
+ local_iface_name: xe1
+ description: data interface output
+ VNFC:
+ - name: linux_2VMs-VM1
+ description: "Linux VM1 with 4 CPUs, 2 GB RAM and 3 bridge interfaces"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/linux_VNF_2VMs.qcow2
+ disk: 10
+ vcpus: 4
+ ram: 2048
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+ - name: xe0
+ vpci: "0000:00:11.0"
+ bandwidth: 1 Mbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ bandwidth: 1 Mbps
+ - name: linux_2VMs-VM2
+ description: "Linux VM2 with 2 CPUs, 2 GB RAM and 3 bridge interfaces"
+ #Copy the image to a compute path and edit this path
+ VNFC image: /path/to/imagefolder/linux_VNF_2VMs.qcow2
+ disk: 10
+ vcpus: 2
+ ram: 2048
+ bridge-ifaces:
+ - name: eth0
+ vpci: "0000:00:09.0"
+ bandwidth: 1 Mbps # Optional, informative only
+ - name: xe0
+ vpci: "0000:00:11.0"
+ bandwidth: 1 Mbps
+ - name: xe1
+ vpci: "0000:00:12.0"
+ bandwidth: 1 Mbps
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: TEMPLATE-2VM\r
- description: This is a template to help in the creation of multi-VM VNFs\r
- # class: parent # Optional. Used to organize VNFs\r
- internal-connections:\r
- - name: datanet\r
- description: datanet\r
- type: data\r
- elements:\r
- - VNFC: VirtualMachine-1\r
- local_iface_name: xe0\r
- - VNFC: VirtualMachine-2\r
- local_iface_name: xe0\r
- - name: controlnet\r
- description: controlnet\r
- type: bridge\r
- elements:\r
- - VNFC: VirtualMachine-1\r
- local_iface_name: ge0\r
- - VNFC: VirtualMachine-2\r
- local_iface_name: ge0\r
- external-connections:\r
- - name: mgmt0\r
- type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"\r
- VNFC: VirtualMachine-1 # Virtual Machine this interface belongs to\r
- local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)\r
- description: Management interface 1\r
- - name: mgmt1\r
- type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"\r
- VNFC: VirtualMachine-2 # Virtual Machine this interface belongs to\r
- local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)\r
- description: Management interface 2\r
- - name: data0\r
- type: data # "mgmt" (autoconnect to management net), "bridge", "data"\r
- VNFC: VirtualMachine-1 # Virtual Machine this interface belongs to\r
- local_iface_name: xe1 # interface name inside this Virtual Machine (must be defined in the VNFC section)\r
- description: Data interface 1\r
- - name: data1\r
- type: data # "mgmt" (autoconnect to management net), "bridge", "data"\r
- VNFC: VirtualMachine-2 # Virtual Machine this interface belongs to\r
- local_iface_name: xe1 # interface name inside this Virtual Machine (must be defined in the VNFC section)\r
- description: Data interface 2\r
- VNFC: # Virtual machine array \r
- # First Virtual Machine\r
- - name: VirtualMachine-1 # name of Virtual Machine\r
- description: VM 1 in the MultiVM template\r
- VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional\r
- # processor: #Optional\r
- # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz\r
- # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]\r
- # hypervisor: #Optional\r
- # type: QEMU-kvm\r
- # version: "10002|12001|2.6.32-358.el6.x86_64"\r
- # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).\r
- # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)\r
- # disk: 10 # disk size in GiB, by default 1\r
- numas: \r
- - paired-threads: 5 # "cores", "paired-threads", "threads"\r
- paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order\r
- memory: 14 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0" \r
- dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 10 Gbps\r
- #mac_address: '20:33:45:56:77:44' #avoid this option if possible\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- #mac_address: '20:33:45:56:77:45' #avoid this option if possible\r
- bridge-ifaces:\r
- - name: mgmt0\r
- vpci: "0000:00:09.0" # Optional. Virtual PCI address \r
- bandwidth: 1 Mbps # Optional. Informative only\r
- # mac_address: '20:33:45:56:77:46' #avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- - name: ge0\r
- vpci: "0000:00:10.0"\r
- bandwidth: 1 Mbps\r
- # mac_address: '20:33:45:56:77:47' # avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- devices: # Optional, order determines device letter asignation (hda, hdb, ...)\r
- - type: disk # "disk","cdrom","xml"\r
- image: /path/to/imagefolder/SECOND-DISK.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- # vpci: "0000:00:03.0" # Optional, not for disk or cdrom\r
- - type: cdrom\r
- image: /path/to/imagefolder/CDROM-IMAGE.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- - type: xml\r
- image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type\r
- image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type\r
- vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)\r
- xml: ' xml text for XML described devices. Do not use single quotes inside\r
- The following words, if found, will be replaced:\r
- __file__ by image path, (image must be provided)\r
- __format__ by qcow2 or raw (image must be provided)\r
- __dev__ by device letter (b, c, d ...) \r
- __vpci__ by vpci (vpci must be provided)\r
- '\r
- # Second Virtual Machine\r
- - name: VirtualMachine-2 # name of Virtual Machine\r
- description: VM 2 in the MultiVM template\r
- VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2 # In this case, it is the same as VirtualMachine-1, but it could have been different\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional\r
- # processor: #Optional\r
- # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz\r
- # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]\r
- # hypervisor: #Optional\r
- # type: QEMU-kvm\r
- # version: "10002|12001|2.6.32-358.el6.x86_64"\r
- # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).\r
- # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)\r
- # disk: 10 # disk size in GiB, by default 1\r
- numas:\r
- - paired-threads: 5 # "cores", "paired-threads", "threads"\r
- paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order\r
- memory: 14 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0"\r
- dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 10 Gbps\r
- #mac_address: '20:33:45:56:77:44' #avoid this option if possible\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- #mac_address: '20:33:45:56:77:45' #avoid this option if possible\r
- bridge-ifaces:\r
- - name: mgmt0\r
- vpci: "0000:00:09.0" # Optional\r
- bandwidth: 1 Mbps # Optional, informative only\r
- # mac_address: '20:33:45:56:77:46' #avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- - name: ge0\r
- vpci: "0000:00:10.0"\r
- bandwidth: 1 Mbps\r
- # mac_address: '20:33:45:56:77:47' #avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- devices: # Optional, order determines device letter asignation (hda, hdb, ...)\r
- - type: disk # "disk","cdrom","xml"\r
- image: /path/to/imagefolder/SECOND-DISK.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- # vpci: "0000:00:03.0" # Optional, not for disk or cdrom\r
- - type: cdrom\r
- image: /path/to/imagefolder/CDROM-IMAGE.qcow2\r
- #image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- - type: xml\r
- image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type\r
- image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type\r
- vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)\r
- xml: ' xml text for XML described devices. Do not use single quotes inside\r
- The following words, if found, will be replaced:\r
- __file__ by image path, (image must be provided)\r
- __format__ by qcow2 or raw (image must be provided)\r
- __dev__ by device letter (b, c, d ...)\r
- __vpci__ by vpci (vpci must be provided)\r
- '\r
- # Additional Virtual Machines can be included here\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: TEMPLATE-2VM
+ description: This is a template to help in the creation of multi-VM VNFs
+ # class: parent # Optional. Used to organize VNFs
+ internal-connections:
+ - name: datanet
+ description: datanet
+ type: data
+ elements:
+ - VNFC: VirtualMachine-1
+ local_iface_name: xe0
+ - VNFC: VirtualMachine-2
+ local_iface_name: xe0
+ - name: controlnet
+ description: controlnet
+ type: bridge
+ elements:
+ - VNFC: VirtualMachine-1
+ local_iface_name: ge0
+ - VNFC: VirtualMachine-2
+ local_iface_name: ge0
+ external-connections:
+ - name: mgmt0
+ type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"
+ VNFC: VirtualMachine-1 # Virtual Machine this interface belongs to
+ local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)
+ description: Management interface 1
+ - name: mgmt1
+ type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"
+ VNFC: VirtualMachine-2 # Virtual Machine this interface belongs to
+ local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)
+ description: Management interface 2
+ - name: data0
+ type: data # "mgmt" (autoconnect to management net), "bridge", "data"
+ VNFC: VirtualMachine-1 # Virtual Machine this interface belongs to
+ local_iface_name: xe1 # interface name inside this Virtual Machine (must be defined in the VNFC section)
+ description: Data interface 1
+ - name: data1
+ type: data # "mgmt" (autoconnect to management net), "bridge", "data"
+ VNFC: VirtualMachine-2 # Virtual Machine this interface belongs to
+ local_iface_name: xe1 # interface name inside this Virtual Machine (must be defined in the VNFC section)
+ description: Data interface 2
+ VNFC: # Virtual machine array
+ # First Virtual Machine
+ - name: VirtualMachine-1 # name of Virtual Machine
+ description: VM 1 in the MultiVM template
+ VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional
+ # processor: #Optional
+ # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
+ # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]
+ # hypervisor: #Optional
+ # type: QEMU-kvm
+ # version: "10002|12001|2.6.32-358.el6.x86_64"
+ # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
+ # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
+ # disk: 10 # disk size in GiB, by default 1
+ numas:
+ - paired-threads: 5 # "cores", "paired-threads", "threads"
+ paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order
+ memory: 14 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 10 Gbps
+ #mac_address: '20:33:45:56:77:44' #avoid this option if possible
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ #mac_address: '20:33:45:56:77:45' #avoid this option if possible
+ bridge-ifaces:
+ - name: mgmt0
+ vpci: "0000:00:09.0" # Optional. Virtual PCI address
+ bandwidth: 1 Mbps # Optional. Informative only
+ # mac_address: '20:33:45:56:77:46' #avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ - name: ge0
+ vpci: "0000:00:10.0"
+ bandwidth: 1 Mbps
+ # mac_address: '20:33:45:56:77:47' # avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ devices: # Optional, order determines device letter asignation (hda, hdb, ...)
+ - type: disk # "disk","cdrom","xml"
+ image: /path/to/imagefolder/SECOND-DISK.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ # vpci: "0000:00:03.0" # Optional, not for disk or cdrom
+ - type: cdrom
+ image: /path/to/imagefolder/CDROM-IMAGE.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ - type: xml
+ image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type
+ image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type
+ vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)
+ xml: ' xml text for XML described devices. Do not use single quotes inside
+ The following words, if found, will be replaced:
+ __file__ by image path, (image must be provided)
+ __format__ by qcow2 or raw (image must be provided)
+ __dev__ by device letter (b, c, d ...)
+ __vpci__ by vpci (vpci must be provided)
+ '
+ # Second Virtual Machine
+ - name: VirtualMachine-2 # name of Virtual Machine
+ description: VM 2 in the MultiVM template
+ VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2 # In this case, it is the same as VirtualMachine-1, but it could have been different
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional
+ # processor: #Optional
+ # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
+ # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]
+ # hypervisor: #Optional
+ # type: QEMU-kvm
+ # version: "10002|12001|2.6.32-358.el6.x86_64"
+ # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
+ # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
+ # disk: 10 # disk size in GiB, by default 1
+ numas:
+ - paired-threads: 5 # "cores", "paired-threads", "threads"
+ paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order
+ memory: 14 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 10 Gbps
+ #mac_address: '20:33:45:56:77:44' #avoid this option if possible
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ #mac_address: '20:33:45:56:77:45' #avoid this option if possible
+ bridge-ifaces:
+ - name: mgmt0
+ vpci: "0000:00:09.0" # Optional
+ bandwidth: 1 Mbps # Optional, informative only
+ # mac_address: '20:33:45:56:77:46' #avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ - name: ge0
+ vpci: "0000:00:10.0"
+ bandwidth: 1 Mbps
+ # mac_address: '20:33:45:56:77:47' #avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ devices: # Optional, order determines device letter asignation (hda, hdb, ...)
+ - type: disk # "disk","cdrom","xml"
+ image: /path/to/imagefolder/SECOND-DISK.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ # vpci: "0000:00:03.0" # Optional, not for disk or cdrom
+ - type: cdrom
+ image: /path/to/imagefolder/CDROM-IMAGE.qcow2
+ #image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ - type: xml
+ image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type
+ image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type
+ vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)
+ xml: ' xml text for XML described devices. Do not use single quotes inside
+ The following words, if found, will be replaced:
+ __file__ by image path, (image must be provided)
+ __format__ by qcow2 or raw (image must be provided)
+ __dev__ by device letter (b, c, d ...)
+ __vpci__ by vpci (vpci must be provided)
+ '
+ # Additional Virtual Machines can be included here
+
-##\r
-# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.\r
-# This file is part of openmano\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact with: nfvlabs@tid.es\r
-##\r
----\r
-vnf:\r
- name: TEMPLATE\r
- description: This is a template to help in the creation of your own VNFs\r
- # class: parent # Optional. Used to organize VNFs\r
- external-connections:\r
- - name: mgmt0\r
- type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"\r
- VNFC: TEMPLATE-VM # Virtual Machine this interface belongs to\r
- local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)\r
- description: Management interface\r
- - name: xe0\r
- type: data\r
- VNFC: TEMPLATE-VM\r
- local_iface_name: xe0\r
- description: Data interface 1\r
- - name: xe1\r
- type: data\r
- VNFC: TEMPLATE-VM\r
- local_iface_name: xe1\r
- description: Data interface 2\r
- - name: ge0\r
- type: bridge\r
- VNFC: TEMPLATE-VM\r
- local_iface_name: ge0\r
- description: Bridge interface\r
- VNFC: # Virtual machine array \r
- - name: TEMPLATE-VM # name of Virtual Machine\r
- description: TEMPLATE description\r
- VNFC image: /path/to/imagefolder/TEMPLATE-VM.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional\r
- # processor: #Optional\r
- # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz\r
- # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]\r
- # hypervisor: #Optional\r
- # type: QEMU-kvm\r
- # version: "10002|12001|2.6.32-358.el6.x86_64"\r
- # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).\r
- # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)\r
- # disk: 10 # disk size in GiB, by default 1\r
- numas: \r
- - paired-threads: 5 # "cores", "paired-threads", "threads"\r
- paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order\r
- memory: 14 # GBytes\r
- interfaces:\r
- - name: xe0\r
- vpci: "0000:00:11.0" \r
- dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)\r
- bandwidth: 10 Gbps\r
- # mac_address: '20:33:45:56:77:44' #avoid this option if possible\r
- - name: xe1\r
- vpci: "0000:00:12.0"\r
- dedicated: "yes"\r
- bandwidth: 10 Gbps\r
- # mac_address: '20:33:45:56:77:45' #avoid this option if possible\r
- bridge-ifaces:\r
- - name: mgmt0\r
- vpci: "0000:00:09.0" # Optional. Virtual PCI address\r
- bandwidth: 1 Mbps # Optional. Informative only\r
- # mac_address: '20:33:45:56:77:46' #avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- - name: ge0\r
- vpci: "0000:00:10.0"\r
- bandwidth: 1 Mbps\r
- # mac_address: '20:33:45:56:77:47' #avoid this option if possible\r
- # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt\r
- devices: # Optional, order determines device letter asignation (hda, hdb, ...)\r
- - type: disk # "disk","cdrom","xml"\r
- image: /path/to/imagefolder/SECOND-DISK.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- # vpci: "0000:00:03.0" # Optional, not for disk or cdrom\r
- - type: cdrom\r
- image: /path/to/imagefolder/CDROM-IMAGE.qcow2\r
- # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }\r
- - type: xml\r
- image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type\r
- image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type\r
- vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)\r
- xml: ' xml text for XML described devices. Do not use single quotes inside\r
- The following words, if found, will be replaced:\r
- __file__ by image path, (image must be provided)\r
- __format__ by qcow2 or raw (image must be provided)\r
- __dev__ by device letter (b, c, d ...) \r
- __vpci__ by vpci (vpci must be provided)\r
- '\r
- # Additional Virtual Machines would be included here\r
-\r
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, 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.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+---
+vnf:
+ name: TEMPLATE
+ description: This is a template to help in the creation of your own VNFs
+ # class: parent # Optional. Used to organize VNFs
+ external-connections:
+ - name: mgmt0
+ type: mgmt # "mgmt" (autoconnect to management net), "bridge", "data"
+ VNFC: TEMPLATE-VM # Virtual Machine this interface belongs to
+ local_iface_name: mgmt0 # interface name inside this Virtual Machine (must be defined in the VNFC section)
+ description: Management interface
+ - name: xe0
+ type: data
+ VNFC: TEMPLATE-VM
+ local_iface_name: xe0
+ description: Data interface 1
+ - name: xe1
+ type: data
+ VNFC: TEMPLATE-VM
+ local_iface_name: xe1
+ description: Data interface 2
+ - name: ge0
+ type: bridge
+ VNFC: TEMPLATE-VM
+ local_iface_name: ge0
+ description: Bridge interface
+ VNFC: # Virtual machine array
+ - name: TEMPLATE-VM # name of Virtual Machine
+ description: TEMPLATE description
+ VNFC image: /path/to/imagefolder/TEMPLATE-VM.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional
+ # processor: #Optional
+ # model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
+ # features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]
+ # hypervisor: #Optional
+ # type: QEMU-kvm
+ # version: "10002|12001|2.6.32-358.el6.x86_64"
+ # vcpus: 1 # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
+ # ram: 1024 # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
+ # disk: 10 # disk size in GiB, by default 1
+ numas:
+ - paired-threads: 5 # "cores", "paired-threads", "threads"
+ paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order
+ memory: 14 # GBytes
+ interfaces:
+ - name: xe0
+ vpci: "0000:00:11.0"
+ dedicated: "yes" # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
+ bandwidth: 10 Gbps
+ # mac_address: '20:33:45:56:77:44' #avoid this option if possible
+ - name: xe1
+ vpci: "0000:00:12.0"
+ dedicated: "yes"
+ bandwidth: 10 Gbps
+ # mac_address: '20:33:45:56:77:45' #avoid this option if possible
+ bridge-ifaces:
+ - name: mgmt0
+ vpci: "0000:00:09.0" # Optional. Virtual PCI address
+ bandwidth: 1 Mbps # Optional. Informative only
+ # mac_address: '20:33:45:56:77:46' #avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ - name: ge0
+ vpci: "0000:00:10.0"
+ bandwidth: 1 Mbps
+ # mac_address: '20:33:45:56:77:47' #avoid this option if possible
+ # model: 'virtio' # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
+ devices: # Optional, order determines device letter asignation (hda, hdb, ...)
+ - type: disk # "disk","cdrom","xml"
+ image: /path/to/imagefolder/SECOND-DISK.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ # vpci: "0000:00:03.0" # Optional, not for disk or cdrom
+ - type: cdrom
+ image: /path/to/imagefolder/CDROM-IMAGE.qcow2
+ # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
+ - type: xml
+ image: /path/to/imagefolder/ADDITIONAL-DISK.qcow2 # Optional, depending on the device type
+ image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } # Optional, depending on the device type
+ vpci: "0000:00:03.0" # Optional, depending on the device type (not needed for disk or cdrom)
+ xml: ' xml text for XML described devices. Do not use single quotes inside
+ The following words, if found, will be replaced:
+ __file__ by image path, (image must be provided)
+ __format__ by qcow2 or raw (image must be provided)
+ __dev__ by device letter (b, c, d ...)
+ __vpci__ by vpci (vpci must be provided)
+ '
+ # Additional Virtual Machines would be included here
+