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 dataclasses import dataclass
from datetime import datetime from datetime import datetime
from functools import lru_cache from functools import lru_cache
import ipaddress
import logging import logging
import socket import socket
import sys import sys
@ -136,6 +137,11 @@ def get_ip_address(
if entity.argument in addresses: if entity.argument in addresses:
for addr in addresses[entity.argument]: for addr in addresses[entity.argument]:
if addr.family == IF_ADDRS_FAMILY[entity.entity_description.key]: 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 addr.address
return None return None

View File

@ -129,7 +129,21 @@ def mock_psutil(mock_process: list[MockProcess]) -> Generator:
"255.255.255.0", "255.255.255.0",
"255.255.255.255", "255.255.255.255",
None, 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": [ "eth1": [
snicaddr( snicaddr(

View File

@ -4,7 +4,7 @@
'coordinators': dict({ 'coordinators': dict({
'data': dict({ 'data': dict({
'addresses': 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)]", '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)]", '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] # 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] # name: test_sensor[System Monitor IPv6 address eth1 - attributes]
ReadOnlyDict({ ReadOnlyDict({