From 51e553b54a20b9f1a70984f3b9ab6462d6a65316 Mon Sep 17 00:00:00 2001 From: Pablo Montes Moreno Date: Thu, 23 Mar 2017 16:39:12 +0100 Subject: [PATCH] Added information needed for dataplane connectivity in refresh_vms_status in openstack connector. Minor modification in get_network to avoid confusion with the naming Change-Id: Ia672a8570bd31361d3097b9c1f1b02ec3fa13362 Signed-off-by: Pablo Montes Moreno --- vim_thread.py | 4 ++-- vimconn_openstack.py | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/vim_thread.py b/vim_thread.py index d89c4d14..eb740b4a 100644 --- a/vim_thread.py +++ b/vim_thread.py @@ -164,8 +164,8 @@ class vim_thread(threading.Thread): network = {"name": net_name, "type": net_type} vim_net = self.vim.get_network(net_id) - if vim_net.get('network_type') != 'vlan': - raise vimconn.vimconnException(net_name + "defined as type " + net_type + " but the created network in vim is " + vim_net['provider:network_type']) + if vim_net.get('encapsulation') != 'vlan': + raise vimconn.vimconnException(net_name + "defined as type " + net_type + " but the created network in vim is " + vim_net['encapsulation']) network["vlan"] = vim_net.get('segmentation_id') diff --git a/vimconn_openstack.py b/vimconn_openstack.py index 2c238db6..ceaa7620 100644 --- a/vimconn_openstack.py +++ b/vimconn_openstack.py @@ -389,7 +389,7 @@ class vimconnector(vimconn.vimconnector): subnet = {"id": subnet_id, "fault": str(e)} subnets.append(subnet) net["subnets"] = subnets - net["network_type"] = net.get('provider:network_type') + net["encapsulation"] = net.get('provider:network_type') net["segmentation_id"] = net.get('provider:segmentation_id') return net @@ -1094,6 +1094,9 @@ class vimconnector(vimconn.vimconnector): 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") @@ -1126,6 +1129,19 @@ class vimconnector(vimconn.vimconnector): 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"]) -- 2.25.1