Beispiel #1
0
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=[],
            ),
        ]
Beispiel #2
0
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=[],
            ),
        ]
Beispiel #3
0
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=[],
            ),
        ]
Beispiel #4
0
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=[],
            ),
        ]
Beispiel #5
0
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),
        )) == []
Beispiel #6
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=[],
            ),
        ]
Beispiel #7
0
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=[],
            ),
        ]
Beispiel #8
0
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=[],
            ),
        ]
Beispiel #9
0
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:]
Beispiel #10
0
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,
            ],
            [],
        )) == []
Beispiel #11
0
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=[],
        ),
    ]
Beispiel #12
0
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=[],
            ),
        ]
Beispiel #13
0
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=[],
            ),
        ]
Beispiel #14
0
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
Beispiel #15
0
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=[],
            )
        ]
Beispiel #16
0
def test_discovery_ungrouped_all():
    assert list(
        interfaces.discover_interfaces(
            [DEFAULT_DISCOVERY_PARAMS],
            _create_interfaces(0),
        )) == SINGLE_SERVICES