Skip to content

Repository files navigation

Redfish Protocol Validator

Copyright 2020-2022 DMTF. All rights reserved.

About

The Redfish Protocol Validator tests the HTTP protocol behavior of a Redfish service to validate that it conforms to the Redfish Specification.

Installation

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

Requirements

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

Usage

The Redfish Protocol Validator can be configured using either command-line arguments or a configuration file (config.ini).

Configuration File

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 = both

To use a configuration file in a different location, use the --config option:

python rf_protocol_validator.py --config /path/to/myconfig.ini

Note: Command-line arguments always override configuration file settings, ensuring backward compatibility.

Command-Line Arguments

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.

Examples

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

Unit Tests

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

Release Process

  1. Go to the "Actions" page
  2. Select the "Release and Publish" workflow
  3. Click "Run workflow"
  4. Fill out the form
  5. Click "Run workflow"

About

The Redfish Protocol Validator tests the HTTP protocol behavior of a Redfish service to validate that it conforms to the Redfish specification.

Resources

Contributing

Stars

14 stars

Watchers

18 watching

Forks

Releases

Packages

Used by

Contributors

Languages