Exemple #1
0
def test_inv_solaris_pkginfo() -> None:
    plugin = register.get_inventory_plugin(
        InventoryPluginName('solaris_pkginfo'))
    assert plugin
    with set_timezone("ETC-2"):
        result = list(plugin.inventory_function(INFO))
    assert result == RESULT
Exemple #2
0
def test_inv_docker_node_images():
    parsed = [line.split("\0") for line in AGENT_OUTPUT.split("\n")]
    plugin = agent_based_register.get_inventory_plugin(InventoryPluginName('docker_node_images'))
    assert plugin
    assert list(plugin.inventory_function(parsed)) == [
        TableRow(
            path=['software', 'applications', 'docker', 'containers'],
            key_columns={
                'id': '891a6f6a1c28',
                'image': 'b2bf42ca5d8f',
                'name': '/relaxed_shaw',
                'creation': '2021-02-12T12:15:28.230110819Z',
                'labels': 'another_container_label: 2, container: label, image_label_command_line: 1, image_label_dockerfile: 2',
                'status': 'running'
            },
            inventory_columns={},
            status_columns={}),
        TableRow(path=['software', 'applications', 'docker', 'images'],
                 key_columns={'id': 'b2bf42ca5d8f'},
                 inventory_columns={
                     'repotags': 'hello:world',
                     'repodigests': '',
                     'creation': '2021-02-12T11:29:33.063968737Z',
                     'size': 1231733,
                     'labels': 'image_label_command_line: 1, image_label_dockerfile: 2'
                 },
                 status_columns={}),
        TableRow(path=['software', 'applications', 'docker', 'images'],
                 key_columns={'id': 'b2bf42ca5d8f'},
                 inventory_columns={},
                 status_columns={'amount_containers': 1}),
    ]
def test_inv_oracle_instance(line, expected_data):
    section = agent_based_register.get_section_plugin(
        SectionName('oracle_instance'))
    assert section
    parsed = section.parse_function([line])

    inv_plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('oracle_instance'))
    assert inv_plugin
    assert list(inv_plugin.inventory_function(parsed)) == expected_data
Exemple #4
0
def test_inv_docker_container_node_name():
    info = [line.split("\0") for line in AGENT_OUTPUT.split("\n")]
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_container_node_name'))
    assert plugin
    assert list(plugin.inventory_function(info)) == [
        Attributes(path=['software', 'applications', 'docker', 'container'],
                   inventory_attributes={'node_name': 'klappben'},
                   status_attributes={})
    ]
def test_inv_docker_container_network(info):
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_container_network'))
    assert plugin
    assert list(plugin.inventory_function(info)) == [
        TableRow(
            path=['software', 'applications', 'docker', 'container', 'networks'],
            key_columns={
                'name': 'bridge',
                'network_id': '8f2baa1938b7957f876c1f5aa6767b86395b6971f349793bd7fae12eae6b83f0',
                'ip_address': '172.17.0.2',
                'ip_prefixlen': 16,
                'gateway': '172.17.0.1',
                'mac_address': '02:42:ac:11:00:02'
            },
            inventory_columns={},
            status_columns={})
    ]
Exemple #6
0
def test_inv_docker_container_labels():
    info = [
        line.split("\0") if "\0" in line else line.split(" ") for line in AGENT_OUTPUT.split("\n")
    ]
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_container_labels'))
    assert plugin
    assert list(plugin.inventory_function(info)) == [
        Attributes(path=['software', 'applications', 'docker', 'container'],
                   inventory_attributes={
                       'labels': ('com.docker.swarm.node.id: x2my5tv8bqg0yh5jq98gzodr2, '
                                  'com.docker.swarm.service.id: nrgxet23d204ywz1rjl8fbtff, '
                                  'com.docker.swarm.service.name: redis, '
                                  'com.docker.swarm.task: , '
                                  'com.docker.swarm.task.id: jjp7380fb51n4figvv4zxl350, '
                                  'com.docker.swarm.task.name: redis.1.jjp7380fb51n4figvv4zxl350')
                   },
                   status_attributes={})
    ]
Exemple #7
0
def test_migrated_inventory_plugin(inv_info):  # pylint: disable=unused-argument
    # pick a plugin, any plugin
    plugin = agent_based_register.get_inventory_plugin(InventoryPluginName("aix_baselevel"))
    assert plugin is not None

    # think of a version, and remember it:
    result = list(plugin.inventory_function([["42.23"]]))

    assert len(result) == 1

    attr = result[0]
    assert isinstance(attr, Attributes)
    assert attr.path == ["software", "os"]
    assert attr.status_attributes == {}
    assert attr.inventory_attributes == {
        "version": "42.23",  # abracadabra! Is this your version?
        "vendor": "IBM",
        "type": "aix",
        "name": "IBM AIX 42.23"
    }
def test_inv_docker_node_images_labels_null():
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_node_images'))
    assert plugin
    assert list(plugin.inventory_function(AGENT_OUTPUT_NULL_LABELS_ST)) == [
        TableRow(path=['software', 'applications', 'docker', 'images'],
                 key_columns={'id': '666620a54926'},
                 inventory_columns={
                     'repotags': 'plantuml:latest',
                     'repodigests': '',
                     'creation': '2021-02-25T08:42:22.47977742Z',
                     'size': 389770065,
                     'labels': ''
                 },
                 status_columns={}),
        TableRow(path=['software', 'applications', 'docker', 'images'],
                 key_columns={'id': '666620a54926'},
                 inventory_columns={},
                 status_columns={'amount_containers': 0}),
    ]
Exemple #9
0
def test_inv_prtconf():
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('prtconf'))
    assert plugin
    assert list(plugin.inventory_function(INFO)) == EXPECTED
Exemple #10
0
def test_inv_docker_node_info(parsed, expected):
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_node_info'))
    assert plugin
    assert list(plugin.inventory_function(parsed)) == expected
def test_inv_oracle_systemparameter(info, params, inventory_data):
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('lnx_sysctl'))
    assert plugin
    assert list(plugin.inventory_function(params, info)) == inventory_data
Exemple #12
0
def test_inv_lnx_block_devices(info, inventory_data):
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('lnx_block_devices'))
    assert plugin
    assert list(plugin.inventory_function(info)) == inventory_data
Exemple #13
0
def test_inv_oracle_systemparameter(info, expected):
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('oracle_systemparameter'))
    assert plugin
    assert list(plugin.inventory_function(info)) == expected
def test_inv_oracle_instance_multiline():
    lines = [
        [
            'SID',
            'VERSION',
            'OPENMODE',
            'LOGINS',
            '_ARCHIVER',
            '123',
            '_DBID',
            'LOGMODE',
            '_DATABASE_ROLE',
            '_FORCE_LOGGING',
            '_NAME',
            '080220151025',
            '_PLUGGABLE',
            '_CON_ID',
            '',
            '_PDBID',
            '_POPENMODE',
            '_PRESTRICTED',
            '_PTOTAL_SIZE',
            '_PRECOVERY_STATUS',
            '_PUP_SECONDS',
            '_PBLOCK_SIZE',
        ],
        [
            'SID',
            'VERSION',
            '_OPENMODE',
            'LOGINS',
            '_ARCHIVER',
            '_RAW_UP_SECONDS',
            '_DBID',
            'LOGMODE',
            '_DATABASE_ROLE',
            '_FORCE_LOGGING',
            '_NAME',
            '080220151026',
            'TRUE',
            '_CON_ID',
            'PNAME',
            '_PDBID',
            'POPENMODE',
            '_PRESTRICTED',
            '_PTOTAL_SIZE',
            '_PRECOVERY_STATUS',
            '456',
            '_PBLOCK_SIZE',
        ],
    ]

    section = agent_based_register.get_section_plugin(
        SectionName('oracle_instance'))
    parsed = section.parse_function(lines)  # type: ignore[arg-type]
    inv_plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('oracle_instance'))

    expected_data = [
        TableRow(
            path=['software', 'applications', 'oracle', 'instance'],
            key_columns={
                "sid": "SID",
                "pname": "",
            },
            inventory_columns={
                "version": "VERSION",
                "openmode": "OPENMODE",
                "logmode": 'LOGMODE',
                "logins": "LOGINS",
                "db_creation_time": "2015-02-08 10:25",
            },
        ),
        TableRow(
            path=['software', 'applications', 'oracle', 'instance'],
            key_columns={
                "sid": "SID",
                "pname": "PNAME",
            },
            inventory_columns={
                "version": "VERSION",
                "openmode": "POPENMODE",
                "logmode": 'LOGMODE',
                "logins": "ALLOWED",
                "db_creation_time": "2015-02-08 10:26",
            },
        ),
        TableRow(
            path=['software', 'applications', 'oracle', 'instance'],
            key_columns={
                "sid": "SID",
                "pname": "",
            },
            status_columns={
                "db_uptime": 123,
            },
        ),
        TableRow(
            path=['software', 'applications', 'oracle', 'instance'],
            key_columns={
                "sid": "SID",
                "pname": "PNAME",
            },
            status_columns={
                "db_uptime": 456,
            },
        ),
    ]

    assert list(inv_plugin.inventory_function(
        parsed)) == expected_data  # type: ignore[union-attr]
Exemple #15
0
def test_inv_docker_container_node_name_legacy_agent_output():
    plugin = agent_based_register.get_inventory_plugin(
        InventoryPluginName('docker_container_node_name'))
    assert plugin
    with pytest.raises(AgentOutputMalformatted):
        list(plugin.inventory_function([['node_name']]))