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"