global global_config
global vimconn_imported
+global logger
vimconn_imported={} #dictionary with VIM type as key, loaded module as value
-logger = logging.getLogger('mano.nfvo')
+logger = logging.getLogger('openmano.nfvo')
class NfvoException(Exception):
def __init__(self, message, http_code):
#1.4 get list of connections
conections = topo['topology']['connections']
conections_list = []
+ conections_list_name = []
for k in conections.keys():
if type(conections[k]['nodes'])==dict: #dict with node:iface pairs
ifaces_list = conections[k]['nodes'].items()
if con_type == "dataplane_net" or con_type == "bridge_net":
other_nets[k]["model"] = con_type
-
+ conections_list_name.append(k)
conections_list.append(set(ifaces_list)) #from list to set to operate as a set (this conversion removes elements that are repeated in a list)
#print set(ifaces_list)
#check valid VNF and iface names
if len(conections_list[index] & conections_list[index2])>0: #common interface, join nets
conections_list[index] |= conections_list[index2]
del conections_list[index2]
+ del conections_list_name[index2]
else:
index2 += 1
conections_list[index] = list(conections_list[index]) # from set to list again
net_type_bridge=False
net_type_data=False
net_target = "__-__net"+str(net_nb)
- net_list[net_target] = {'name': "net-"+str(net_nb), 'description':"net-%s in scenario %s" %(net_nb,topo['name']),
+ net_list[net_target] = {'name': conections_list_name[net_nb], #"net-"+str(net_nb),
+ 'description':"net-%s in scenario %s" %(net_nb,topo['name']),
'external':False}
for iface in con:
vnfs[ iface[0] ]['ifaces'][ iface[1] ]['net_key'] = net_target
where={}
where_or={"tenant_id": tenant_id, 'public': "true"}
error_text = ""
- error_pos = "'topology':'nodes':'" + name + "'"
+ error_pos = "'scenario':'vnfs':'" + name + "'"
if 'vnf_id' in vnf:
error_text += " 'vnf_id' " + vnf['vnf_id']
where['uuid'] = vnf['vnf_id']
error_text += " 'vnf_name' " + vnf['vnf_name']
where['name'] = vnf['vnf_name']
if len(where) == 0:
- raise NfvoException("Needed a 'vnf_id' or 'VNF model' at " + error_pos, HTTP_Bad_Request)
+ raise NfvoException("Needed a 'vnf_id' or 'vnf_name' at " + error_pos, HTTP_Bad_Request)
vnf_db = mydb.get_rows(SELECT=('uuid','name','description'),
FROM='vnfs',
WHERE=where,
where={}
where_or={"tenant_id": tenant_id, 'public': "true"}
error_text = ""
- error_pos = "'topology':'nodes':'" + name + "'"
+ error_pos = "'scenario':'vnfs':'" + name + "'"
if 'vnf_id' in vnf:
error_text += " 'vnf_id' " + vnf['vnf_id']
where['uuid'] = vnf['vnf_id']
error_text += " 'vnf_name' " + vnf['vnf_name']
where['name'] = vnf['vnf_name']
if len(where) == 0:
- raise NfvoException("Needed a 'vnf_id' or 'VNF model' at " + error_pos, HTTP_Bad_Request)
+ raise NfvoException("Needed a 'vnf_id' or 'vnf_name' at " + error_pos, HTTP_Bad_Request)
vnf_db = mydb.get_rows(SELECT=('uuid','name','description'),
FROM='vnfs',
WHERE=where,
ipprofile['dhcp_count'] = ipprofile['dhcp'].get('count',None)
del ipprofile['dhcp']
update(scenario_net['ip_profile'],ipprofile)
- for interface in net_instance_desc['interfaces']:
+ for interface in net_instance_desc.get('interfaces', () ):
if 'ip_address' in interface:
for vnf in scenarioDict['vnfs']:
if interface['vnf'] == vnf['name']: