author | Tero Marttila <terom@paivola.fi> |
Mon, 17 Mar 2014 17:31:45 +0200 | |
changeset 384 | caa3dbbdbe83 |
parent 382 | ba47a64f61f9 |
child 386 | 9e1abcf47d27 |
permissions | -rw-r--r-- |
380
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
""" |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
Requirements: |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
5 |
pysnmp |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
6 |
pysnmp-mibs |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
7 |
memoized-property |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
9 |
Setup: |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
./opt/bin/build-pysnmp-mib -o usr/mibs/LLDP-MIB.py etc/mibs/LLDP-MIB |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
Run: |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
PYSNMP_MIB_DIRS=usr/mibs/ ./opt/bin/python ... |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
""" |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
16 |
import pvl.args |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
import pvl.hosts |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
18 |
from pvl.invoke import merge |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
19 |
from pvl.snmp import snmp, lldp |
380
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
20 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
21 |
import logging; log = logging.getLogger('pvl.hosts-lldp') |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
22 |
import optparse |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
23 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
24 |
def hosts_lldp (options, hosts) : |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
25 |
""" |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
26 |
Discover LLDP-supporting hosts. |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
27 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
28 |
Yields Host, LLDPAgent |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
29 |
""" |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
30 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
31 |
for host in hosts : |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
32 |
host_snmp = host.extensions.get('snmp') |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
33 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
34 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
35 |
if not host_snmp : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
36 |
log.debug("%s: skip non-snmp host", host) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
37 |
continue |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
38 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
39 |
elif host.down : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
40 |
log.debug("%s: skip down host", host) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
41 |
continue |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
42 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
43 |
else : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
44 |
log.debug("%s: %s", host, host_snmp) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
45 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
46 |
agent = lldp.LLDPAgent.apply(options, host.fqdn(), community=host_snmp.get('community')) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
47 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
48 |
try : |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
49 |
local = agent.local |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
50 |
except snmp.SNMPError as ex : |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
51 |
log.warning("%s: %s", host, ex) |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
52 |
continue |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
53 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
54 |
log.info("%s: %s", host, local) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
55 |
|
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
56 |
if local['sys_name'] != host.host : |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
57 |
log.warning("%s: SNMP sys_name mismatch: %s", host, local['sys_name']) |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
58 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
59 |
yield host, agent |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
60 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
61 |
def apply_hosts_lldp (options, hosts) : |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
62 |
""" |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
63 |
Query host LLDP info. |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
64 |
""" |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
65 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
66 |
_hosts_lldp = list(hosts_lldp(options, hosts)) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
67 |
hosts_by_chassis = { } |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
68 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
69 |
# first pass to discover hosts |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
70 |
for host, agent in _hosts_lldp : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
71 |
chassis = agent.local['chassis'] |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
72 |
log.info("%s: %s", host, chassis) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
73 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
74 |
hosts_by_chassis[chassis] = host |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
75 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
76 |
# second pass to discver links |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
77 |
for host, agent in _hosts_lldp : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
78 |
for port, remote in agent.remotes() : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
79 |
port = agent.port(port) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
80 |
|
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
81 |
remote_chassis = remote['chassis'] |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
82 |
remote_host = hosts_by_chassis.get(remote_chassis) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
83 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
84 |
log.info("%s: %s: %s (%s)", host, port, remote, remote_host) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
85 |
|
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
86 |
yield host, merge(agent.local, port), remote, remote_host |
380
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
87 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
88 |
def main (argv) : |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
89 |
""" |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
90 |
SNMP polling. |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
91 |
""" |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
92 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
93 |
parser = optparse.OptionParser(main.__doc__) |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
94 |
parser.add_option_group(pvl.args.parser(parser)) |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
95 |
parser.add_option_group(pvl.hosts.optparser(parser)) |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
96 |
parser.add_option_group(pvl.snmp.snmp.options(parser)) |
380
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
97 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
98 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
99 |
options, args = parser.parse_args(argv[1:]) |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
100 |
pvl.args.apply(options) |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
101 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
102 |
# input |
382
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
103 |
hosts = pvl.hosts.apply(options, args) |
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
104 |
|
ba47a64f61f9
pvl.hosts-lldp: refactor lldp collection schema
Tero Marttila <terom@paivola.fi>
parents:
380
diff
changeset
|
105 |
# apply |
384
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
106 |
for host, local, remote, remote_host in apply_hosts_lldp(options, hosts) : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
107 |
if remote_host : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
108 |
print "{host:30} {local[port]:25} <-> {remote[port]:25} {remote_host:30}".format(host=host, local=local, remote=remote, remote_host=remote_host) |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
109 |
else : |
caa3dbbdbe83
split upt pvl.hosts-lldp into pvl.snmp.snmp and pvl.snmp.lldp, match remote hosts, better formatting
Tero Marttila <terom@paivola.fi>
parents:
382
diff
changeset
|
110 |
print "{host:30} {local[port]:25} <-- {remote[port]:25} # {remote[chassis]} ({remote[sys_name]})".format(host=host, local=local, remote=remote) |
380
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
111 |
|
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
112 |
if __name__ == '__main__': |
78f192fe9e2c
pvl.hosts-lldp: snmp-based lldp discovery of connected switches
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
113 |
pvl.args.main(main) |