def test_cluster_missing_item(): section: Dict[str, Dict[str, local.LocalResult]] = { "node0": { "item": local.LocalResult( cached=None, item="Clustered service", state=0, text="Service is OK", perfdata=[], ) }, "node1": {}, } worst = local.cluster_check_local("item", Parameters({}), section) best = local.cluster_check_local( "item", Parameters({"outcome_on_cluster": "best"}), section) assert list(worst) == [ Result(state=state.OK, summary="[node0]: Service is OK"), ] assert list(best) == [ Result(state=state.OK, summary="[node0]: Service is OK"), ]
def test_cluster(): section: Dict[str, Dict[str, local.LocalResult]] = { "node0": { "item": local.LocalResult( cached=None, item="Clustered service", state=0, text="Service is OK", perfdata=[], ) }, "node1": { "item": local.LocalResult( cached=None, item="Clustered service", state=1, text="Service is WARN", perfdata=[], ) }, "node2": { "item": local.LocalResult( cached=None, item="Clustered service", state=2, text="Service is CRIT", perfdata=[], ) }, } worst = local.cluster_check_local("item", Parameters({}), section) best = local.cluster_check_local( "item", Parameters({"outcome_on_cluster": "best"}), section) assert list(worst) == [ Result(state=state.CRIT, notice="[node2]: Service is CRIT"), Result(state=state.OK, notice="[node0]: Service is OK"), Result(state=state.WARN, notice="[node1]: Service is WARN(!)"), ] assert list(best) == [ Result(state=state.OK, summary="[node0]: Service is OK"), Result(state=state.OK, notice="[node1]: Service is WARN(!)"), Result(state=state.OK, notice="[node2]: Service is CRIT(!!)"), ]
def test_check_netscaler_vservers_clustered_best(clustered_vservers): assert list( _check_netscaler_vservers( Parameters({ "health_levels": (100.0, 0.1), "cluster_status": "best", }), clustered_vservers, ) ) == [ Result(state=state.OK, summary='Status: up (node1)'), Result(state=state.OK, summary='Status: busy (node2)'), Result(state=state.WARN, summary='Health: 75.2% (warn/crit below 100%/0.10%)', details='Health: 75.2% (warn/crit below 100%/0.10%)'), Metric('health_perc', 75.2, boundaries=(0.0, 100.0)), Result( state=state.OK, summary='Type: loadbalancing, Protocol: ssl, Socket: 0.0.0.0:0', details='Type: loadbalancing, Protocol: ssl, Socket: 0.0.0.0:0'), Result(state=state.OK, summary='Request rate: 1/s'), Metric('request_rate', 1.0), Result(state=state.OK, summary='In: 16.0 Bit/s'), Metric('if_in_octets', 2.0), Result(state=state.OK, summary='Out: 40.0 Bit/s'), Metric('if_out_octets', 5.0), ]
def test_check_aws_ec2_network_io(): assert list( check_aws_ec2_network_io( "Summary", Parameters({}), { "NetworkIn": 1, "NetworkOut": 2, }, )) == [ Result(state=State.OK, summary='[0]'), Result(state=State.OK, summary='(up)', details='Operational state: up'), Result(state=State.OK, summary='Speed: unknown'), Metric('in', 0.016666666666666666, boundaries=(0.0, None)), Metric('inmcast', 0.0), Metric('inbcast', 0.0), Metric('inucast', 0.0), Metric('innucast', 0.0), Metric('indisc', 0.0), Metric('inerr', 0.0), Metric('out', 0.03333333333333333, boundaries=(0.0, None)), Metric('outmcast', 0.0), Metric('outbcast', 0.0), Metric('outucast', 0.0), Metric('outnucast', 0.0), Metric('outdisc', 0.0), Metric('outerr', 0.0), Metric('outqlen', 0.0), Result(state=State.OK, summary='In: 0.02 B/s'), Result(state=State.OK, summary='Out: 0.03 B/s'), ]
def test_check_mssql_transactionlogs(section): assert list( msdt.check_mssql_transactionlogs( 'MSSQL46.CorreLog_Report_T.CorreLog_Report_T_log', Parameters({}), section, None, ), ) == [ Result( state=state.OK, summary='Used: 16.0 MiB', ), Metric('data_size', 16777216.0, boundaries=(0, 2199023255552.0)), Result( state=state.OK, summary='Allocated used: 16.0 MiB', ), Result( state=state.OK, summary='Allocated: 256 MiB', ), Metric('allocated_size', 268435456.0, boundaries=(0, 2199023255552.0)), Result( state=state.OK, summary="Maximum size: 2.00 TiB", ), ]
def test_discovery_mssql_transactionlogs(section): section_db = msdb.parse_mssql_databases([ ['MSSQL46', 'master', 'ONLINE', 'SIMPLE', '0', '0'], ['MSSQL46', 'tempdb', 'ONLINE', 'SIMPLE', '0', '0'], ['MSSQL46', 'model', 'ONLINE', 'FULL', '0', '0'], ['MSSQL46', 'msdb', 'ONLINE', 'SIMPLE', '0', '0'], ['MSSQL46', 'NOC_CONFIG_T', 'ONLINE', 'FULL', '0', '0'], ['MSSQL46', 'DASH_CONFIG_T', 'ONLINE', 'FULL', '0', '0'], ['MSSQL46', 'NOC_ALARM_T', 'ONLINE', 'FULL', '0', '1'], ['MSSQL46', 'CorreLog_Report_T', 'ONLINE', 'FULL', '0', '0'], ['MSSQL46', 'test_autoclose', 'ONLINE', 'FULL', '1', '0'], ]) assert sorted( msdt.discover_mssql_transactionlogs([Parameters({})], section, section_db), key=lambda s: s.item, # type: ignore[attr-defined] ) == [ Service(item='MSSQL46.CorreLog_Report_T.CorreLog_Report_T_log'), Service(item='MSSQL46.DASH_CONFIG_T.DASH_CONFIG_T_log'), Service(item='MSSQL46.NOC_ALARM_T.NOC_ALARM_T_log'), Service(item='MSSQL46.NOC_CONFIG_T.NOC_CONFIG_T_log'), Service(item='MSSQL46.model.modellog'), Service(item='MSSQL46.test_autoclose.test_autoclose_log'), ]
def test_check_huawei_osn_if(item, params, expected_result): assert list( adva_fsp_if.check_adva_fsp_if( item, Parameters(params), SECTION, )) == expected_result
def test_check_warn_auto_shrink(section): assert list(check_mssql_databases("MSSQL_MSSQL46 NOC_ALARM_T", Parameters({}), section)) == [ Result(state=state.OK, summary="Status: ONLINE"), Result(state=state.OK, summary="Recovery: FULL"), Result(state=state.OK, summary="Auto close: off"), Result(state=state.WARN, summary="Auto shrink: on"), ]
def test_check_winperf_section(): assert list(tcp_conn_stats.check_tcp_connections(Parameters({}), {'ESTABLISHED': 3})) == [ Result( state=State.OK, summary="Established: 3", ), Metric("ESTABLISHED", 3), ]
def test_uptime_check_zero(): with on_time('2018-04-15 16:50', 'CET'): assert list( uptime_utils.check(Parameters({}), uptime_utils.Section( 0, None))) == [ Result(state=State.OK, summary='Up since Apr 15 2018 18:50:00'), Result(state=State.OK, summary='Uptime: 0 seconds'), Metric("uptime", 0.0), ]
def test_check_function(monkeypatch): monkeypatch.setattr( apache_status, "get_value_store", lambda: { 'apache_status_MY CHECK MK_accesses': (0, 62878), 'apache_status_MY CHECK MK_bytes': (0, 104212480.0), }, ) assert list( apache_status.check_apache_status("MY CHECK MK", Parameters({}), SECTION_2) ) == [ Result(state=State.OK, summary='Uptime: 1 day 3 hours'), Metric('Uptime', 99739), Result(state=State.OK, summary='Idle workers: 49'), Metric('IdleWorkers', 49), Result(state=State.OK, summary='Busy workers: 1'), Metric('BusyWorkers', 1), Result(state=State.OK, summary='Total slots: 150'), Metric('TotalSlots', 150), Result(state=State.OK, notice='Open slots: 100'), Metric('OpenSlots', 100), Result(state=State.OK, notice='CPU load: 0.00'), Metric('CPULoad', 0.00482259), Result(state=State.OK, notice='Requests per second: 0.00'), Metric('ReqPerSec', 0.0), Result(state=State.OK, notice='Bytes per request: 1657.38'), Metric('BytesPerReq', 1657.38), Result(state=State.OK, notice='Bytes per second: 0.00'), Metric('BytesPerSec', 0.0), Result(state=State.OK, notice='Total connections: 0'), Metric('ConnsTotal', 0), Result(state=State.OK, notice='Async writing connections: 0'), Metric('ConnsAsyncWriting', 0), Result(state=State.OK, notice='Async keep alive connections: 0'), Metric('ConnsAsyncKeepAlive', 0), Result(state=State.OK, notice='Async closing connections: 0'), Metric('ConnsAsyncClosing', 0), Metric('State_Waiting', 49), Metric('State_StartingUp', 0), Metric('State_ReadingRequest', 0), Metric('State_SendingReply', 1), Metric('State_Keepalive', 0), Metric('State_DNS', 0), Metric('State_Closing', 0), Metric('State_Logging', 0), Metric('State_Finishing', 0), Metric('State_IdleCleanup', 0), Result( state=State.OK, notice=('Scoreboard states:\n Waiting: 49\n SendingReply: 1')), ]
def test_uptime_check_basic(): with on_time('2018-04-15 16:50', 'CET'): assert list( uptime_utils.check(Parameters({}), uptime_utils.Section( 123, None))) == [ Result(state=State.OK, summary='Up since Apr 15 2018 18:47:57'), Result(state=State.OK, summary='Uptime: 2 minutes 3 seconds'), Metric("uptime", 123.0), ]
def test_uptime_solaris_inputs(info, reference): section = uptime.parse_uptime(info) assert section is not None # This time freeze has no correlation with the uptime of the test. It # is needed for the check output to always return the same infotext. # The true test happens on state and perfdata with on_time('2018-04-15 16:50', 'CET'): result = list(uptime_utils.check(Parameters({}), section)) assert result == reference
def test__check_k8s_stats_fs(section, expected_results): vs: ValueStore = {} for _ in range(2): results = list( _check__k8s_stats_fs__core( vs, "/dev/sda1", Parameters({}), section, )) print("\n", "\n".join(str(r) for r in results)) assert results == expected_results
def test_host_labels_ps_no_match_pattern(): section = ( 1, [ ( ps.ps_info("(root,4056,1512,0.0/52-04:56:05,5689)".split() ), # type: ignore[call-arg] ["/usr/lib/ssh/sshd"], ), ]) params = [ Parameters({ "default_params": {}, "descr": "SSH", "match": "~wat?", "label": { 'marco': 'polo' }, }), Parameters({}), ] assert list(ps.host_labels_ps(params, section)) == []
def test_logwatch_discover_single_restrict(monkeypatch): monkeypatch.setattr(logwatch, '_get_discovery_groups', lambda: []) monkeypatch.setattr( logwatch.logwatch, 'get_ec_rule_params', lambda: [Parameters({'restrict_logfiles': [u'.*2']})], ) assert sorted( logwatch.discover_logwatch_single(SECTION2), key=lambda s: s.item, ) == [ Service(item='log1'), Service(item='log5'), ]
def test__check_k8s_stats_network(section, expected_results): vs: ValueStore = {} for _ in range(2): section["timestamp"] = section["timestamp"] + 1 results = list( _check__k8s_stats_network__proxy_results( vs, "eth1", Parameters({}), section, None, )) print("\n", "\n".join(str(r) for r in results)) assert results == expected_results
def test_discovery_mssql_transactionlogs(section): assert sorted( msdt.discover_mssql_transactionlogs([Parameters({})], section), key=lambda s: s.item or "", # type: ignore[attr-defined] ) == [ Service(item='MSSQL46.CorreLog_Report_T.CorreLog_Report_T_log'), Service(item='MSSQL46.DASH_CONFIG_T.DASH_CONFIG_T_log'), Service(item='MSSQL46.NOC_ALARM_T.NOC_ALARM_T_log'), Service(item='MSSQL46.NOC_CONFIG_T.NOC_CONFIG_T_log'), Service(item='MSSQL46.master.mastlog'), Service(item='MSSQL46.model.modellog'), Service(item='MSSQL46.msdb.MSDBLog'), Service(item='MSSQL46.tempdb.templog'), Service(item='MSSQL46.test_autoclose.test_autoclose_log'), ]
def test_check_netscaler_vservers_clustered_worst(clustered_vservers): clustered_vservers[0]['service_state'] = ( 1, "transition to out of service", ) assert next( _check_netscaler_vservers( Parameters({ "health_levels": (100.0, 0.1), "cluster_status": "worst", }), clustered_vservers, )) == Result( state=state.WARN, summary='Status: transition to out of service (node1)', details='Status: transition to out of service (node1)', )
def test_check_tcp_conn_section(): assert list( tcp_conn_stats.check_tcp_connections( Parameters({}), { 'ESTABLISHED': 29, 'LISTEN': 26, # ... })) == [ Result( state=State.OK, summary="Established: 29", ), Metric("ESTABLISHED", 29), Result( state=State.OK, notice="Listen: 26", ), Metric("LISTEN", 26), ]
def test_cluster_check_f5_bigip_cluster_status(arg, result): assert list(cluster_check_f5_bigip_cluster_status(Parameters(arg[0]), arg[1])) == result
def test_check_error(section): assert list(check_mssql_databases("MSSQL_Mouse -", Parameters( {}), section)) == [ Result(state=state.CRIT, summary="We are out of cheese!"), ]
def test_inventory_if(): with on_time(1601310544, 'UTC'): assert list(inventory_if( Parameters({}), SECTION_INV_IF, uptime.Section(7612999, None), )) == [ TableRow(path=['networking', 'interfaces'], key_columns={'index': 1}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'Vlan-interface1', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 32769}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'port-channel 1', 'alias': '', 'last_change': 1601251200 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49152}, inventory_columns={ 'speed': 0, 'phys_address': '', 'oper_status': 1, 'admin_status': 1, 'port_type': 23 }, status_columns={ 'description': 'AUX0', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49153}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/1', 'alias': 'Uplink sw-ks-01', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49154}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/2', 'alias': 'Uplink sw-ks-01', 'last_change': 1601251200 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49155}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/3', 'alias': 'pve-muc', 'last_change': 1596240000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49156}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/4', 'alias': 'pve-muc-ipmi', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49157}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/5', 'alias': 'monitoring', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49158}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/6', 'alias': 'monitoring-ipmi', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49159}, inventory_columns={ 'speed': 10000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/7', 'alias': 'pve-muc', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49160}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/8', 'alias': 'pve-muc1-ipmi', 'last_change': 1601251200 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49161}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/9', 'alias': 'esxi', 'last_change': 1599004800 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49162}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/10', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49163}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/11', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49164}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/12', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49165}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/13', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49166}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/14', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49167}, inventory_columns={ 'speed': 1000000000, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 1, 'admin_status': 1, 'port_type': 6, 'available': False }, status_columns={ 'description': 'gigabitEthernet 1/0/15', 'alias': '', 'last_change': 1597190400 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49168}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/16', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49169}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/17', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49170}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/18', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49171}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/19', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49172}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/20', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49173}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/21', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49174}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/22', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49175}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/23', 'alias': ' ', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49176}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/24', 'alias': ' ', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49177}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/25', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49178}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/26', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49179}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/27', 'alias': '', 'last_change': 1593648000 }), TableRow(path=['networking', 'interfaces'], key_columns={'index': 49180}, inventory_columns={ 'speed': 0, 'phys_address': '74:DA:88:58:16:11', 'oper_status': 2, 'admin_status': 1, 'port_type': 6, 'available': True }, status_columns={ 'description': 'gigabitEthernet 1/0/28', 'alias': '', 'last_change': 1593648000 }), Attributes(path=['networking'], inventory_attributes={ 'available_ethernet_ports': '19', 'total_ethernet_ports': '30', 'total_interfaces': '31' }, status_attributes={}), ]
]), ]) def test_discovery_cisco_mem(string_table, expected_parsed_data): assert (list(discovery_cisco_mem(string_table)) == list( Service(item=item) for item in expected_parsed_data)) @pytest.mark.parametrize("check_args,expected_result", [ ( { "item": "MEMPOOL_DMA", "params": Parameters({ 'trend_perfdata': True, 'trend_range': 24, 'trend_showtimeleft': True, 'trend_timeleft': (12, 6) }), "section": { 'System memory': ['3848263744', '8765044672'], 'MEMPOOL_MSGLYR': ['123040', '8265568'], 'MEMPOOL_DMA': ['429262192', '378092176'], 'MEMPOOL_GLOBAL_SHARED': ['1092814800', '95541296'], } }, ( Result(state=state.OK, summary='Usage: 53.2% - 409 MiB of 770 MiB'), Metric( 'mem_used_percent', 53.16899356888102, boundaries=(0.0, None)), ),
def test_check_f5_bigip_config_sync_v11_plus(section, result): assert list( check_f5_bigip_config_sync_v11_plus( Parameters(CONFIG_SYNC_DEFAULT_PARAMETERS), State(*section), )) == result