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
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
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={}) ]
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={}) ]
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}), ]
def test_inv_prtconf(): plugin = agent_based_register.get_inventory_plugin( InventoryPluginName('prtconf')) assert plugin assert list(plugin.inventory_function(INFO)) == EXPECTED
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
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
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]
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']]))