18e555dbd3
Change-Id: Ic6d797fad051d6daeb8aca8c0bd6127fc19bbbf7
473 lines
16 KiB
YAML
473 lines
16 KiB
YAML
swagger: '2.0'
|
|
info:
|
|
title: KloudBuster Rest API Specification
|
|
description: |
|
|
A tool to load OpenStack clouds end to end in both control plane and
|
|
data plane.
|
|
version: "0.1.0"
|
|
host: 127.0.0.1:8080
|
|
basePath: /api
|
|
schemes:
|
|
- http
|
|
- https
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
paths:
|
|
/config/default_config:
|
|
get:
|
|
description: |
|
|
Get the default KloudBuster configuration from server
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: The default configuration
|
|
schema:
|
|
type: string
|
|
format: json
|
|
|
|
/config/az_list/{session_id}:
|
|
get:
|
|
description: |
|
|
Get the available availability zone list
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: |
|
|
The available availability zones for the session
|
|
schema:
|
|
$ref: '#/definitions/AZ_List'
|
|
400:
|
|
description: Cannot get the availability zone list
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/config/hypervisor_list/{session_id}:
|
|
get:
|
|
description: |
|
|
Get the available hypervisor list
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: |
|
|
The available hypervisors for the session
|
|
schema:
|
|
$ref: '#/definitions/Hypervisor_List'
|
|
400:
|
|
description: Cannot get the hypervisor list
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/config/running_config:
|
|
post:
|
|
description: |
|
|
Create a new KloudBuster session with provided configuration
|
|
parameters:
|
|
- name: arg
|
|
in: body
|
|
description: The configuration for KloudBuster
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Configuration_New'
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: Session is already existed
|
|
schema:
|
|
type: string
|
|
format: md5sum
|
|
description: The existed session ID
|
|
201:
|
|
description: Session is created successfully
|
|
schema:
|
|
type: string
|
|
format: md5sum
|
|
description: The newly created session ID
|
|
400:
|
|
description: Error while parsing the configuration file
|
|
schema:
|
|
type: string
|
|
description: Errors in details
|
|
|
|
/config/topology_config/{session_id}:
|
|
get:
|
|
description: |
|
|
Get the topology configuration of a KloudBuster session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: The topology configuration
|
|
schema:
|
|
$ref: '#/definitions/Topology_Config'
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/config/running_config/{session_id}:
|
|
get:
|
|
description: |
|
|
Get the running configuration of a KloudBuster session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: The running configuration
|
|
schema:
|
|
type: string
|
|
format: json
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
put:
|
|
description: |
|
|
Update KloudBuster configuration for an existing session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: |
|
|
The session to be updated
|
|
required: true
|
|
- name: arg
|
|
in: body
|
|
description: The configuration to be updated
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Configuration_Update'
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: |
|
|
Configuration of given session is updated successfully
|
|
400:
|
|
description: Invalid JSON or error while parsing the configuration file
|
|
schema:
|
|
type: string
|
|
description: Errors in details
|
|
403:
|
|
description: |
|
|
Cannot update configuration if KloudBuster is busy or in error state
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
delete:
|
|
description: |
|
|
Terminate the given session in KloudBuster server
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
in: path
|
|
description: |
|
|
The session to be terminated
|
|
required: true
|
|
tags:
|
|
- config
|
|
responses:
|
|
200:
|
|
description: The session is terminated successfully
|
|
403:
|
|
description: Session can be destroyed only if it is at READY
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/version:
|
|
get:
|
|
description: Get KloudBuster server version
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
description: The version of the KloudBuster server
|
|
|
|
/kloudbuster/status/{session_id}:
|
|
get:
|
|
description: |
|
|
Get KloudBuster server status for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
format: json
|
|
description: The status of the given session
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/log/{session_id}:
|
|
get:
|
|
description: |
|
|
Get KloudBuster console log for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
- name: offset
|
|
type: integer
|
|
in: query
|
|
description: The offset of the log file to read
|
|
required: false
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
description: The console log of the given session
|
|
400:
|
|
description: Parameter is missing or invalid
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/report/{session_id}:
|
|
get:
|
|
description: |
|
|
Get the latest KloudBuster periodical report for a given session.
|
|
Set final to true to retrieve the final report.
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: The session to be queried
|
|
required: true
|
|
- name: final
|
|
type: boolean
|
|
in: query
|
|
description: Set to true to retrieve the final report
|
|
required: false
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
description: The periodical report of the given session
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/stage/{session_id}:
|
|
post:
|
|
description: |
|
|
Stage all resources to run KloudBuster for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: |
|
|
The session to be staged
|
|
required: true
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: |
|
|
Successfully staged all resources for the given session
|
|
403:
|
|
description: |
|
|
Unable to stage resources when status is not at READY
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/run_test/{session_id}:
|
|
post:
|
|
description: |
|
|
Run KloudBuster for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: |
|
|
The session to be run
|
|
required: true
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: Successfully start the given session
|
|
403:
|
|
description: |
|
|
Unable to start the tests when status is not at STAGED
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/stop_test/{session_id}:
|
|
post:
|
|
description: |
|
|
Stop the KloudBuster tests for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: |
|
|
The session to be stopped
|
|
required: true
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: Scheduled to stop the tests for the given session
|
|
403:
|
|
description: |
|
|
Unable to stop the tests when status is not at RUNNING
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
/kloudbuster/cleanup/{session_id}:
|
|
post:
|
|
description: |
|
|
Cleanup KloudBuster for a given session
|
|
parameters:
|
|
- name: session_id
|
|
type: string
|
|
format: md5sum
|
|
in: path
|
|
description: |
|
|
The session to be run
|
|
required: true
|
|
tags:
|
|
- kloudbuster
|
|
responses:
|
|
200:
|
|
description: Successfully cleaned up the given session
|
|
403:
|
|
description: |
|
|
No resources has been staged, or session is busy
|
|
404:
|
|
description: The session_id is not found or invalid
|
|
|
|
definitions:
|
|
Configuration_New:
|
|
required:
|
|
- credentials
|
|
- kb_cfg
|
|
properties:
|
|
credentials:
|
|
type: string
|
|
format: json
|
|
description: Credentials for the clouds
|
|
kb_cfg:
|
|
type: string
|
|
format: json
|
|
description: User overrided configs
|
|
topo_cfg:
|
|
type: string
|
|
format: json
|
|
description: Topology config
|
|
tenants_cfg:
|
|
type: string
|
|
format: json
|
|
description: Tenant and User list for reusing
|
|
storage_mode:
|
|
type: boolean
|
|
description: Running web UI for storage testing
|
|
Configuration_Update:
|
|
properties:
|
|
kb_cfg:
|
|
type: string
|
|
format: json
|
|
description: User overrided configs
|
|
topo_cfg:
|
|
type: string
|
|
format: json
|
|
description: Topology config
|
|
tenants_cfg:
|
|
type: string
|
|
format: json
|
|
description: Tenant and User list for reusing
|
|
AZ_List:
|
|
properties:
|
|
server:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Available availability zones for server cloud
|
|
client:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Available availability zones for client cloud
|
|
Hypervisor_List:
|
|
properties:
|
|
server:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Available hypervisors for server cloud
|
|
client:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Available hypervisors for client cloud
|
|
Topology_Config:
|
|
properties:
|
|
servers_rack:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Hypervisors to hold server VMs
|
|
clients_rack:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: json
|
|
description: Hypervisors to hold client VMs
|