/usr/lib/python3/dist-packages/pyroute2/devlink.py is in python3-pyroute2 0.4.21-0.1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | from pyroute2.netlink import NLM_F_REQUEST
from pyroute2.netlink import NLM_F_DUMP
from pyroute2.netlink.devlink import DevlinkSocket
from pyroute2.netlink.devlink import devlinkcmd
from pyroute2.netlink.devlink import DEVLINK_NAMES
class DL(DevlinkSocket):
def __init__(self, *argv, **kwarg):
# get specific groups kwarg
if 'groups' in kwarg:
groups = kwarg['groups']
del kwarg['groups']
else:
groups = None
# get specific async kwarg
if 'async' in kwarg:
async = kwarg['async']
del kwarg['async']
else:
async = False
# align groups with async
if groups is None:
groups = ~0 if async else 0
# continue with init
super(DL, self).__init__(*argv, **kwarg)
# do automatic bind
# FIXME: unfortunately we can not omit it here
try:
self.bind(groups, async)
except:
# thanks to jtluka at redhat.com and the LNST
# team for the fixed fd leak
super(DL, self).close()
raise
def list(self):
return self.get_dump()
def get_dump(self):
msg = devlinkcmd()
msg['cmd'] = DEVLINK_NAMES['DEVLINK_CMD_GET']
return self.nlm_request(msg,
msg_type=self.prid,
msg_flags=NLM_F_REQUEST | NLM_F_DUMP)
def port_list(self):
return self.get_port_dump()
def get_port_dump(self):
msg = devlinkcmd()
msg['cmd'] = DEVLINK_NAMES['DEVLINK_CMD_PORT_GET']
return self.nlm_request(msg,
msg_type=self.prid,
msg_flags=NLM_F_REQUEST | NLM_F_DUMP)
|