Bug 1427608

Summary: [RFE] Extraction of network information from inspected overcloud nodes
Product: Red Hat OpenStack Reporter: Ramon Acedo <racedoro>
Component: openstack-ironic-inspectorAssignee: Bob Fournier <bfournie>
Status: CLOSED ERRATA QA Contact: Alexander Chuzhoy <sasha>
Severity: high Docs Contact:
Priority: high    
Version: 11.0 (Ocata)CC: bfournie, brault, gideon.agmon, mburns, mlammon, sclewis, slinaber
Target Milestone: Upstream M3Keywords: FutureFeature, TestOnly, Triaged
Target Release: 11.0 (Ocata)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-05-17 20:02:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 1266597, 1336839, 1425176    

Description Ramon Acedo 2017-02-28 17:28:29 UTC
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.

Comment 1 Ramon Acedo 2017-02-28 17:35:58 UTC
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
}

Comment 2 Alexander Chuzhoy 2017-02-28 20:21:43 UTC
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

Comment 3 Alexander Chuzhoy 2017-02-28 20:38:41 UTC
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

Comment 6 Alexander Chuzhoy 2017-03-22 17:23:28 UTC
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.

Comment 7 errata-xmlrpc 2017-05-17 20:02:46 UTC
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