resource-key-name:[filename,datastore_type,resource-url,container-name,list-title]
"""
DSMAP = {
- 'bindings': ['service-bindings.log', 'config',
+ 'bindings': ['service-bindings.json', 'config',
'interface-service-bindings:service-bindings',
'service-bindings', 'services-info'],
- 'dpnendpoints': ['dpn-endpoints.log', 'config', 'itm-state:dpn-endpoints',
+ 'dpnendpoints': ['dpn-endpoints.json', 'config', 'itm-state:dpn-endpoints',
'dpn-endpoints', 'DPN-TEPs-info'],
- 'elaninstances': ['elan-instances.log', 'config', 'elan:elan-instances',
+ 'elaninstances': ['elan-instances.json', 'config', 'elan:elan-instances',
'elan-instances', 'elan-instance'],
- 'elaninterfaces': ['elan-interfaces.log', 'config', 'elan:elan-interfaces',
+ 'elaninterfaces': ['elan-interfaces.json', 'config', 'elan:elan-interfaces',
'elan-interfaces', 'elan-interface'],
- 'fibentries': ['fibentries.log', 'config', 'odl-fib:fibEntries',
+ 'fibentries': ['fibentries.json', 'config', 'odl-fib:fibEntries',
'fibEntries', 'vrfTables'],
- 'idpools': ['idpools.log', 'config', 'id-manager:id-pools',
+ 'idpools': ['idpools.json', 'config', 'id-manager:id-pools',
'id-pools', 'id-pool'],
- 'ifconfig': ['iface-config.log', 'config', 'ietf-interfaces:interfaces',
+ 'ifconfig': ['iface-config.json', 'config', 'ietf-interfaces:interfaces',
'interfaces', 'interface'],
- 'itmconfig': ['itm-config.log', 'config' 'itm-state:dpn-teps-state',
+ 'itmconfig': ['itm-config.json', 'config', 'itm-state:dpn-teps-state',
'dpn-teps-state', 'dpns-teps'],
- 'ifindexes': ['ifindexes.log', 'operational',
+ 'ifindexes': ['ifindexes.json', 'operational',
'odl-interface-meta:if-indexes-interface-map',
'if-indexes-interface-map', 'if-index-interface'],
- 'ifstate': ['ifstate.log', 'operational',
+ 'ifstate': ['ifstate.json', 'operational',
'ietf-interfaces:interfaces-state',
'interfaces-state', 'interface'],
- 'inventory': ['inventory-config.log', 'config',
+ 'inventory': ['inventory-config.json', 'config',
'opendaylight-inventory:nodes', 'nodes', 'node'],
- 'neutronports': ['neutron-ports.log', 'config', 'neutron:neutron/ports',
+ 'neutronports': ['neutron-ports.json', 'config', 'neutron:neutron/ports',
'ports', 'port'],
- 'neutronvpn-portip': ['neutronvpn-portip-port.log', 'config',
+ 'neutronvpn-portip': ['neutronvpn-portip-port.json', 'config',
'neutronvpn:neutron-vpn-portip-port-data',
'neutron-vpn-portip-port-data',
'vpn-portip-to-port'],
- 'neutrontrunks': ['neutron-trunks.log', 'config', 'neutron:neutron/trunks',
+ 'neutrontrunks': ['neutron-trunks.json', 'config', 'neutron:neutron/trunks',
'trunks', 'trunk'],
- 'tunconfig-external': ['tunnel-config-external.log', 'config',
+ 'tunconfig-external': ['tunnel-config-external.json', 'config',
'itm-state:external-tunnel-list',
'external-tunnel-list', 'external-tunnel'],
- 'tunconfig': ['tunnel-config.log', 'config', 'itm-state:tunnel-list',
+ 'tunconfig': ['tunnel-config.json', 'config', 'itm-state:tunnel-list',
'tunnel-list', 'internal-tunnel'],
- 'tunstate': ['tunnel-state.log', 'operational', 'itm-state:tunnels_state',
+ 'tunstate': ['tunnel-state.json', 'operational', 'itm-state:tunnels_state',
'tunnels_state', 'state-tunnel-list'],
- 'vpninstance-to-vpnid': ['vpninstance-to-vpnid.log', 'config',
+ 'vpninstance-to-vpnid': ['vpninstance-to-vpnid.json', 'config',
'odl-l3vpn:vpn-instance-to-vpn-id',
'vpn-instance-to-vpn-id', 'vpn-instance'],
- 'vpninterfaces': ['vpn-interfaces.log', 'config', 'l3vpn:vpn-interfaces',
+ 'vpninterfaces': ['vpn-interfaces.json', 'config', 'l3vpn:vpn-interfaces',
'vpn-interfaces', 'vpn-interface']
}
ifstates = dsg.get_interface_states()
iface,ifstate,port,tunnel,tunState = by_ifname(ifname)
print "InterfaceConfig: "
- utils.pretty_print(iface)
+ json.dumps(iface, indent=2)
print "InterfaceState: "
- utils.pretty_print(ifstate)
+ json.dumps(ifstate, indent=2)
if port:
print "NeutronPort: "
- utils.pretty_print(port)
+ json.dumps(port, indent=2)
analyze_neutron_port(port, iface, ifstate)
return
if tunnel:
print "Tunnel: "
- utils.pretty_print(tunnel)
+ json.dumps(tunnel, indent=2)
if tunState:
print "TunState: "
- utils.pretty_print(tunState)
+ json.dumps(tunState, indent=2)
if ifstate:
ncId = ifstate.get('lower-layer-if')[0]
nodeId = ncId[:ncId.rindex(':')]
def analyze_neutron_port(port, iface, ifstate):
for flow in utils.sort(get_all_flows(['all']), 'table'):
if ((flow.get('ifname') == port['uuid']) or
- (flow.get('lport') and flow['lport'] == ifstate.get('if-index')) or
+ (flow.get('lport') and ifstate and flow['lport'] == ifstate.get('if-index')) or
(iface['name'] == flow.get('ifname'))):
result = 'Table:{},FlowId:{}{}'.format(
flow['table'], flow['id'],
flow_list = []
print "Flows:"
for table in tables:
- for flow in table.get('flow'):
+ for flow in table.get('flow', []):
if not ifName or ifName in utils.nstr(flow.get('flow-name')):
flow_dict = {}
flow_dict['table'] = table['id']
group_dict = defaultdict(dict)
for node in of_nodes.itervalues():
dpnid = utils.get_dpn_from_ofnodeid(node['id'])
- for group in node[const.NODE_GROUP]:
+ for group in node.get(const.NODE_GROUP, []):
if group_dict.get(dpnid) and group_dict.get(dpnid).get(group[key]):
print 'Duplicate:', dpnid, group[key]
group_dict[dpnid][group[key]] = group
print 'SubPort:{},Table:{},FlowStatus:{}'.format(
subport.get('port-id'), flow.get('table'), flow_status)
+def get_all_dumps():
+ dsg.get_all_dumps()
+
def main(args=None):
options, args = utils.parse_args()