kloudbuster/kb_server/kloudbuster-swagger.yaml
Yichen Wang 6bbe5b9dbb Add Rest API to get availability zone list
Change-Id: I3a30a908098ae1024095f5fcfccf370f4ef790b8
2015-12-07 15:04:22 -08:00

470 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
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