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
This commit is contained in:
ironic_python_agent
releasenotes/notes
@ -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)
|
||||
|
Reference in New Issue
Block a user