nsx-powerops icon indicating copy to clipboard operation
nsx-powerops copied to clipboard

docs_discovered_nodes.py: Keys missing in Dict_Properties

Open pehruby opened this issue 5 years ago • 0 comments

NSX-T Version 3.0.2.0.0.16887200

If Dict_Properties dictionary doesn't contain certain keys, the script fails.

The solution is for example this:

           # Fill Discovered Nodes Dict
            Dict_DiscoveredNodes['node_name'] = node.display_name
            Dict_DiscoveredNodes['event_type'] = node.os_type
            Dict_DiscoveredNodes['node_name'] = node.os_version
            Dict_DiscoveredNodes['node_resource_type'] = node.node_type
            Dict_DiscoveredNodes['hostName'] = Dict_Properties['hostName'] if 'hostName' in Dict_Properties else ''
            Dict_DiscoveredNodes['fullName'] = Dict_Properties['fullName'] if 'fullName' in Dict_Properties else ''
            Dict_DiscoveredNodes['managementIp'] = Dict_Properties['managementIp']
            Dict_DiscoveredNodes['domainName'] = Dict_Properties['domainName'] if 'domainName' in Dict_Properties else ''
            Dict_DiscoveredNodes['dnsConfigAddress'] = Dict_Properties['dnsConfigAddress'] if 'dnsConfigAddress' in Dict_Properties else ''
            Dict_DiscoveredNodes['uuid'] = Dict_Properties['uuid']
            Dict_DiscoveredNodes['powerState'] = Dict_Properties['powerState']
            Dict_DiscoveredNodes['inMaintenanceMode'] = Dict_Properties['inMaintenanceMode']
            Dict_DiscoveredNodes['build'] = Dict_Properties['build']
            Dict_DiscoveredNodes['vendor'] = Dict_Properties['vendor']
            Dict_DiscoveredNodes['model'] = Dict_Properties['model']
            Dict_DiscoveredNodes['serialNumber'] = Dict_Properties['serialNumber']
            Dict_DiscoveredNodes['connectionState'] = Dict_Properties['connectionState']
            Dict_DiscoveredNodes['licenseProductName'] = Dict_Properties['licenseProductName']
            Dict_DiscoveredNodes['licenseProductVersion'] = Dict_Properties['licenseProductVersion']
            Dict_DiscoveredNodes['managementServerIp'] = Dict_Properties['managementServerIp']
            Dict_DiscoveredNodes['lockdownMode'] = Dict_Properties['lockdownMode'] if 'lockdownMode' in Dict_Properties else ''
            Dict_DiscoveredNodes['dasHostState'] = Dict_Properties['dasHostState']
            NSX_Config['DiscoveredNodes'].append(Dict_DiscoveredNodes)

            # write one line for a node
            XLS_Lines.append([node.display_name,node.os_type, node.os_version, node.node_type,Dict_DiscoveredNodes['hostName'], Dict_DiscoveredNodes['fullName'], Dict_Properties['managementIp'], Dict_DiscoveredNodes['domainName'], Dict_DiscoveredNodes['dnsConfigAddress'], Dict_Properties['uuid'], Dict_Properties['powerState'], Dict_Properties['inMaintenanceMode'], Dict_Properties['build'], Dict_Properties['vendor'], Dict_Properties['model'], Dict_Properties['serialNumber'], Dict_Properties['connectionState'], Dict_Properties['licenseProductName'], Dict_Properties['licenseProductVersion'], Dict_Properties['managementServerIp'], Dict_DiscoveredNodes['lockdownMode'], Dict_Properties['dasHostState']])

In docs_summary.py there is a similar problem with alarm_count key

def GetEntity(json, tab):
    if 'entities' in json: 
        for entity in json['entities']:
            tab.append([entity['entity'], str(entity['count']), str(entity['alarm_count'] if 'alarm_count' in entity else ''), entity['status']])

    return tab

pehruby avatar Mar 08 '21 15:03 pehruby