def test_discovery_duplicate_descr(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ **DEFAULT_DISCOVERY_PARAMS, 'discovery_single': ( True, { 'item_appearance': 'descr', 'pad_portnumbers': True, }, ), }) ], _create_interfaces(0, descr='description'), )) == [ Service( item='description 5', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, }, labels=[], ), Service( item='description 6', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, }, labels=[], ), ]
def test_discovery_grouped_by_agent_and_in_rules(): ifaces = _create_interfaces(0) ifaces[0].group = 'group' ifaces[1].group = 'group' assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'matching_conditions': (True, {}), "grouping": ( True, [{ 'group_name': 'group', 'member_appearance': 'index', }], ), }), DEFAULT_DISCOVERY_PARAMS, ], ifaces, )) == SINGLE_SERVICES + [ Service( item='group', parameters={ 'aggregate': { 'member_appearance': 'index', 'inclusion_condition': {}, 'exclusion_conditions': [], }, 'discovered_state': ['1'], 'discovered_speed': 20000000.0, }, labels=[], ), ]
def test_discovery_duplicate_alias(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'discovery_single': ( True, { 'item_appearance': 'alias', 'pad_portnumbers': True, }, ), 'matching_conditions': ( False, { 'match_index': ['5'], }, ), }) ], _create_interfaces(0, alias='alias'), )) == [ Service( item='alias 5', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, }, labels=[], ), ]
def test_discovery_ungrouped_admin_status(): assert list( interfaces.discover_interfaces( [DEFAULT_DISCOVERY_PARAMS], _create_interfaces(0, admin_status='1'), )) == [ Service( item='5', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, 'discovered_admin_status': ['1'], }, labels=[], ), Service( item='6', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, 'discovered_admin_status': ['1'] }, labels=[], ), ]
def test_discovery_ungrouped_off(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'matching_conditions': (True, {}), 'discovery_single': (False, {}), }), DEFAULT_DISCOVERY_PARAMS, ], _create_interfaces(0), )) == []
def test_discovery_partial_duplicate_desc_duplicate_alias(): ifaces = _create_interfaces(0) ifaces[3].descr = 'duplicate_descr' ifaces[4].descr = 'duplicate_descr' for iface in ifaces: iface.alias = 'alias' assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'discovery_single': ( True, { 'item_appearance': 'descr', 'pad_portnumbers': True, }, ), 'matching_conditions': ( False, { 'match_index': ['4', '5', '6'], }, ), }) ], ifaces, )) == [ Service( item='duplicate_descr 4', parameters={ 'discovered_oper_status': ['2'], 'discovered_speed': 10000000, }, labels=[], ), Service( item='duplicate_descr 5', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, }, labels=[], ), Service( item='wlp2s0', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, }, labels=[], ), ]
def test_discovery_grouped_hierarchy(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'matching_conditions': ( False, { 'portstates': ['1', '2'], }, ), "grouping": ( True, [{ 'group_name': 'group', 'member_appearance': 'alias', }], ), }), type_defs.Parameters({ 'matching_conditions': (True, {}), "grouping": ( True, [{ 'group_name': 'group', 'member_appearance': 'index', }], ), }), DEFAULT_DISCOVERY_PARAMS, ], _create_interfaces(0), )) == SINGLE_SERVICES + [ Service( item='group', parameters={ 'aggregate': { 'member_appearance': 'alias', 'inclusion_condition': { 'portstates': ['1', '2'] }, 'exclusion_conditions': [], }, 'discovered_state': ['1'], 'discovered_speed': 20000000, }, labels=[], ), ]
def test_discovery_duplicate_index(): assert list( interfaces.discover_interfaces( [DEFAULT_DISCOVERY_PARAMS], _create_interfaces(0, index='1'), )) == [ Service( item='1', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, }, labels=[], ), ]
def test_discovery_ungrouped_one(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'matching_conditions': ( False, { 'match_index': ['5'], }, ), 'discovery_single': (False, {}), }), DEFAULT_DISCOVERY_PARAMS, ], _create_interfaces(0), )) == SINGLE_SERVICES[1:]
def test_discovery_ungrouped_empty_section(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'discovery_single': ( True, { 'item_appearance': 'alias', 'pad_portnumbers': True, }, ), 'matching_conditions': (True, {}), }), DEFAULT_DISCOVERY_PARAMS, ], [], )) == []
def test_discovery_grouped_by_agent(): ifaces = _create_interfaces(0) ifaces[0].group = 'group' ifaces[1].group = 'group' assert list(interfaces.discover_interfaces( [DEFAULT_DISCOVERY_PARAMS], ifaces, )) == SINGLE_SERVICES + [ Service( item='group', parameters={ 'aggregate': { 'member_appearance': 'index', }, 'discovered_oper_status': ['1'], 'discovered_speed': 0.0, }, labels=[], ), ]
def test_discovery_legacy_parameters_2(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'item_appearance': 'index', 'portstates': ['1', '9'], }), ], _create_interfaces(0, admin_status='3'), )) == [ Service( item='1', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, 'discovered_admin_status': ['3'], }, labels=[], ), Service( item='5', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 10000000, 'discovered_admin_status': ['3'], }, labels=[], ), Service( item='6', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, 'discovered_admin_status': ['3'], }, labels=[], ), ]
def test_discovery_legacy_parameters(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters( { 'pad_portnumbers': False, 'item_appearance': 'alias', 'match_desc': ['enxe4b97ab99f99', 'vboxnet0', 'lo'], 'portstates': ['1', '2', '3'], 'porttypes': ['6'], 'match_alias': ['enxe4b97ab99f99', 'vboxnet0', 'lo'], }), type_defs.Parameters({ 'matching_conditions': (True, {}), 'discovery_single': (False, {}), }), DEFAULT_DISCOVERY_PARAMS, ], _create_interfaces(0), )) == [ Service( item='enxe4b97ab99f99', parameters={ 'discovered_state': ['2'], 'discovered_speed': 10000000, }, labels=[], ), Service( item='vboxnet0', parameters={ 'discovered_state': ['1'], 'discovered_speed': 10000000, }, labels=[], ), ]
def test_discovery_grouped_empty(): assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'matching_conditions': ( False, { 'match_desc': ['non_existing'], }, ), "grouping": ( True, [{ 'group_name': 'group', 'member_appearance': 'index', }], ), }), DEFAULT_DISCOVERY_PARAMS, ], _create_interfaces(0), )) == SINGLE_SERVICES
def test_discovery_legacy_parameters_3(): ifaces = _create_interfaces(0, admin_status='1') ifaces[0].admin_status = '2' assert list( interfaces.discover_interfaces( [ type_defs.Parameters({ 'item_appearance': 'alias', 'portstates': ['9'], }), ], ifaces, )) == [ Service( item='lo', parameters={ 'discovered_oper_status': ['1'], 'discovered_speed': 0, 'discovered_admin_status': ['2'], }, labels=[], ) ]
def test_discovery_ungrouped_all(): assert list( interfaces.discover_interfaces( [DEFAULT_DISCOVERY_PARAMS], _create_interfaces(0), )) == SINGLE_SERVICES