summaryrefslogtreecommitdiff
path: root/ironic_python_agent/netutils.py
diff options
context:
space:
mode:
authorzhengyong <zhengy23@163.com>2018-01-21 22:44:33 +0800
committerKaifeng Wang <kaifeng.w@gmail.com>2018-07-24 09:22:40 +0800
commit561be773031ff071b576e5dab2e1d2ded28c1ced (patch)
treed72e8ff587f628145bd46de8517070d88e07ffd2 /ironic_python_agent/netutils.py
parent9008a5cd303e93cfef95f4069135f34097874410 (diff)
downloadironic-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.py15
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)