Copyright 2020-2022 DMTF. All rights reserved.
The Redfish Protocol Validator tests the HTTP protocol behavior of a Redfish service to validate that it conforms to the Redfish Specification.
From PyPI:
pip install redfish_protocol_validator
From GitHub:
git clone https://github.com/DMTF/Redfish-Protocol-Validator.git
cd Redfish-Protocol-Validator
python setup.py sdist
pip install dist/redfish_protocol_validator-x.x.x.tar.gz
The Redfish Protocol Validator requires Python3.
Required external packages:
aenum
colorama
pyasn1
pyasn1-modules
requests
sseclient-py
urllib3
If installing from GitHub, you may install the external packages by running:
pip install -r requirements.txt
The Redfish Protocol Validator can be configured using either command-line arguments or a configuration file (config.ini).
You can use a config.ini file in the current working directory with your settings. This is useful for repeated operations with the same configuration.
Example config.ini:
[Authentication]
user = username
password = password
[Connection]
rhost = https://RedfishIP
no-cert-check = true
avoid-http-redirect = true
[Logging]
log-level = WARNING
[Reporting]
report-dir = reports
report-type = bothTo use a configuration file in a different location, use the --config option:
python rf_protocol_validator.py --config /path/to/myconfig.iniNote: Command-line arguments always override configuration file settings, ensuring backward compatibility.
usage: rf_protocol_validator.py [-h] [--version] [--config CONFIG] [--user USER]
[--password PASSWORD] [--rhost RHOST]
[--log-level LOG_LEVEL] [--report-dir REPORT_DIR]
[--report-type {html,tsv,both}]
[--avoid-http-redirect]
[--no-cert-check | --ca-bundle CA_BUNDLE]
Validate the protocol conformance of a Redfish service
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--config CONFIG, -c CONFIG
path to configuration file; defaults to "config.ini"
in current directory
--user USER, -u USER the username for authentication
--password PASSWORD, -p PASSWORD
the password for authentication
--rhost RHOST, -r RHOST
address of the Redfish service (with scheme)
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
the logging level (default: WARNING)
--report-dir REPORT_DIR
the directory for generated report files (default:
"reports")
--report-type {html,tsv,both}
the type of report to generate: html, tsv, or both
(default: both)
--avoid-http-redirect
avoid attempts to generate HTTP redirects for services
that do not support HTTP
--no-cert-check disable verification of host SSL certificates
--ca-bundle CA_BUNDLE
the file or directory containing trusted CAs
Note: The --user, --password, and --rhost arguments are required if not provided in the configuration file.
Using command-line arguments only (backward compatible):
python rf_protocol_validator.py -u username -p password -r https://RedfishIP
Using a configuration file:
# Uses config.ini from current directory
python rf_protocol_validator.py
Using a custom configuration file:
python rf_protocol_validator.py --config /path/to/custom.ini
Mixing configuration file and command-line arguments (command-line overrides config):
# Uses settings from config.ini but overrides the report directory
python rf_protocol_validator.py --report-dir /different/output
The Redfish Protocol Validator unit tests are executed using the tox package.
You may install tox by running:
pip install tox
Running the unit tests:
tox
- Go to the "Actions" page
- Select the "Release and Publish" workflow
- Click "Run workflow"
- Fill out the form
- Click "Run workflow"