# Subunit Describe Calls Utility

subunit-describe-calls is a parser for subunit streams to determine what REST API calls are made inside of a test and in what order they are called.

## Runtime Arguments

- `--subunit, -s`: (Optional) The path to the subunit file being parsed, defaults to stdin
- `--non-subunit-name, -n`: (Optional) The file_name that the logs are being stored in
- `--output-file, -o`: (Optional) The path where the JSON output will be written to. This contains more information than is present in stdout.
- `--ports, -p`: (Optional) The path to a JSON file describing the ports being used by different services
- `--verbose, -v`: (Optional) Print Request and Response Headers and Body data to stdout

## Usage

subunit-describe-calls will take in either stdin subunit v1 or v2 stream or a file path which contains either a subunit v1 or v2 stream passed via the –subunit parameter. This is then parsed checking for details contained in the file_bytes of the –non-subunit-name parameter (the default is pythonlogging which is what Tempest uses to store logs). By default the OpenStack Kilo release port defaults (http://bit.ly/22jpF5P) are used unless a file is provided via the –ports option. The resulting output is dumped in JSON output to the path provided in the –output-file option.

### Ports file JSON structure

    {
        "<port number>": "<name of service>",
        ...
    }

### Output file JSON structure

    {
        "full_test_name[with_id_and_tags]": [
            {
                "name": "The ClassName.MethodName that made the call",
                "verb": "HTTP Verb",
                "service": "Name of the service",
                "url": "A shortened version of the URL called",
                "status_code": "The status code of the response",
                "request_headers": "The headers of the request",
                "request_body": "The body of the request",
                "response_headers": "The headers of the response",
                "response_body": "The body of the response"
            }
        ]
    }

this page last updated: 2020-03-30 08:59:08

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug questions?