diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2015-10-12 14:30:40 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2015-10-12 14:44:31 +0200 |
commit | bd4df767c6faf423b84f54d3489df32a535da348 (patch) | |
tree | 237ac913ddb89ec254dfba3842d852d67fa33358 /examples | |
parent | 83ac84cd7a81db4ee676093373f368952b421cf3 (diff) | |
download | NetworkManager-bd4df767c6faf423b84f54d3489df32a535da348.tar.gz |
examples: add python GI example for retrieving LLDP neighbors
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/python/gi/get-lldp-neighbors.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/python/gi/get-lldp-neighbors.py b/examples/python/gi/get-lldp-neighbors.py new file mode 100755 index 0000000000..03690d5a78 --- /dev/null +++ b/examples/python/gi/get-lldp-neighbors.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# +# vim: ft=python ts=4 sts=4 sw=4 et ai +# -*- Mode: Python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Copyright (C) 2015 Red Hat, Inc. +# + +import sys +from gi.repository import GLib, NM + +# This example shows how to get a list of LLDP neighbors for a given interface. + +main_loop = None + +if __name__ == "__main__": + if len(sys.argv) != 2: + sys.exit('Usage: %s <interface>' % sys.argv[0]) + dev_iface = sys.argv[1] + + c = NM.Client.new(None) + dev = c.get_device_by_iface(dev_iface) + if dev is None: + sys.exit('Device \'%s\' not found' % dev_iface) + + neighbors = dev.get_lldp_neighbors() + for neighbor in neighbors: + ret, chassis = neighbor.get_attr_string_value('chassis-id') + ret, port = neighbor.get_attr_string_value('port-id') + print "Neighbor: %s - %s" % (chassis, port) + for attr in neighbor.get_attr_names(): + attr_type = neighbor.get_attr_type(attr) + if attr_type.equal(GLib.VariantType.new('s')): + ret, value = neighbor.get_attr_string_value(attr) + print " %-32s: %s" % (attr, value) + elif attr_type.equal(GLib.VariantType.new('u')): + ret, value = neighbor.get_attr_uint_value(attr) + print " %-32s: %u" % (attr, value) |