diff options
author | Steve McIntyre <steve.mcintyre@linaro.org> | 2018-02-07 00:57:49 +0000 |
---|---|---|
committer | Steve McIntyre <steve.mcintyre@linaro.org> | 2018-02-07 00:57:49 +0000 |
commit | dfeac09a07e353fb9ce1509a85dd851c1f065523 (patch) | |
tree | 7fe7502c0fd2046f1aaf8ccb150bceb90c4200fb | |
parent | ca115d29c8db3ddc1797555c2c127d8dba0a8d41 (diff) |
Plumbed through the get_port_mode() API call
Change-Id: I68257b747a21a84f6898cdeaaa8169e928a3b355
-rw-r--r-- | db/db.py | 12 | ||||
-rw-r--r-- | util.py | 2 | ||||
-rwxr-xr-x | vland-admin | 17 |
3 files changed, 31 insertions, 0 deletions
@@ -549,6 +549,18 @@ class VlanDB: def get_current_vlan_id_by_port(self, port_id): return self._get_element("current_vlan_id", "port", "port_id", int(port_id)) + # Simple lookup: look up a port by ID, and return the mode of that port. + # + # Returns None on failure. + def get_port_mode(self, port_id): + is_trunk = self._get_element("is_trunk", "port", "port_id", int(port_id)) + if is_trunk is not None: + if is_trunk: + return "trunk" + else: + return "access" + return None + # Simple lookup: look up a port by ID, and return the base VLAN # id of that port. # @@ -101,6 +101,8 @@ class VlanUtil: ret = db.get_ports_by_current_vlan(data['vlan_id']) elif command == 'db.get_ports_by_base_vlan': ret = db.get_ports_by_base_vlan(data['vlan_id']) + elif command == 'db.get_port_mode': + ret = db.get_port_mode(data['port_id']) elif command == 'db.get_ports_by_trunk': ret = db.get_ports_by_trunk(data['trunk_id']) elif command == 'db.get_vlan_by_id': diff --git a/vland-admin b/vland-admin index 96a7cfc..f635699 100755 --- a/vland-admin +++ b/vland-admin @@ -698,6 +698,23 @@ elif args.which == 'lookup_ports_by_trunk': except InputError as inst: print 'Failed: %s' % inst exitcode = Error.FAILED +elif args.which == 'get_port_mode': + try: + mode = call_vland('db_query', + {'command':'db.get_port_mode', + 'data': + {'port_id': args.port_id}}) + if mode is not None: + print 'port_id %s is in mode %s' % (args.port_id, mode) + else: + print 'No port found for port_id %s' % args.port_id + exitcode = Error.NOTFOUND + except InputError as inst: + print 'Failed: %s' % inst + exitcode = Error.FAILED + except NotFoundError as inst: + print 'Failed: %s' % inst + exitcode = Error.NOTFOUND elif args.which == 'set_port_mode': try: port_id = call_vland('vlan_update', |