Skip to main content

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"

Release files for redfish-protocol-validator 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redfish-protocol-validator 1.3.1
File Size Uploaded
redfish_protocol_validator-1.3.1.tar.gz 88.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redfish-protocol-validator 1.3.1
File Interpreter ABI Platform
redfish_protocol_validator-1.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 183.8 kB

Release files / redfish_protocol_validator-1.3.1.tar.gz

Download URL redfish_protocol_validator-1.3.1.tar.gz
Size 88.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c0a3204763479a62d9848b5b9d14773d59fe1583c255403707c5e62635883e9c
BLAKE2b-256 checksum
How to use checksums
e5cb948f13d5ea1a8e18eaf0cb10e7673ac7606e0f0a7c37298aae13ce1cb227
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / redfish_protocol_validator-1.3.1-py3-none-any.whl

Download URL redfish_protocol_validator-1.3.1-py3-none-any.whl
Size 95.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
638b6ed88e51902b50f347d2b963f0836fcf87e3cf564bfc150df92f61becbbe
BLAKE2b-256 checksum
How to use checksums
a7d36d6cc9ecc5ea5e93fbf7ce2afcd964acd80d01ff5947cd5e3cd0511d7050
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.3.1 This release

2 release files

1.3.0

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page