server_timeout = 60
class vimconnector(vimconn.vimconnector):
- def __init__(self, uuid, name, tenant_id, tenant_name, url, url_admin=None, user=None, passwd=None, log_level=None, config={}):
+ def __init__(self, uuid, name, tenant_id, tenant_name, url, url_admin=None, user=None, passwd=None,
+ log_level=None, config={}, persistent_info={}):
'''using common constructor parameters. In this case
'url' is the keystone authorization url,
'url_admin' is not use
if config.get('APIversion') == 'v3.3':
self.osc_api_version = 'v3.3'
vimconn.vimconnector.__init__(self, uuid, name, tenant_id, tenant_name, url, url_admin, user, passwd, log_level, config)
-
+
+ self.persistent_info = persistent_info
self.k_creds={}
self.n_creds={}
if self.config.get("insecure"):
subnet = {"id": subnet_id, "fault": str(e)}
subnets.append(subnet)
net["subnets"] = subnets
+ net["encapsulation"] = net.get('provider:network_type')
+ net["segmentation_id"] = net.get('provider:segmentation_id')
return net
def delete_network(self, net_id):
vim_net_id: #network id where this interface is connected
vim_interface_id: #interface/port VIM id
ip_address: #null, or text with IPv4, IPv6 address
+ physical_compute: #identification of compute node where PF,VF interface is allocated
+ physical_pci: #PCI address of the NIC that hosts the PF,VF
+ physical_vlan: #physical VLAN used for VF
'''
vm_dict={}
self.logger.debug("refresh_vms status: Getting tenant VM instance information from VIM")
interface["mac_address"] = port.get("mac_address")
interface["vim_net_id"] = port["network_id"]
interface["vim_interface_id"] = port["id"]
+ interface["physical_compute"] = vm_vim['OS-EXT-SRV-ATTR:host']
+ interface["physical_pci"] = None
+ # TODO: At the moment sr-iov pci addresses are converted to PF pci addresses by setting the slot to 0x00
+ # TODO: This is just a workaround valid for niantinc. Find a better way to do so
+ if 'pci_slot' in port['binding:profile']:
+ pci = list(port['binding:profile']['pci_slot'])
+ pci[-4] = '0'
+ pci[-3] = '0'
+ interface["physical_pci"] = ''.join(pci)
+ interface["physical_vlan"] = None
+ network = self.neutron.show_network(port["network_id"])
+ if network['network'].get('provider:network_type') == 'vlan':
+ interface["physical_vlan"] = network['network'].get('provider:segmentation_id')
ips=[]
#look for floating ip address
floating_ip_dict = self.neutron.list_floatingips(port_id=port["id"])