nsx-powerops
nsx-powerops copied to clipboard
docs_discovered_nodes.py: Keys missing in Dict_Properties
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