amd-node-scraper 1.1.0__tar.gz → 1.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/PKG-INFO +143 -6
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/README.md +141 -4
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/PKG-INFO +143 -6
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/SOURCES.txt +58 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/requires.txt +1 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/PLUGIN_DOC.md +296 -77
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/generate_plugin_doc_bundle.py +38 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/__init__.py +1 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/base/__init__.py +4 -0
- amd_node_scraper-1.1.2/nodescraper/base/inbanddataplugin.py +39 -0
- amd_node_scraper-1.1.2/nodescraper/base/oobanddataplugin.py +48 -0
- amd_node_scraper-1.1.2/nodescraper/base/redfishcollectortask.py +79 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/cli.py +80 -15
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/helper.py +17 -6
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/inbandremote.py +2 -2
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/__init__.py +48 -0
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/redfish_connection.py +206 -0
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/redfish_manager.py +142 -0
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/redfish_oem_diag.py +381 -0
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/redfish_params.py +53 -0
- amd_node_scraper-1.1.2/nodescraper/connection/redfish/redfish_path.py +61 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/__init__.py +2 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/eventcategory.py +3 -0
- amd_node_scraper-1.1.2/nodescraper/enums/taskstate.py +44 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/dataplugin.py +137 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/taskresult.py +51 -4
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/pluginexecutor.py +27 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/amdsmi_analyzer.py +18 -25
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/amdsmi_collector.py +138 -4
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/amdsmidata.py +12 -12
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/fabrics/fabrics_collector.py +65 -173
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/fabrics/fabricsdata.py +8 -29
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/network/network_collector.py +730 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/network/networkdata.py +120 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/__init__.py +28 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/analyzer_args.py +75 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/collector_args.py +36 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/nic_analyzer.py +322 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/nic_collector.py +1312 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/nic_data.py +411 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/nic/nic_plugin.py +46 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rdma/__init__.py +28 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rdma/rdma_analyzer.py +186 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rdma/rdma_collector.py +315 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rdma/rdma_plugin.py +38 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rdma/rdmadata.py +104 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/inband/rocm/collector_args.py +32 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/rocm_collector.py +30 -21
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/rocm_plugin.py +4 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/collector_args.py +1 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/sys_settings_collector.py +26 -12
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/__init__.py +26 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/__init__.py +40 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/analyzer_args.py +67 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/collector_args.py +40 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/endpoint_analyzer.py +145 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/endpoint_collector.py +86 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/endpoint_data.py +34 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_endpoint/endpoint_plugin.py +48 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/__init__.py +22 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/analyzer_args.py +37 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/collector_args.py +63 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/oem_diag_analyzer.py +69 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/oem_diag_collector.py +109 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/oem_diag_data.py +44 -0
- amd_node_scraper-1.1.2/nodescraper/plugins/ooband/redfish_oem_diag/oem_diag_plugin.py +52 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/utils.py +34 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/pyproject.toml +1 -1
- amd_node_scraper-1.1.2/test/functional/fixtures/nic_plugin_config_full_analyzer_args.json +37 -0
- amd_node_scraper-1.1.2/test/functional/fixtures/niccli_plugin_config.json +19 -0
- amd_node_scraper-1.1.2/test/functional/fixtures/rdma_plugin_config.json +9 -0
- amd_node_scraper-1.1.2/test/functional/fixtures/redfish_connection_config.json +9 -0
- amd_node_scraper-1.1.2/test/functional/fixtures/redfish_endpoint_plugin_config.json +12 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_cli_help.py +0 -14
- amd_node_scraper-1.1.2/test/functional/test_nic_plugin.py +137 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_plugin_configs.py +3 -0
- amd_node_scraper-1.1.2/test/functional/test_rdma_plugin.py +106 -0
- amd_node_scraper-1.1.2/test/functional/test_redfish_endpoint_plugin.py +114 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_reference_config_workflow.py +18 -3
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_run_plugins.py +55 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/conftest.py +5 -0
- amd_node_scraper-1.1.2/test/unit/connection/redfish/test_redfish_oem_diag.py +186 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_plugin_executor.py +2 -1
- amd_node_scraper-1.1.2/test/unit/plugin/fixtures/rdma_link_example_data.json +38 -0
- amd_node_scraper-1.1.2/test/unit/plugin/fixtures/rdma_statistic_example_data.json +826 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_amdsmi_analyzer.py +248 -44
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_amdsmi_collector.py +82 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_fabrics_collector.py +54 -92
- amd_node_scraper-1.1.2/test/unit/plugin/test_network_collector.py +650 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_niccli_collector.py +270 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_rdma_analyzer.py +279 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_rdma_collector.py +156 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_redfish_endpoint_analyzer.py +209 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_redfish_endpoint_collector.py +145 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_redfish_endpoint_plugin.py +66 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_redfish_oem_diag_analyzer.py +114 -0
- amd_node_scraper-1.1.2/test/unit/plugin/test_redfish_oem_diag_collector.py +126 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_rocm_collector.py +1 -1
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_sys_settings_collector.py +50 -0
- amd_node_scraper-1.1.2/test/unit/test_version.py +73 -0
- amd_node_scraper-1.1.0/nodescraper/base/inbanddataplugin.py +0 -174
- amd_node_scraper-1.1.0/nodescraper/plugins/inband/network/network_collector.py +0 -1899
- amd_node_scraper-1.1.0/nodescraper/plugins/inband/network/networkdata.py +0 -320
- amd_node_scraper-1.1.0/test/unit/plugin/test_network_collector.py +0 -1943
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/CODEOWNERS +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/workflows/code_quality_checks.yml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/workflows/functional-test.yml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/workflows/release-trusted-publisher.yml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/workflows/unit-test.yml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.github/workflows/update-plugin-docs.yml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.gitignore +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.mypy.ini +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/.pre-commit-config.yaml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/CONTRIBUTING.md +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/EXTENDING.md +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/LICENSE +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/dependency_links.txt +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/entry_points.txt +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/amd_node_scraper.egg-info/top_level.txt +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/dev-setup.sh +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/README.md +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_data.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/docs/node-scraper-external/pyproject.toml +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/base/inbandcollectortask.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/base/regexanalyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/compare_runs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/constants.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/dynamicparserbuilder.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/cli/inputargtypes.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/configbuilder.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/configregistry.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/configs/node_status.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/inband.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/inbandlocal.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/inbandmanager.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/connection/inband/sshparams.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/constants.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/eventpriority.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/executionstatus.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/osfamily.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/systeminteraction.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/enums/systemlocation.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/generictypes.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/helpers/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/connectionmanager.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/dataanalyzertask.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/datacollectortask.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/resultcollator.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/task.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/interfaces/taskresulthook.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/analyzerargs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/collectorargs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/connectionconfig.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/datamodel.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/datapluginresult.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/event.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/pluginconfig.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/pluginresult.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/systeminfo.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/models/timerangeargs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/pluginregistry.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/amdsmi_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/amdsmi/cper.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/bios_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/bios_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/bios_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/bios/biosdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/cmdline_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/cmdline_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/cmdline_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/cmdlineconfig.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/cmdline/cmdlinedata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/device_enumeration/deviceenumdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dimm/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dimm/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dimm/dimm_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dimm/dimm_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dimm/dimmdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/dkms_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/dkms_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/dkms_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dkms/dkmsdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/dmesg_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/dmesg_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/dmesg_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/dmesgdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/dmesg/run_compare.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/fabrics/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/fabrics/fabrics_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/journal_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/journal_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/journal_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/journal/journaldata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/kernel_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/kernel_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/kernel_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel/kerneldata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/kernel_module_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/kernel_module_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/kernel_module_data.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/kernel_module/kernel_module_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/memory_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/memory_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/memory_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/memory/memorydata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/network/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/network/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/network/network_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/nvme/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/nvme/nvme_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/nvme/nvme_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/nvme/nvmedata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/os_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/os_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/os_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/os/osdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/package_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/package_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/package_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/package/packagedata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/pcie_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/pcie_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/pcie_data.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/pcie/pcie_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/process_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/process_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/process_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/process/processdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/rocm_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/rocm/rocmdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/collector_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/storage_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/storage_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/storage_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/storage/storagedata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/sys_settings_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/sys_settings_data.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sys_settings/sys_settings_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/analyzer_args.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/sysctl_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/sysctl_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/sysctl_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/sysctl/sysctldata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/syslog/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/syslog/syslog_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/syslog/syslog_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/syslog/syslogdata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/uptime/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/uptime/uptime_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/uptime/uptime_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/plugins/inband/uptime/uptimedata.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/resultcollators/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/resultcollators/tablesummary.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/taskresulthooks/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/taskresulthooks/filesystemloghook.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/nodescraper/typeutils.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/pytest.ini +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/setup.cfg +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/setup.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/__init__.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/conftest.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/bios_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/cmdline_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dimm_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dkms_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dmesg_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dmesg_plugin_config_custom_regex.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dmesg_sample.log +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/dmesg_sample_with_collapsing.log +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/fabrics_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/journal_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/kernel_module_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/kernel_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/memory_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/network_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/nvme_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/os_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/package_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/pcie_plugin_advanced_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/pcie_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/process_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/rocm_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/storage_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/sys_settings_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/sysctl_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/syslog_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/fixtures/uptime_plugin_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_cli_describe.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_fabrics_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_network_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_pcie_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_plugin_registry.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/functional/test_sys_settings_plugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/common/shared_utils.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/compare_runs_sysctl/run1/sysctl_plugin/sysctl_collector/result.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/compare_runs_sysctl/run1/sysctl_plugin/sysctl_collector/sysctldatamodel.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/compare_runs_sysctl/run2/sysctl_plugin/sysctl_collector/result.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/compare_runs_sysctl/run2/sysctl_plugin/sysctl_collector/sysctldatamodel.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/example.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/example_config.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/invalid.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/log_dir/collector/biosdatamodel.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/fixtures/log_dir/collector/result.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_analyzerargs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_cli.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_cli_helper.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_compare_runs.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_config_builder.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_config_registry.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_dataanalyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_datacollector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_dataplugin.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_file_artifact.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_regexanalyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/framework/test_type_utils.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/fixtures/package_commands.json +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_analyzer_args_build_from_model.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_bios_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_bios_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_cmdline_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_cmdline_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_device_enumeration_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_device_enumeration_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_dimms_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_dkms_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_dkms_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_dmesg_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_dmesg_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_journal_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_kernel_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_kernel_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_kernel_module_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_kernel_module_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_memory_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_memory_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_nvme_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_os_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_os_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_package_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_package_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_process_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_process_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_rocm_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_storage_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_storage_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_sys_settings_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_sysctl_analyzer.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_sysctl_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_syslog_collector.py +0 -0
- {amd_node_scraper-1.1.0 → amd_node_scraper-1.1.2}/test/unit/plugin/test_uptime_collector.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: amd-node-scraper
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.2
|
|
4
4
|
Summary: A framework for automated error detection and data collection
|
|
5
5
|
Project-URL: homepage, https://github.com/amd/node-scraper
|
|
6
6
|
Project-URL: documentation, https://github.com/amd/node-scraper
|
|
@@ -13,7 +13,7 @@ Requires-Dist: pydantic>=2.8.2
|
|
|
13
13
|
Requires-Dist: paramiko<4.0.0,>=3.2.0
|
|
14
14
|
Requires-Dist: requests
|
|
15
15
|
Requires-Dist: pytz
|
|
16
|
-
Requires-Dist: urllib3
|
|
16
|
+
Requires-Dist: urllib3>=2.6.0
|
|
17
17
|
Provides-Extra: dev
|
|
18
18
|
Requires-Dist: build; extra == "dev"
|
|
19
19
|
Requires-Dist: black; extra == "dev"
|
|
@@ -42,6 +42,7 @@ system debug.
|
|
|
42
42
|
- ['run-plugins' sub command](#run-plugins-sub-command)
|
|
43
43
|
- ['gen-plugin-config' sub command](#gen-plugin-config-sub-command)
|
|
44
44
|
- ['compare-runs' subcommand](#compare-runs-subcommand)
|
|
45
|
+
- ['show-redfish-oem-allowable' subcommand](#show-redfish-oem-allowable-subcommand)
|
|
45
46
|
- ['summary' sub command](#summary-sub-command)
|
|
46
47
|
- [Configs](#configs)
|
|
47
48
|
- [Global args](#global-args)
|
|
@@ -113,7 +114,7 @@ options:
|
|
|
113
114
|
--sys-platform STRING
|
|
114
115
|
Specify system platform (default: None)
|
|
115
116
|
--plugin-configs [STRING ...]
|
|
116
|
-
built-in config names or paths to plugin config JSONs. Available built-in configs: NodeStatus (default: None)
|
|
117
|
+
built-in config names or paths to plugin config JSONs. Available built-in configs: AllPlugins, NodeStatus (default: None)
|
|
117
118
|
--system-config STRING
|
|
118
119
|
Path to system config json (default: None)
|
|
119
120
|
--connection-config STRING
|
|
@@ -144,6 +145,8 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
144
145
|
|
|
145
146
|
##### Example: connection_config.json
|
|
146
147
|
|
|
148
|
+
In-band (SSH) connection:
|
|
149
|
+
|
|
147
150
|
```json
|
|
148
151
|
{
|
|
149
152
|
"InBandConnectionManager": {
|
|
@@ -156,6 +159,24 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
156
159
|
}
|
|
157
160
|
```
|
|
158
161
|
|
|
162
|
+
Redfish (BMC) connection for Redfish-only plugins:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"RedfishConnectionManager": {
|
|
167
|
+
"host": "bmc.example.com",
|
|
168
|
+
"port": 443,
|
|
169
|
+
"username": "admin",
|
|
170
|
+
"password": "secret",
|
|
171
|
+
"use_https": true,
|
|
172
|
+
"verify_ssl": true,
|
|
173
|
+
"api_root": "redfish/v1"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
- `api_root` (optional): Redfish API path (e.g. `redfish/v1`). If omitted, the default `redfish/v1` is used. Override this when your BMC uses a different API version path.
|
|
179
|
+
|
|
159
180
|
**Notes:**
|
|
160
181
|
- If using SSH keys, specify `key_filename` instead of `password`.
|
|
161
182
|
- The remote user must have permissions to run the requested plugins and access required files. If needed, use the `--skip-sudo` argument to skip plugins requiring sudo.
|
|
@@ -347,6 +368,112 @@ node-scraper compare-runs path1 path2 --include-plugins DmesgPlugin --dont-trunc
|
|
|
347
368
|
|
|
348
369
|
You can pass multiple plugin names to `--skip-plugins` or `--include-plugins`.
|
|
349
370
|
|
|
371
|
+
#### **'show-redfish-oem-allowable' subcommand**
|
|
372
|
+
The `show-redfish-oem-allowable` subcommand fetches the list of OEM diagnostic types supported by your BMC (from the Redfish LogService `OEMDiagnosticDataType@Redfish.AllowableValues`). Use it to discover which types you can put in `oem_diagnostic_types_allowable` and `oem_diagnostic_types` in the Redfish OEM diag plugin config.
|
|
373
|
+
|
|
374
|
+
**Requirements:** A Redfish connection config (same as for RedfishOemDiagPlugin).
|
|
375
|
+
|
|
376
|
+
**Command:**
|
|
377
|
+
```sh
|
|
378
|
+
node-scraper --connection-config connection-config.json show-redfish-oem-allowable --log-service-path "redfish/v1/Systems/UBB/LogServices/DiagLogs"
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
Output is a JSON array of allowable type names (e.g. `["Dmesg", "JournalControl", "AllLogs", ...]`). Copy that list into your plugin config’s `oem_diagnostic_types_allowable` if you want to match your BMC.
|
|
382
|
+
|
|
383
|
+
**Redfish OEM diag plugin config example**
|
|
384
|
+
|
|
385
|
+
Use a plugin config that points at your LogService and lists the types to collect. Logs are written under the run log path (see `--log-path`).
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"name": "Redfish OEM diagnostic logs",
|
|
390
|
+
"desc": "Collect OEM diagnostic logs from Redfish LogService. Requires Redfish connection config.",
|
|
391
|
+
"global_args": {},
|
|
392
|
+
"plugins": {
|
|
393
|
+
"RedfishOemDiagPlugin": {
|
|
394
|
+
"collection_args": {
|
|
395
|
+
"log_service_path": "redfish/v1/Systems/UBB/LogServices/DiagLogs",
|
|
396
|
+
"oem_diagnostic_types_allowable": [
|
|
397
|
+
"JournalControl",
|
|
398
|
+
...
|
|
399
|
+
"AllLogs",
|
|
400
|
+
],
|
|
401
|
+
"oem_diagnostic_types": ["JournalControl", "AllLogs"],
|
|
402
|
+
"task_timeout_s": 600
|
|
403
|
+
},
|
|
404
|
+
"analysis_args": {
|
|
405
|
+
"require_all_success": false
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"result_collators": {}
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
- **`log_service_path`**: Redfish path to the LogService (e.g. DiagLogs). Must match your system (e.g. `UBB` vs. another system id).
|
|
414
|
+
- **`oem_diagnostic_types_allowable`**: Full list of types the BMC supports (from `show-redfish-oem-allowable` or vendor docs).
|
|
415
|
+
- **`oem_diagnostic_types`**: Subset of types to collect on each run (e.g. `["JournalControl", "AllLogs"]`).
|
|
416
|
+
- **`task_timeout_s`**: Max seconds to wait per collection task.
|
|
417
|
+
|
|
418
|
+
**How to use**
|
|
419
|
+
|
|
420
|
+
1. **Discover allowable types** (optional): run `show-redfish-oem-allowable` and paste the output into `oem_diagnostic_types_allowable` in your plugin config.
|
|
421
|
+
2. **Set `oem_diagnostic_types`** to the list you want to collect (e.g. `["JournalControl", "AllLogs"]`).
|
|
422
|
+
3. **Run the plugin** with a Redfish connection config and your plugin config:
|
|
423
|
+
```sh
|
|
424
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_oem_diag.json run-plugins RedfishOemDiagPlugin
|
|
425
|
+
```
|
|
426
|
+
4. Use **`--log-path`** to choose where run logs (and OEM diag archives) are written; archives go under `<log-path>/scraper_logs_<name>_<timestamp>/redfish_oem_diag_plugin/redfish_oem_diag_collector/`.
|
|
427
|
+
|
|
428
|
+
#### **RedfishEndpointPlugin**
|
|
429
|
+
|
|
430
|
+
The RedfishEndpointPlugin collects Redfish URIs (GET responses) and optionally runs checks on the returned JSON. It requires a Redfish connection config (same as RedfishOemDiagPlugin).
|
|
431
|
+
|
|
432
|
+
**How to run**
|
|
433
|
+
|
|
434
|
+
1. Create a connection config (e.g. `connection-config.json`) with `RedfishConnectionManager` and your BMC host, credentials, and API root.
|
|
435
|
+
2. Create a plugin config with `uris` to collect and optional `checks` for analysis (see example below). For example save as `plugin_config_redfish_endpoint.json`.
|
|
436
|
+
3. Run:
|
|
437
|
+
```sh
|
|
438
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_endpoint.json run-plugins RedfishEndpointPlugin
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
**Sample plugin config** (`plugin_config_redfish_endpoint.json`):
|
|
442
|
+
|
|
443
|
+
```json
|
|
444
|
+
{
|
|
445
|
+
"name": "RedfishEndpointPlugin",
|
|
446
|
+
"desc": "Redfish endpoint: collect URIs and optional checks",
|
|
447
|
+
"global_args": {},
|
|
448
|
+
"plugins": {
|
|
449
|
+
"RedfishEndpointPlugin": {
|
|
450
|
+
"collection_args": {
|
|
451
|
+
"uris": [
|
|
452
|
+
"/redfish/v1/",
|
|
453
|
+
"/redfish/v1/Systems/1",
|
|
454
|
+
"/redfish/v1/Chassis/1/Power"
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
"analysis_args": {
|
|
458
|
+
"checks": {
|
|
459
|
+
"/redfish/v1/Systems/1": {
|
|
460
|
+
"PowerState": "On",
|
|
461
|
+
"Status/Health": { "anyOf": ["OK", "Warning"] }
|
|
462
|
+
},
|
|
463
|
+
"/redfish/v1/Chassis/1/Power": {
|
|
464
|
+
"PowerControl/0/PowerConsumedWatts": { "max": 1000 }
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"result_collators": {}
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
- **`uris`**: List of Redfish paths (e.g. `/redfish/v1/`, `/redfish/v1/Systems/1`) to GET and store.
|
|
475
|
+
- **`checks`**: Optional. Map of URI to expected values or constraints for analysis. Supports exact match (e.g. `"PowerState": "On"`), `anyOf`, `min`/`max`, etc.
|
|
476
|
+
|
|
350
477
|
#### **'summary' sub command**
|
|
351
478
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
352
479
|
single summary.csv file. Sample run:
|
|
@@ -398,7 +525,11 @@ Below is an example that skips sudo requiring plugins and disables analysis.
|
|
|
398
525
|
```
|
|
399
526
|
|
|
400
527
|
#### Plugin config: **'--plugin-configs' command**
|
|
401
|
-
A plugin config can be used to compare the system data against the config specifications
|
|
528
|
+
A plugin config can be used to compare the system data against the config specifications.
|
|
529
|
+
Built-in configs include **NodeStatus** (a subset of plugins) and **AllPlugins** (runs every
|
|
530
|
+
registered plugin with default arguments—useful for generating a reference config from the full system).
|
|
531
|
+
|
|
532
|
+
Using a JSON file:
|
|
402
533
|
```sh
|
|
403
534
|
node-scraper --plugin-configs plugin_config.json
|
|
404
535
|
```
|
|
@@ -459,10 +590,16 @@ Here is an example of a comprehensive plugin config that specifies analyzer args
|
|
|
459
590
|
This command can be used to generate a reference config that is populated with current system
|
|
460
591
|
configurations. Plugins that use analyzer args (where applicable) will be populated with system
|
|
461
592
|
data.
|
|
462
|
-
|
|
593
|
+
|
|
594
|
+
**Run all registered plugins (AllPlugins config):**
|
|
463
595
|
```sh
|
|
464
|
-
node-scraper --
|
|
596
|
+
node-scraper --plugin-config AllPlugins
|
|
465
597
|
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
**Generate a reference config for specific plugins:**
|
|
601
|
+
```sh
|
|
602
|
+
node-scraper --gen-reference-config run-plugins BiosPlugin OsPlugin
|
|
466
603
|
```
|
|
467
604
|
This will generate the following config:
|
|
468
605
|
```json
|
|
@@ -14,6 +14,7 @@ system debug.
|
|
|
14
14
|
- ['run-plugins' sub command](#run-plugins-sub-command)
|
|
15
15
|
- ['gen-plugin-config' sub command](#gen-plugin-config-sub-command)
|
|
16
16
|
- ['compare-runs' subcommand](#compare-runs-subcommand)
|
|
17
|
+
- ['show-redfish-oem-allowable' subcommand](#show-redfish-oem-allowable-subcommand)
|
|
17
18
|
- ['summary' sub command](#summary-sub-command)
|
|
18
19
|
- [Configs](#configs)
|
|
19
20
|
- [Global args](#global-args)
|
|
@@ -85,7 +86,7 @@ options:
|
|
|
85
86
|
--sys-platform STRING
|
|
86
87
|
Specify system platform (default: None)
|
|
87
88
|
--plugin-configs [STRING ...]
|
|
88
|
-
built-in config names or paths to plugin config JSONs. Available built-in configs: NodeStatus (default: None)
|
|
89
|
+
built-in config names or paths to plugin config JSONs. Available built-in configs: AllPlugins, NodeStatus (default: None)
|
|
89
90
|
--system-config STRING
|
|
90
91
|
Path to system config json (default: None)
|
|
91
92
|
--connection-config STRING
|
|
@@ -116,6 +117,8 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
116
117
|
|
|
117
118
|
##### Example: connection_config.json
|
|
118
119
|
|
|
120
|
+
In-band (SSH) connection:
|
|
121
|
+
|
|
119
122
|
```json
|
|
120
123
|
{
|
|
121
124
|
"InBandConnectionManager": {
|
|
@@ -128,6 +131,24 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
128
131
|
}
|
|
129
132
|
```
|
|
130
133
|
|
|
134
|
+
Redfish (BMC) connection for Redfish-only plugins:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"RedfishConnectionManager": {
|
|
139
|
+
"host": "bmc.example.com",
|
|
140
|
+
"port": 443,
|
|
141
|
+
"username": "admin",
|
|
142
|
+
"password": "secret",
|
|
143
|
+
"use_https": true,
|
|
144
|
+
"verify_ssl": true,
|
|
145
|
+
"api_root": "redfish/v1"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- `api_root` (optional): Redfish API path (e.g. `redfish/v1`). If omitted, the default `redfish/v1` is used. Override this when your BMC uses a different API version path.
|
|
151
|
+
|
|
131
152
|
**Notes:**
|
|
132
153
|
- If using SSH keys, specify `key_filename` instead of `password`.
|
|
133
154
|
- The remote user must have permissions to run the requested plugins and access required files. If needed, use the `--skip-sudo` argument to skip plugins requiring sudo.
|
|
@@ -319,6 +340,112 @@ node-scraper compare-runs path1 path2 --include-plugins DmesgPlugin --dont-trunc
|
|
|
319
340
|
|
|
320
341
|
You can pass multiple plugin names to `--skip-plugins` or `--include-plugins`.
|
|
321
342
|
|
|
343
|
+
#### **'show-redfish-oem-allowable' subcommand**
|
|
344
|
+
The `show-redfish-oem-allowable` subcommand fetches the list of OEM diagnostic types supported by your BMC (from the Redfish LogService `OEMDiagnosticDataType@Redfish.AllowableValues`). Use it to discover which types you can put in `oem_diagnostic_types_allowable` and `oem_diagnostic_types` in the Redfish OEM diag plugin config.
|
|
345
|
+
|
|
346
|
+
**Requirements:** A Redfish connection config (same as for RedfishOemDiagPlugin).
|
|
347
|
+
|
|
348
|
+
**Command:**
|
|
349
|
+
```sh
|
|
350
|
+
node-scraper --connection-config connection-config.json show-redfish-oem-allowable --log-service-path "redfish/v1/Systems/UBB/LogServices/DiagLogs"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Output is a JSON array of allowable type names (e.g. `["Dmesg", "JournalControl", "AllLogs", ...]`). Copy that list into your plugin config’s `oem_diagnostic_types_allowable` if you want to match your BMC.
|
|
354
|
+
|
|
355
|
+
**Redfish OEM diag plugin config example**
|
|
356
|
+
|
|
357
|
+
Use a plugin config that points at your LogService and lists the types to collect. Logs are written under the run log path (see `--log-path`).
|
|
358
|
+
|
|
359
|
+
```json
|
|
360
|
+
{
|
|
361
|
+
"name": "Redfish OEM diagnostic logs",
|
|
362
|
+
"desc": "Collect OEM diagnostic logs from Redfish LogService. Requires Redfish connection config.",
|
|
363
|
+
"global_args": {},
|
|
364
|
+
"plugins": {
|
|
365
|
+
"RedfishOemDiagPlugin": {
|
|
366
|
+
"collection_args": {
|
|
367
|
+
"log_service_path": "redfish/v1/Systems/UBB/LogServices/DiagLogs",
|
|
368
|
+
"oem_diagnostic_types_allowable": [
|
|
369
|
+
"JournalControl",
|
|
370
|
+
...
|
|
371
|
+
"AllLogs",
|
|
372
|
+
],
|
|
373
|
+
"oem_diagnostic_types": ["JournalControl", "AllLogs"],
|
|
374
|
+
"task_timeout_s": 600
|
|
375
|
+
},
|
|
376
|
+
"analysis_args": {
|
|
377
|
+
"require_all_success": false
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"result_collators": {}
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
- **`log_service_path`**: Redfish path to the LogService (e.g. DiagLogs). Must match your system (e.g. `UBB` vs. another system id).
|
|
386
|
+
- **`oem_diagnostic_types_allowable`**: Full list of types the BMC supports (from `show-redfish-oem-allowable` or vendor docs).
|
|
387
|
+
- **`oem_diagnostic_types`**: Subset of types to collect on each run (e.g. `["JournalControl", "AllLogs"]`).
|
|
388
|
+
- **`task_timeout_s`**: Max seconds to wait per collection task.
|
|
389
|
+
|
|
390
|
+
**How to use**
|
|
391
|
+
|
|
392
|
+
1. **Discover allowable types** (optional): run `show-redfish-oem-allowable` and paste the output into `oem_diagnostic_types_allowable` in your plugin config.
|
|
393
|
+
2. **Set `oem_diagnostic_types`** to the list you want to collect (e.g. `["JournalControl", "AllLogs"]`).
|
|
394
|
+
3. **Run the plugin** with a Redfish connection config and your plugin config:
|
|
395
|
+
```sh
|
|
396
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_oem_diag.json run-plugins RedfishOemDiagPlugin
|
|
397
|
+
```
|
|
398
|
+
4. Use **`--log-path`** to choose where run logs (and OEM diag archives) are written; archives go under `<log-path>/scraper_logs_<name>_<timestamp>/redfish_oem_diag_plugin/redfish_oem_diag_collector/`.
|
|
399
|
+
|
|
400
|
+
#### **RedfishEndpointPlugin**
|
|
401
|
+
|
|
402
|
+
The RedfishEndpointPlugin collects Redfish URIs (GET responses) and optionally runs checks on the returned JSON. It requires a Redfish connection config (same as RedfishOemDiagPlugin).
|
|
403
|
+
|
|
404
|
+
**How to run**
|
|
405
|
+
|
|
406
|
+
1. Create a connection config (e.g. `connection-config.json`) with `RedfishConnectionManager` and your BMC host, credentials, and API root.
|
|
407
|
+
2. Create a plugin config with `uris` to collect and optional `checks` for analysis (see example below). For example save as `plugin_config_redfish_endpoint.json`.
|
|
408
|
+
3. Run:
|
|
409
|
+
```sh
|
|
410
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_endpoint.json run-plugins RedfishEndpointPlugin
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
**Sample plugin config** (`plugin_config_redfish_endpoint.json`):
|
|
414
|
+
|
|
415
|
+
```json
|
|
416
|
+
{
|
|
417
|
+
"name": "RedfishEndpointPlugin",
|
|
418
|
+
"desc": "Redfish endpoint: collect URIs and optional checks",
|
|
419
|
+
"global_args": {},
|
|
420
|
+
"plugins": {
|
|
421
|
+
"RedfishEndpointPlugin": {
|
|
422
|
+
"collection_args": {
|
|
423
|
+
"uris": [
|
|
424
|
+
"/redfish/v1/",
|
|
425
|
+
"/redfish/v1/Systems/1",
|
|
426
|
+
"/redfish/v1/Chassis/1/Power"
|
|
427
|
+
]
|
|
428
|
+
},
|
|
429
|
+
"analysis_args": {
|
|
430
|
+
"checks": {
|
|
431
|
+
"/redfish/v1/Systems/1": {
|
|
432
|
+
"PowerState": "On",
|
|
433
|
+
"Status/Health": { "anyOf": ["OK", "Warning"] }
|
|
434
|
+
},
|
|
435
|
+
"/redfish/v1/Chassis/1/Power": {
|
|
436
|
+
"PowerControl/0/PowerConsumedWatts": { "max": 1000 }
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"result_collators": {}
|
|
443
|
+
}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
- **`uris`**: List of Redfish paths (e.g. `/redfish/v1/`, `/redfish/v1/Systems/1`) to GET and store.
|
|
447
|
+
- **`checks`**: Optional. Map of URI to expected values or constraints for analysis. Supports exact match (e.g. `"PowerState": "On"`), `anyOf`, `min`/`max`, etc.
|
|
448
|
+
|
|
322
449
|
#### **'summary' sub command**
|
|
323
450
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
324
451
|
single summary.csv file. Sample run:
|
|
@@ -370,7 +497,11 @@ Below is an example that skips sudo requiring plugins and disables analysis.
|
|
|
370
497
|
```
|
|
371
498
|
|
|
372
499
|
#### Plugin config: **'--plugin-configs' command**
|
|
373
|
-
A plugin config can be used to compare the system data against the config specifications
|
|
500
|
+
A plugin config can be used to compare the system data against the config specifications.
|
|
501
|
+
Built-in configs include **NodeStatus** (a subset of plugins) and **AllPlugins** (runs every
|
|
502
|
+
registered plugin with default arguments—useful for generating a reference config from the full system).
|
|
503
|
+
|
|
504
|
+
Using a JSON file:
|
|
374
505
|
```sh
|
|
375
506
|
node-scraper --plugin-configs plugin_config.json
|
|
376
507
|
```
|
|
@@ -431,10 +562,16 @@ Here is an example of a comprehensive plugin config that specifies analyzer args
|
|
|
431
562
|
This command can be used to generate a reference config that is populated with current system
|
|
432
563
|
configurations. Plugins that use analyzer args (where applicable) will be populated with system
|
|
433
564
|
data.
|
|
434
|
-
|
|
565
|
+
|
|
566
|
+
**Run all registered plugins (AllPlugins config):**
|
|
435
567
|
```sh
|
|
436
|
-
node-scraper --
|
|
568
|
+
node-scraper --plugin-config AllPlugins
|
|
437
569
|
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
**Generate a reference config for specific plugins:**
|
|
573
|
+
```sh
|
|
574
|
+
node-scraper --gen-reference-config run-plugins BiosPlugin OsPlugin
|
|
438
575
|
```
|
|
439
576
|
This will generate the following config:
|
|
440
577
|
```json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: amd-node-scraper
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.2
|
|
4
4
|
Summary: A framework for automated error detection and data collection
|
|
5
5
|
Project-URL: homepage, https://github.com/amd/node-scraper
|
|
6
6
|
Project-URL: documentation, https://github.com/amd/node-scraper
|
|
@@ -13,7 +13,7 @@ Requires-Dist: pydantic>=2.8.2
|
|
|
13
13
|
Requires-Dist: paramiko<4.0.0,>=3.2.0
|
|
14
14
|
Requires-Dist: requests
|
|
15
15
|
Requires-Dist: pytz
|
|
16
|
-
Requires-Dist: urllib3
|
|
16
|
+
Requires-Dist: urllib3>=2.6.0
|
|
17
17
|
Provides-Extra: dev
|
|
18
18
|
Requires-Dist: build; extra == "dev"
|
|
19
19
|
Requires-Dist: black; extra == "dev"
|
|
@@ -42,6 +42,7 @@ system debug.
|
|
|
42
42
|
- ['run-plugins' sub command](#run-plugins-sub-command)
|
|
43
43
|
- ['gen-plugin-config' sub command](#gen-plugin-config-sub-command)
|
|
44
44
|
- ['compare-runs' subcommand](#compare-runs-subcommand)
|
|
45
|
+
- ['show-redfish-oem-allowable' subcommand](#show-redfish-oem-allowable-subcommand)
|
|
45
46
|
- ['summary' sub command](#summary-sub-command)
|
|
46
47
|
- [Configs](#configs)
|
|
47
48
|
- [Global args](#global-args)
|
|
@@ -113,7 +114,7 @@ options:
|
|
|
113
114
|
--sys-platform STRING
|
|
114
115
|
Specify system platform (default: None)
|
|
115
116
|
--plugin-configs [STRING ...]
|
|
116
|
-
built-in config names or paths to plugin config JSONs. Available built-in configs: NodeStatus (default: None)
|
|
117
|
+
built-in config names or paths to plugin config JSONs. Available built-in configs: AllPlugins, NodeStatus (default: None)
|
|
117
118
|
--system-config STRING
|
|
118
119
|
Path to system config json (default: None)
|
|
119
120
|
--connection-config STRING
|
|
@@ -144,6 +145,8 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
144
145
|
|
|
145
146
|
##### Example: connection_config.json
|
|
146
147
|
|
|
148
|
+
In-band (SSH) connection:
|
|
149
|
+
|
|
147
150
|
```json
|
|
148
151
|
{
|
|
149
152
|
"InBandConnectionManager": {
|
|
@@ -156,6 +159,24 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
|
|
|
156
159
|
}
|
|
157
160
|
```
|
|
158
161
|
|
|
162
|
+
Redfish (BMC) connection for Redfish-only plugins:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"RedfishConnectionManager": {
|
|
167
|
+
"host": "bmc.example.com",
|
|
168
|
+
"port": 443,
|
|
169
|
+
"username": "admin",
|
|
170
|
+
"password": "secret",
|
|
171
|
+
"use_https": true,
|
|
172
|
+
"verify_ssl": true,
|
|
173
|
+
"api_root": "redfish/v1"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
- `api_root` (optional): Redfish API path (e.g. `redfish/v1`). If omitted, the default `redfish/v1` is used. Override this when your BMC uses a different API version path.
|
|
179
|
+
|
|
159
180
|
**Notes:**
|
|
160
181
|
- If using SSH keys, specify `key_filename` instead of `password`.
|
|
161
182
|
- The remote user must have permissions to run the requested plugins and access required files. If needed, use the `--skip-sudo` argument to skip plugins requiring sudo.
|
|
@@ -347,6 +368,112 @@ node-scraper compare-runs path1 path2 --include-plugins DmesgPlugin --dont-trunc
|
|
|
347
368
|
|
|
348
369
|
You can pass multiple plugin names to `--skip-plugins` or `--include-plugins`.
|
|
349
370
|
|
|
371
|
+
#### **'show-redfish-oem-allowable' subcommand**
|
|
372
|
+
The `show-redfish-oem-allowable` subcommand fetches the list of OEM diagnostic types supported by your BMC (from the Redfish LogService `OEMDiagnosticDataType@Redfish.AllowableValues`). Use it to discover which types you can put in `oem_diagnostic_types_allowable` and `oem_diagnostic_types` in the Redfish OEM diag plugin config.
|
|
373
|
+
|
|
374
|
+
**Requirements:** A Redfish connection config (same as for RedfishOemDiagPlugin).
|
|
375
|
+
|
|
376
|
+
**Command:**
|
|
377
|
+
```sh
|
|
378
|
+
node-scraper --connection-config connection-config.json show-redfish-oem-allowable --log-service-path "redfish/v1/Systems/UBB/LogServices/DiagLogs"
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
Output is a JSON array of allowable type names (e.g. `["Dmesg", "JournalControl", "AllLogs", ...]`). Copy that list into your plugin config’s `oem_diagnostic_types_allowable` if you want to match your BMC.
|
|
382
|
+
|
|
383
|
+
**Redfish OEM diag plugin config example**
|
|
384
|
+
|
|
385
|
+
Use a plugin config that points at your LogService and lists the types to collect. Logs are written under the run log path (see `--log-path`).
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"name": "Redfish OEM diagnostic logs",
|
|
390
|
+
"desc": "Collect OEM diagnostic logs from Redfish LogService. Requires Redfish connection config.",
|
|
391
|
+
"global_args": {},
|
|
392
|
+
"plugins": {
|
|
393
|
+
"RedfishOemDiagPlugin": {
|
|
394
|
+
"collection_args": {
|
|
395
|
+
"log_service_path": "redfish/v1/Systems/UBB/LogServices/DiagLogs",
|
|
396
|
+
"oem_diagnostic_types_allowable": [
|
|
397
|
+
"JournalControl",
|
|
398
|
+
...
|
|
399
|
+
"AllLogs",
|
|
400
|
+
],
|
|
401
|
+
"oem_diagnostic_types": ["JournalControl", "AllLogs"],
|
|
402
|
+
"task_timeout_s": 600
|
|
403
|
+
},
|
|
404
|
+
"analysis_args": {
|
|
405
|
+
"require_all_success": false
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"result_collators": {}
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
- **`log_service_path`**: Redfish path to the LogService (e.g. DiagLogs). Must match your system (e.g. `UBB` vs. another system id).
|
|
414
|
+
- **`oem_diagnostic_types_allowable`**: Full list of types the BMC supports (from `show-redfish-oem-allowable` or vendor docs).
|
|
415
|
+
- **`oem_diagnostic_types`**: Subset of types to collect on each run (e.g. `["JournalControl", "AllLogs"]`).
|
|
416
|
+
- **`task_timeout_s`**: Max seconds to wait per collection task.
|
|
417
|
+
|
|
418
|
+
**How to use**
|
|
419
|
+
|
|
420
|
+
1. **Discover allowable types** (optional): run `show-redfish-oem-allowable` and paste the output into `oem_diagnostic_types_allowable` in your plugin config.
|
|
421
|
+
2. **Set `oem_diagnostic_types`** to the list you want to collect (e.g. `["JournalControl", "AllLogs"]`).
|
|
422
|
+
3. **Run the plugin** with a Redfish connection config and your plugin config:
|
|
423
|
+
```sh
|
|
424
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_oem_diag.json run-plugins RedfishOemDiagPlugin
|
|
425
|
+
```
|
|
426
|
+
4. Use **`--log-path`** to choose where run logs (and OEM diag archives) are written; archives go under `<log-path>/scraper_logs_<name>_<timestamp>/redfish_oem_diag_plugin/redfish_oem_diag_collector/`.
|
|
427
|
+
|
|
428
|
+
#### **RedfishEndpointPlugin**
|
|
429
|
+
|
|
430
|
+
The RedfishEndpointPlugin collects Redfish URIs (GET responses) and optionally runs checks on the returned JSON. It requires a Redfish connection config (same as RedfishOemDiagPlugin).
|
|
431
|
+
|
|
432
|
+
**How to run**
|
|
433
|
+
|
|
434
|
+
1. Create a connection config (e.g. `connection-config.json`) with `RedfishConnectionManager` and your BMC host, credentials, and API root.
|
|
435
|
+
2. Create a plugin config with `uris` to collect and optional `checks` for analysis (see example below). For example save as `plugin_config_redfish_endpoint.json`.
|
|
436
|
+
3. Run:
|
|
437
|
+
```sh
|
|
438
|
+
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_endpoint.json run-plugins RedfishEndpointPlugin
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
**Sample plugin config** (`plugin_config_redfish_endpoint.json`):
|
|
442
|
+
|
|
443
|
+
```json
|
|
444
|
+
{
|
|
445
|
+
"name": "RedfishEndpointPlugin",
|
|
446
|
+
"desc": "Redfish endpoint: collect URIs and optional checks",
|
|
447
|
+
"global_args": {},
|
|
448
|
+
"plugins": {
|
|
449
|
+
"RedfishEndpointPlugin": {
|
|
450
|
+
"collection_args": {
|
|
451
|
+
"uris": [
|
|
452
|
+
"/redfish/v1/",
|
|
453
|
+
"/redfish/v1/Systems/1",
|
|
454
|
+
"/redfish/v1/Chassis/1/Power"
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
"analysis_args": {
|
|
458
|
+
"checks": {
|
|
459
|
+
"/redfish/v1/Systems/1": {
|
|
460
|
+
"PowerState": "On",
|
|
461
|
+
"Status/Health": { "anyOf": ["OK", "Warning"] }
|
|
462
|
+
},
|
|
463
|
+
"/redfish/v1/Chassis/1/Power": {
|
|
464
|
+
"PowerControl/0/PowerConsumedWatts": { "max": 1000 }
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"result_collators": {}
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
- **`uris`**: List of Redfish paths (e.g. `/redfish/v1/`, `/redfish/v1/Systems/1`) to GET and store.
|
|
475
|
+
- **`checks`**: Optional. Map of URI to expected values or constraints for analysis. Supports exact match (e.g. `"PowerState": "On"`), `anyOf`, `min`/`max`, etc.
|
|
476
|
+
|
|
350
477
|
#### **'summary' sub command**
|
|
351
478
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
352
479
|
single summary.csv file. Sample run:
|
|
@@ -398,7 +525,11 @@ Below is an example that skips sudo requiring plugins and disables analysis.
|
|
|
398
525
|
```
|
|
399
526
|
|
|
400
527
|
#### Plugin config: **'--plugin-configs' command**
|
|
401
|
-
A plugin config can be used to compare the system data against the config specifications
|
|
528
|
+
A plugin config can be used to compare the system data against the config specifications.
|
|
529
|
+
Built-in configs include **NodeStatus** (a subset of plugins) and **AllPlugins** (runs every
|
|
530
|
+
registered plugin with default arguments—useful for generating a reference config from the full system).
|
|
531
|
+
|
|
532
|
+
Using a JSON file:
|
|
402
533
|
```sh
|
|
403
534
|
node-scraper --plugin-configs plugin_config.json
|
|
404
535
|
```
|
|
@@ -459,10 +590,16 @@ Here is an example of a comprehensive plugin config that specifies analyzer args
|
|
|
459
590
|
This command can be used to generate a reference config that is populated with current system
|
|
460
591
|
configurations. Plugins that use analyzer args (where applicable) will be populated with system
|
|
461
592
|
data.
|
|
462
|
-
|
|
593
|
+
|
|
594
|
+
**Run all registered plugins (AllPlugins config):**
|
|
463
595
|
```sh
|
|
464
|
-
node-scraper --
|
|
596
|
+
node-scraper --plugin-config AllPlugins
|
|
465
597
|
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
**Generate a reference config for specific plugins:**
|
|
601
|
+
```sh
|
|
602
|
+
node-scraper --gen-reference-config run-plugins BiosPlugin OsPlugin
|
|
466
603
|
```
|
|
467
604
|
This will generate the following config:
|
|
468
605
|
```json
|