sysmon: Report network addresses as metrics
BUG=chromium:757494
TEST=unittests, manually run sysmon to verify metrics
Change-Id: I7f5f0fe7170ce178bfd746ce54af266de28ce1ad
Reviewed-on: https://chromium-review.googlesource.com/624461
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
diff --git a/scripts/sysmon/net_metrics_unittest.py b/scripts/sysmon/net_metrics_unittest.py
index 08a0918..7bc29c4 100644
--- a/scripts/sysmon/net_metrics_unittest.py
+++ b/scripts/sysmon/net_metrics_unittest.py
@@ -10,6 +10,7 @@
from __future__ import print_function
import mock
+import socket
import psutil
@@ -19,6 +20,7 @@
snetio = psutil._common.snetio
snicstats = psutil._common.snicstats
+snic = psutil._common.snic
class TestNetMetrics(cros_test_lib.TestCase):
@@ -34,7 +36,8 @@
with mock.patch('psutil.net_io_counters', autospec=True) \
as net_io_counters, \
mock.patch('psutil.net_if_stats', autospec=True) as net_if_stats, \
- mock.patch('socket.getfqdn', autospec=True) as getfqdn:
+ mock.patch('socket.getfqdn', autospec=True) as getfqdn, \
+ mock.patch('psutil.net_if_addrs', autospec=True) as net_if_addrs:
net_io_counters.return_value = {
'lo': snetio(
bytes_sent=17247495681, bytes_recv=172474956,
@@ -45,6 +48,17 @@
'lo': snicstats(isup=True, duplex=0, speed=0, mtu=65536),
}
getfqdn.return_value = 'foo.example.com'
+ net_if_addrs.return_value = {
+ 'lo': [
+ snic(family=psutil.AF_LINK, address='11:22:33:44:55:66',
+ netmask=None, broadcast=None, ptp=None),
+ snic(family=socket.AF_INET, address='10.1.1.1', netmask=None,
+ broadcast=None, ptp=None),
+ snic(family=socket.AF_INET6,
+ address='fc00:0000:0000:0000:0000:0000:0000:0001',
+ netmask=None, broadcast=None, ptp=None),
+ ],
+ }
net_metrics.collect_net_info()
setter = self.store.set
@@ -75,6 +89,13 @@
65536, enforce_ge=mock.ANY),
mock.call('net/fqdn', (), None,
'foo.example.com', enforce_ge=mock.ANY),
+ mock.call('dev/net/address', ('AF_LINK', 'lo'), None,
+ '11:22:33:44:55:66', enforce_ge=mock.ANY),
+ mock.call('dev/net/address', ('AF_INET', 'lo',), None,
+ '10.1.1.1', enforce_ge=mock.ANY),
+ mock.call('dev/net/address', ('AF_INET6', 'lo'), None,
+ 'fc00:0000:0000:0000:0000:0000:0000:0001',
+ enforce_ge=mock.ANY),
]
setter.assert_has_calls(calls)
self.assertEqual(len(setter.mock_calls), len(calls))