diff --git a/brian_polling_manager/interface_stats/vendors/common.py b/brian_polling_manager/interface_stats/vendors/common.py
index be465560fb801bcb4b4525eff1ef62e1a96da446..6ee44e4f6aabf4bc87a5e7cf72a6334180638ba2 100644
--- a/brian_polling_manager/interface_stats/vendors/common.py
+++ b/brian_polling_manager/interface_stats/vendors/common.py
@@ -14,17 +14,17 @@ BRIAN_POINT_FIELDS_SCHEMA = {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
- "egressOctets": {"type": "integer"},
- "egressPackets": {"type": "integer"},
- "ingressOctets": {"type": "integer"},
- "ingressPackets": {"type": "integer"},
- "egressOctetsv6": {"type": "integer"},
- "egressPacketsv6": {"type": "integer"},
- "ingressOctetsv6": {"type": "integer"},
- "ingressPacketsv6": {"type": "integer"},
- "egressErrors": {"type": "integer"},
- "ingressDiscards": {"type": "integer"},
- "ingressErrors": {"type": "integer"},
+ "egressOctets": {"type": "number"},
+ "egressPackets": {"type": "number"},
+ "ingressOctets": {"type": "number"},
+ "ingressPackets": {"type": "number"},
+ "egressOctetsv6": {"type": "number"},
+ "egressPacketsv6": {"type": "number"},
+ "ingressOctetsv6": {"type": "number"},
+ "ingressPacketsv6": {"type": "number"},
+ "egressErrors": {"type": "number"},
+ "ingressDiscards": {"type": "number"},
+ "ingressErrors": {"type": "number"},
},
"required": [
"egressOctets",
diff --git a/brian_polling_manager/interface_stats/vendors/juniper.py b/brian_polling_manager/interface_stats/vendors/juniper.py
index 2c88adefaa980a56df017d7e3cebcdb2d9bef89d..eaf55c8ede9eb52e72fba032841ec6b3fd80a26d 100644
--- a/brian_polling_manager/interface_stats/vendors/juniper.py
+++ b/brian_polling_manager/interface_stats/vendors/juniper.py
@@ -61,6 +61,7 @@ PHYSICAL_INTERFACE_COUNTERS = {
# "l2_output_unicast": {"path": "./ethernet-mac-statistics/output-unicasts"},
},
"errors": {
+ "__defaults__": {"transform": int},
"input_fifo_errors": {"path": "./input-error-list/input-fifo-errors"},
"input_discards": {"path": "./input-error-list/input-discards"},
"input_drops": {"path": "./input-error-list/input-drops"},
diff --git a/brian_polling_manager/interface_stats/vendors/nokia.py b/brian_polling_manager/interface_stats/vendors/nokia.py
index 76a1360610724b58393c1d9b9a12c71990263b5e..9d54bbd93258c739768ca962fc72cc03c357abe7 100644
--- a/brian_polling_manager/interface_stats/vendors/nokia.py
+++ b/brian_polling_manager/interface_stats/vendors/nokia.py
@@ -39,6 +39,7 @@ INTERFACE_COUNTERS = {
"ingressDiscards": {"path": "./statistics/in-discards"},
},
"errors": {
+ "__defaults__": {"transform": int},
"output_total_errors": {"path": "./statistics/out-errors"},
"input_total_errors": {"path": "./statistics/in-errors"},
"input_discards": {"path": "./statistics/in-discards"},
@@ -67,7 +68,10 @@ INTERFACE_COUNTERS_ALT = {
"egressOctetsv6": {"path": "./ipv6/statistics/out-octets"},
"egressPacketsv6": {"path": "./ipv6/statistics/out-packets"},
},
- "errors": {"output_discards": {"path": "./statistics/ip/out-discard-packets"}},
+ "errors": {
+ "__defaults__": {"transform": int},
+ "output_discards": {"path": "./statistics/ip/out-discard-packets"},
+ },
}
diff --git a/test/interface_stats/test_juniper.py b/test/interface_stats/test_juniper.py
index 8f8096fca94a8739dee99888e3de7c1074073561..6940050389c46709a2440b62bf3188d1ed67989e 100644
--- a/test/interface_stats/test_juniper.py
+++ b/test/interface_stats/test_juniper.py
@@ -200,7 +200,8 @@ def test_validate_interface_counters_and_influx_points_for_all_juniper_routers(
for point in bpoints:
jsonschema.validate(point, influx.INFLUX_POINT)
jsonschema.validate(point["fields"], common.BRIAN_POINT_FIELDS_SCHEMA)
-
+ for value in point['fields'].values():
+ assert isinstance(value, float)
epoints = list(
common.error_points(
juniper_router_fqdn,
@@ -213,7 +214,8 @@ def test_validate_interface_counters_and_influx_points_for_all_juniper_routers(
for point in epoints:
jsonschema.validate(point, influx.INFLUX_POINT)
jsonschema.validate(point["fields"], common.ERROR_POINT_FIELDS_SCHEMA)
-
+ for value in point['fields'].values():
+ assert isinstance(value, int)
class TestGetJuniperNetConf:
RAW_RESPONSE_FILE = "raw-response-juniper-sample.xml"