Skip to content

Commit a0cac9b

Browse files
committedJul 8, 2020
initial commit
0 parents  commit a0cac9b

33 files changed

+10766
-0
lines changed
 

‎.gitignore

+129
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
# Usually these files are written by a python script from a template
32+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
33+
*.manifest
34+
*.spec
35+
36+
# Installer logs
37+
pip-log.txt
38+
pip-delete-this-directory.txt
39+
40+
# Unit test / coverage reports
41+
htmlcov/
42+
.tox/
43+
.nox/
44+
.coverage
45+
.coverage.*
46+
.cover
47+
.cache
48+
nosetests.xml
49+
coverage.xml
50+
*.cover
51+
*.py,cover
52+
.hypothesis/
53+
.pytest_cache/
54+
55+
# Protocol validator reports
56+
reports/
57+
58+
# Translations
59+
*.mo
60+
*.pot
61+
62+
# Django stuff:
63+
*.log
64+
local_settings.py
65+
db.sqlite3
66+
db.sqlite3-journal
67+
68+
# Flask stuff:
69+
instance/
70+
.webassets-cache
71+
72+
# Scrapy stuff:
73+
.scrapy
74+
75+
# Sphinx documentation
76+
docs/_build/
77+
78+
# PyBuilder
79+
target/
80+
81+
# Jupyter Notebook
82+
.ipynb_checkpoints
83+
84+
# IPython
85+
profile_default/
86+
ipython_config.py
87+
88+
# pyenv
89+
.python-version
90+
91+
# pipenv
92+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
94+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
95+
# install all needed dependencies.
96+
#Pipfile.lock
97+
98+
# celery beat schedule file
99+
celerybeat-schedule
100+
101+
# SageMath parsed files
102+
*.sage.py
103+
104+
# Environments
105+
.env
106+
.venv
107+
env/
108+
venv/
109+
ENV/
110+
env.bak/
111+
venv.bak/
112+
113+
# Spyder project settings
114+
.spyderproject
115+
.spyproject
116+
117+
# Rope project settings
118+
.ropeproject
119+
120+
# mkdocs documentation
121+
/site
122+
123+
# mypy
124+
.mypy_cache/
125+
.dmypy.json
126+
dmypy.json
127+
128+
# Pyre type checker
129+
.pyre/

‎.travis.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
dist: xenial
2+
language: python
3+
cache:
4+
- pip
5+
python:
6+
- '3.5'
7+
- '3.6'
8+
- '3.7'
9+
- '3.8'
10+
- 3.8-dev
11+
before_install:
12+
- pip install -U pip
13+
- pip install -U setuptools
14+
- pip install -U wheel
15+
install:
16+
- pip install tox-travis .[devel]
17+
script:
18+
- tox

‎AUTHORS.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Original Contribution:
2+
3+
* [Bill Dodd](https://github.com/billdodd) - Majec Systems

‎LICENSE.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
The Distributed Management Task Force (DMTF) grants rights under copyright in
2+
this software on the terms of the BSD 3-Clause License as set forth below; no
3+
other rights are granted by DMTF. This software might be subject to other rights
4+
(such as patent rights) of other parties.
5+
6+
7+
### Copyrights.
8+
9+
Copyright (c) 2019, Contributing Member(s) of Distributed Management Task Force,
10+
Inc.. All rights reserved.
11+
12+
Redistribution and use in source and binary forms, with or without modification,
13+
are permitted provided that the following conditions are met:
14+
15+
* Redistributions of source code must retain the above copyright notice, this
16+
list of conditions and the following disclaimer.
17+
* Redistributions in binary form must reproduce the above copyright notice, this
18+
list of conditions and the following disclaimer in the documentation and/or
19+
other materials provided with the distribution.
20+
* Neither the name of the Distributed Management Task Force (DMTF) nor the names
21+
of its contributors may be used to endorse or promote products derived from this
22+
software without specific prior written permission.
23+
24+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
28+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
31+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34+
35+
36+
### Patents.
37+
38+
This software may be subject to third party patent rights, including provisional
39+
patent rights ("patent rights"). DMTF makes no representations to users of the
40+
standard as to the existence of such rights, and is not responsible to
41+
recognize, disclose, or identify any or all such third party patent right,
42+
owners or claimants, nor for any incomplete or inaccurate identification or
43+
disclosure of such rights, owners or claimants. DMTF shall have no liability to
44+
any party, in any manner or circumstance, under any legal theory whatsoever, for
45+
failure to recognize, disclose, or identify any such third party patent rights,
46+
or for such party's reliance on the software or incorporation thereof in its
47+
product, protocols or testing procedures. DMTF shall have no liability to any
48+
party using such software, whether such use is foreseeable or not, nor to any
49+
patent owner or claimant, and shall have no liability or responsibility for
50+
costs or losses incurred if software is withdrawn or modified after publication,
51+
and shall be indemnified and held harmless by any party using the software from
52+
any and all claims of infringement by a patent owner for such use.
53+
54+
DMTF Members that contributed to this software source code might have made
55+
patent licensing commitments in connection with their participation in the DMTF.
56+
For details, see http://dmtf.org/sites/default/files/patent-10-18-01.pdf and
57+
http://www.dmtf.org/about/policies/disclosures.

‎README.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Redfish Protocol Validator
2+
3+
Copyright 2020 DMTF. All rights reserved.
4+
5+
## About
6+
7+
The Redfish Protocol Validator tests the HTTP protocol behavior of a Redfish service to validate that it conforms to the Redfish specification.
8+
9+
## Installation
10+
11+
`git clone https://github.com/DMTF/Redfish-Protocol-Validator.git`
12+
13+
## Requirements
14+
15+
The Redfish Protocol Validator requires Python version 3 (v3.5 and later).
16+
17+
Required external packages:
18+
19+
```
20+
aenum
21+
colorama
22+
pyasn1
23+
pyasn1-modules
24+
requests
25+
sseclient-py
26+
urllib3
27+
```
28+
29+
You may install the external packages by running:
30+
31+
`pip install -r requirements.txt`
32+
33+
## Usage
34+
35+
```
36+
usage: rf_protocol_validator.py [-h] --user USER --password PASSWORD --rhost
37+
RHOST [--log-level LOG_LEVEL]
38+
[--report-dir REPORT_DIR]
39+
[--report-type {html,tsv,both}]
40+
[--avoid-http-redirect]
41+
[--no-cert-check | --ca-bundle CA_BUNDLE]
42+
43+
Validate the protocol conformance of a Redfish service
44+
45+
optional arguments:
46+
-h, --help show this help message and exit
47+
--user USER, -u USER the username for authentication
48+
--password PASSWORD, -p PASSWORD
49+
the password for authentication
50+
--rhost RHOST, -r RHOST
51+
address of the Redfish service (with scheme)
52+
--log-level LOG_LEVEL
53+
the logging level (default: WARNING)
54+
--report-dir REPORT_DIR
55+
the directory for generated report files (default:
56+
"reports")
57+
--report-type {html,tsv,both}
58+
the type of report to generate: html, tsv, or both
59+
(default: both)
60+
--avoid-http-redirect
61+
avoid attempts to generate HTTP redirects for services
62+
that do not support HTTP
63+
--no-cert-check disable verification of host SSL certificates
64+
--ca-bundle CA_BUNDLE
65+
the file or directory containing trusted CAs
66+
```
67+
68+
Example: `python rf_protocol_validator.py -r https://192.168.1.100 -u USERNAME -p PASSWORD`
69+
70+
## Unit tests
71+
72+
The Redfish-Protocol-Validator unit tests are executed using the `tox` package.
73+
74+
You may install `tox` by running:
75+
76+
`pip install tox`
77+
78+
Running the unit tests:
79+
80+
`tox`

‎assertions/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)