The patches to allow extracting LLDP information during the inspection of the Overcloud nodes has been merged in Ocata. This means that in OSP 11 we can extract this information following a simple process to query the Swift object associated to each node.
These are the steps documented by bfournier to to test this as it is now (i.e. using 'jq' instead of OSC): 1. Run introspection ``openstack baremetal introspection bulk start`` 2. Get list of Ironic node uuids ``openstack baremetal node list`` 3. Get LLDP data for a particular node and a particular interface The resulting output will give all of the LLDP data received at the port including VLAN info, MTU setting, and link aggregation settings. e.g. for node 962e5384-5893-45ba-9bb7-17cd04120fae and port em1 ``openstack baremetal introspection data save 962e5384-5893-45ba-9bb7-17cd04120fae | jq .all_interfaces.em1.lldp_processed`` { "switch_port_autonegotiation_enabled":true, "switch_port_autonegotiation_support":true, "switch_capabilities_support":[ "Bridge", "Router" ], "switch_port_mtu":9216, "switch_port_id":"554", "switch_port_physical_capabilities":[ "1000BASE-T fdx", "100BASE-TX fdx", "100BASE-TX hdx", "10BASE-T fdx", "10BASE-T hdx", "Asym and Sym PAUSE fdx" ], "switch_port_description":"host02.beaker.tripleo.lab.eng.rdu2 port 1 (Prov/Trunked VLANs)", "switch_capabilities_enabled":[ "Bridge", "Router" ], "switch_port_mau_type":"Unknown", "switch_port_link_aggregation_id":0, "switch_system_name":"sw01-dist-1b-b12.rdu2", "switch_port_link_aggregation_enabled":false, "switch_port_link_aggregation_support":true, "switch_system_description":"Juniper Networks, Inc. ex4200-48t , version 12.3R6.6 Build date: 2014-03-13 08:38:30 UTC ", "switch_port_vlans":[ { "id":101, "name":"vlan101" }, { "id":102, "name":"vlan102" }, { "id":104, "name":"vlan104" }, { "id":201, "name":"vlan201" }, { "id":203, "name":"vlan203" } ], "switch_chassis_id":"64:64:9b:32:f3:00", "switch_port_untagged_vlan_id":102 }
Environment: python-ironicclient-1.11.0-1.el7ost.noarch puppet-ironic-10.3.0-1.el7ost.noarch instack-undercloud-6.0.0-0.20170220135156.d695df8.el7ost.noarch python-ironic-lib-2.5.2-1.el7ost.noarch openstack-ironic-api-7.0.1-0.20170223011831.a13ea4f.el7ost.noarch openstack-ironic-conductor-7.0.1-0.20170223011831.a13ea4f.el7ost.noarch python-ironic-inspector-client-1.11.0-1.el7ost.noarch openstack-ironic-inspector-5.0.1-0.20170214181727.babc2b6.el7ost.noarch openstack-ironic-common-7.0.1-0.20170223011831.a13ea4f.el7ost.noarch Below is what I get (machine with 4 nics em1, em2, p1p1, p1p2): ########################################################################## [stack@undercloud ~]$ openstack baremetal introspection data save 0c117180-c2a4-42c8-a435-655196011803|jq .all_interfaces.em1.lldp_processed { "switch_port_autonegotiation_enabled": true, "switch_port_autonegotiation_support": true, "switch_capabilities_support": [ "Bridge", "Router" ], "switch_port_mtu": 1514, "switch_port_id": "596", "switch_port_physical_capabilities": [ "1000BASE-T fdx", "100BASE-TX fdx", "100BASE-TX hdx", "10BASE-T fdx", "10BASE-T hdx", "Asym and Sym PAUSE fdx" ], "switch_port_description": "ge-0/0/46.0", "switch_capabilities_enabled": [ "Bridge", "Router" ], "switch_port_mau_type": "Unknown", "switch_port_link_aggregation_id": 0, "switch_system_name": "sw07-dist-lab4.bos", "switch_port_link_aggregation_enabled": false, "switch_port_link_aggregation_support": true, "switch_system_description": "Juniper Networks, Inc. ex4200-48t , version 12.3R3.4 Build date: 2013-06-14 01:38:46 UTC ", "switch_port_vlans": [ { "id": 162, "name": "vlan162" } ], "switch_chassis_id": "08:81:f4:a6:b3:80", "switch_port_untagged_vlan_id": 162 } ########################################################################## [stack@undercloud ~]$ openstack baremetal introspection data save 0c117180-c2a4-42c8-a435-655196011803|jq .all_interfaces.em2.lldp_processed { "switch_port_autonegotiation_enabled": true, "switch_port_autonegotiation_support": true, "switch_capabilities_support": [ "Bridge", "Router" ], "switch_port_mtu": 1514, "switch_port_id": "1173", "switch_port_physical_capabilities": [ "1000BASE-T fdx", "100BASE-TX fdx", "100BASE-TX hdx", "10BASE-T fdx", "10BASE-T hdx", "Asym and Sym PAUSE fdx" ], "switch_port_description": "ge-5/0/47.0", "switch_capabilities_enabled": [ "Bridge", "Router" ], "switch_port_mau_type": "Unknown", "switch_port_link_aggregation_id": 0, "switch_system_name": "sw07-dist-lab4.bos", "switch_port_link_aggregation_enabled": false, "switch_port_link_aggregation_support": true, "switch_system_description": "Juniper Networks, Inc. ex4200-48t , version 12.3R3.4 Build date: 2013-06-14 01:38:46 UTC ", "switch_port_vlans": [ { "id": 182, "name": "vlan182" }, { "id": 183, "name": "vlan183" } ], "switch_chassis_id": "08:81:f4:a6:b3:80", "switch_port_untagged_vlan_id": 182 } ########################################################################## [stack@undercloud ~]$ openstack baremetal introspection data save 0c117180-c2a4-42c8-a435-655196011803|jq .all_interfaces.p1p1.lldp_processed { "switch_port_mtu": 1514, "switch_port_autonegotiation_enabled": true, "switch_port_autonegotiation_support": true, "switch_capabilities_support": [ "Bridge", "Router" ], "switch_mgmt_addresses": [ "10.19.184.29" ], "switch_port_id": "555", "switch_port_physical_capabilities": [ "1000BASE-T fdx", "100BASE-TX fdx", "100BASE-TX hdx", "10BASE-T fdx", "10BASE-T hdx", "Asym and Sym PAUSE fdx" ], "switch_port_description": "ge-0/0/26.0", "switch_capabilities_enabled": [ "Bridge", "Router" ], "switch_port_mau_type": "Unknown", "switch_port_link_aggregation_id": 0, "switch_system_name": "rhos-compute-node-sw1", "switch_port_link_aggregation_enabled": false, "switch_port_link_aggregation_support": true, "switch_system_description": "Juniper Networks, Inc. ex4200-48t , version 12.3R4.6 Build date: 2013-09-13 04:12:57 UTC ", "switch_port_vlans": [ { "id": 101, "name": "RHOS13-PXE" } ], "switch_chassis_id": "64:64:9b:31:12:00", "switch_port_untagged_vlan_id": 101 } ########################################################################## [stack@undercloud ~]$ openstack baremetal introspection data save 0c117180-c2a4-42c8-a435-655196011803|jq .all_interfaces.p1p2.lldp_processed { "switch_port_mtu": 1514, "switch_port_autonegotiation_enabled": true, "switch_port_autonegotiation_support": true, "switch_capabilities_support": [ "Bridge", "Router" ], "switch_mgmt_addresses": [ "10.19.184.29" ], "switch_port_id": "558", "switch_port_physical_capabilities": [ "1000BASE-T fdx", "100BASE-TX fdx", "100BASE-TX hdx", "10BASE-T fdx", "10BASE-T hdx", "Asym and Sym PAUSE fdx" ], "switch_port_description": "ge-0/0/27.0", "switch_capabilities_enabled": [ "Bridge", "Router" ], "switch_port_mau_type": "Unknown", "switch_port_link_aggregation_id": 0, "switch_system_name": "rhos-compute-node-sw1", "switch_port_link_aggregation_enabled": false, "switch_port_link_aggregation_support": true, "switch_system_description": "Juniper Networks, Inc. ex4200-48t , version 12.3R4.6 Build date: 2013-09-13 04:12:57 UTC ", "switch_port_vlans": [ { "id": 103, "name": "RHOS13-Storagemgmt" }, { "id": 102, "name": "RHOS13-Tenant" }, { "id": 18, "name": "__test-vlan-range18-43_18__" }, { "id": 20, "name": "__test-vlan-range18-43_20__" }, { "id": 42, "name": "__test-vlan-range18-43_42__" } ], "switch_chassis_id": "64:64:9b:31:12:00", "switch_port_untagged_vlan_id": 102 } ########################################################################## Checking non existing nic: [stack@undercloud ~]$ openstack baremetal introspection data save 0c117180-c2a4-42c8-a435-655196011803|jq .all_interfaces.p1p3.lldp_processed null
Tried the same on a virtual setup (no lldp): [stack@undercloud-0 ~]$ openstack baremetal introspection data save 34943eb5-5628-48ee-8009-6166c26c75ad|jq .all_interfaces.eth0.lldp_processed null
Verified: Environment: instack-undercloud-6.0.0-2.el7ost.noarch openstack-ironic-inspector-5.0.0-2.el7ost.noarch python-ironic-inspector-client-1.11.0-0.20170208193115.481a92e.el7ost.noarch openstack-ironic-common-7.0.1-0.20170301202959.91540cd.el7ost.noarch python-ironicclient-1.11.0-0.20170208194603.f1f10cb.el7ost.noarch openstack-ironic-api-7.0.1-0.20170301202959.91540cd.el7ost.noarch puppet-ironic-10.3.0-1.el7ost.noarch openstack-ironic-conductor-7.0.1-0.20170301202959.91540cd.el7ost.noarch python-ironic-lib-2.5.2-0.20170208212103.ace87b6.el7ost.noarch The functionality is there and tested.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:1245