X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=vimconn_openstack.py;h=9b9a2c0fb387a09e7de10c1e7def059f5368d0f4;hb=867ffe95de6cadcc001e0a57ed26750ba8c01a32;hp=b501d9da28ca3605d4b7a3600e538936aa28d7f4;hpb=b3d367468fb470724f4846bed34af7859e136524;p=osm%2FRO.git diff --git a/vimconn_openstack.py b/vimconn_openstack.py index b501d9da..9b9a2c0f 100644 --- a/vimconn_openstack.py +++ b/vimconn_openstack.py @@ -389,6 +389,8 @@ class vimconnector(vimconn.vimconnector): 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): @@ -1092,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 + compute_node: #identification of compute node where PF,VF interface is allocated + pci: #PCI address of the NIC that hosts the PF,VF + vlan: #physical VLAN used for VF ''' vm_dict={} self.logger.debug("refresh_vms status: Getting tenant VM instance information from VIM") @@ -1124,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["compute_node"] = vm_vim['OS-EXT-SRV-ATTR:host'] + interface["pci"] = None + if port['binding:profile'].get('pci_slot'): + # 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 + # CHANGE DDDD:BB:SS.F to DDDD:BB:00.(F%2) assuming there are 2 ports per nic + pci = port['binding:profile']['pci_slot'] + # interface["pci"] = pci[:-4] + "00." + str(int(pci[-1]) % 2) + interface["pci"] = pci + interface["vlan"] = None + network = self.neutron.show_network(port["network_id"]) + if network['network'].get('provider:network_type') == 'vlan': + interface["vlan"] = network['network'].get('provider:segmentation_id') ips=[] #look for floating ip address floating_ip_dict = self.neutron.list_floatingips(port_id=port["id"])