diff options
author | zhengyong <zhengy23@163.com> | 2018-01-21 22:44:33 +0800 |
---|---|---|
committer | Kaifeng Wang <kaifeng.w@gmail.com> | 2018-07-24 09:22:40 +0800 |
commit | 561be773031ff071b576e5dab2e1d2ded28c1ced (patch) | |
tree | d72e8ff587f628145bd46de8517070d88e07ffd2 /ironic_python_agent/netutils.py | |
parent | 9008a5cd303e93cfef95f4069135f34097874410 (diff) | |
download | ironic-python-agent-561be773031ff071b576e5dab2e1d2ded28c1ced.tar.gz |
Collect IPv6 address during introspection
This patch adds support to retrieve IPv6 address.
A new field ``ipv6_address`` is added to NetworkInterface
and store the assigned IPv6 address (if any).
Co-Authored-By: Kaifeng Wang <kaifeng.w@gmail.com>
Change-Id: Ia527a5aa48e3daf66d2be190e43935b38b3bd6f9
Closes-Bug: #1744064
Story: #1744064
Task: #11604
Diffstat (limited to 'ironic_python_agent/netutils.py')
-rw-r--r-- | ironic_python_agent/netutils.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ironic_python_agent/netutils.py b/ironic_python_agent/netutils.py index 9af4e04b..656e61ac 100644 --- a/ironic_python_agent/netutils.py +++ b/ironic_python_agent/netutils.py @@ -203,15 +203,24 @@ def _get_lldp_info(interfaces): return lldp_info -def get_ipv4_addr(interface_id): +def get_default_ip_addr(type, interface_id): + """Retrieve default IPv4 or IPv6 address.""" try: addrs = netifaces.ifaddresses(interface_id) - return addrs[netifaces.AF_INET][0]['addr'] + return addrs[type][0]['addr'] except (ValueError, IndexError, KeyError): - # No default IPv4 address found + # No default IP address found return None +def get_ipv4_addr(interface_id): + return get_default_ip_addr(netifaces.AF_INET, interface_id) + + +def get_ipv6_addr(interface_id): + return get_default_ip_addr(netifaces.AF_INET6, interface_id) + + def get_mac_addr(interface_id): try: addrs = netifaces.ifaddresses(interface_id) |