[issue28009] core logic of uuid.getnode() is broken for netstat

Michael Felt report at bugs.python.org
Fri Dec 28 12:46:13 EST 2018


Michael Felt <aixtools at felt.demon.nl> added the comment:

As I am not clear on where to have a more general discussion (in a PR conversation) or here - going to start here because I cannot figure out which comment in the PR to reply to.

Generally, before modifying the test_uuid.py to based tests on uuid.__NODE_GETTERS - these need to be defined.

I have my AIX systems, I found a macos I could do some queries on, and downloaded cygwin and came up with this starting point:

_MACOS = sys.platform == 'darwin'
_WIN32 = sys.platform == 'win32'
_CYGWIN= sys.platform == 'cygwin'
_AIX = sys.platform.startswith("aix")

...

if _AIX:
    _NODE_GETTERS = [_unix_getnode, _netstat_getnode]
elif _MACOS:
    _NODE_GETTERS = [_unix_getnode, _ifconfig_getnode, _netstat_getnode]
elif _CYGWIN:
    _NODE_GETTERS = [_ipconfig_getnode]
elif _WIN32:
    _NODE_GETTERS = [_windll_getnode, _ipconfig_getnode, _netbios_getnode]
else:
    _NODE_GETTERS = [_unix_getnode, _ifconfig_getnode, _ip_getnode,
                          _arp_getnode, _lanscan_getnode, _netstat_getnode]


What I am also wondering - is it worthwhile to have a way to only define the getter() routines a platform can actually use? e.g., On AIX I can call uuid._ipconfig_getter(), but get nonsense. Or is it too much effort?

Finally, can someone with access to other platforms where differences may be expected (e.g., Solaris, hpux, or even different flavors of Linux) - to make this _NODE_GETTERS mode complete (specific).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue28009>
_______________________________________


More information about the Python-bugs-list mailing list