Show correct ipv6 address in System Monitor (#114024)

This commit is contained in:
G Johansson 2024-03-23 11:24:17 +01:00 committed by GitHub
parent ce48e6e574
commit 7b0abb00aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 23 additions and 3 deletions

View File

@ -7,6 +7,7 @@ import contextlib
from dataclasses import dataclass
from datetime import datetime
from functools import lru_cache
import ipaddress
import logging
import socket
import sys
@ -136,6 +137,11 @@ def get_ip_address(
if entity.argument in addresses:
for addr in addresses[entity.argument]:
if addr.family == IF_ADDRS_FAMILY[entity.entity_description.key]:
address = ipaddress.ip_address(addr.address)
if address.version == 6 and (
address.is_link_local or address.is_loopback
):
continue
return addr.address
return None

View File

@ -129,7 +129,21 @@ def mock_psutil(mock_process: list[MockProcess]) -> Generator:
"255.255.255.0",
"255.255.255.255",
None,
)
),
snicaddr(
socket.AF_INET6,
"fe80::baf2:8a90:4f78:b1cb%end0",
"ffff:ffff:ffff:ffff::",
None,
None,
),
snicaddr(
socket.AF_INET6,
"2a00:1f:2103:3a01:3333:2222:1111:0000",
"ffff:ffff:ffff:ffff::",
None,
None,
),
],
"eth1": [
snicaddr(

View File

@ -4,7 +4,7 @@
'coordinators': dict({
'data': dict({
'addresses': dict({
'eth0': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
'eth0': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='fe80::baf2:8a90:4f78:b1cb%end0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='2a00:1f:2103:3a01:3333:2222:1111:0000', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None)]",
'eth1': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.10.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
'vethxyzxyz': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='172.16.10.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
}),

View File

@ -95,7 +95,7 @@
})
# ---
# name: test_sensor[System Monitor IPv6 address eth0 - state]
'unknown'
'2a00:1f:2103:3a01:3333:2222:1111:0000'
# ---
# name: test_sensor[System Monitor IPv6 address eth1 - attributes]
ReadOnlyDict({