Files
kata-containers/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml
Jose Carlos Venegas Munoz 3251beaa23 version: Update clh to master
Move to master tip to get support for vfio hotplug.

Changes:

df79499 net: Do not check multiqueue for new interface
7d75b1f build(deps): bump quote from 1.0.2 to 1.0.3
841bf89 build(deps): bump failure from 0.1.6 to 0.1.7
86acdb9 build(deps): bump failure_derive from 0.1.6 to 0.1.7
4b32863 docs: Update api.md for VFIO hotplug
e518098 scripts: Make integration tests fail if some important commands fail
be6f91d tests: Refactoring vhost_user_net test cases
6341736 vhost_user_net: Provide tap option for vhost_user_net backend
e0419e9 build: Don't cancel older master builds
f0a3e7c build: Bump linux-loader and vm-memory dependencies
6539d4a vfio: handle case for missing iommu_group
cfbebd8 build(deps): bump micro_http from `88011bd` to `02def92`
4214806 tests: Remove further use of sudo subshells
2baf5ab tests: Simplfy the shm region check
97affbe tests: Re-enable the virtio-fs tests and make them work with virtio-mmio
7b1d5c1 tests: Remove entropy check from vhost-user-block test
a4cca5f tests: sha1sums --check can take a list of hashes
689415e build(deps): bump libssh2-sys from 0.2.15 to 0.2.16
09829c4 vmm: Remove IO bus strong reference from Vm
2dbb376 vmm: Remove all Weak references from DeviceManager
9e915a0 vmm: Remove all Weak references from CpuManager
49268bf pci: Remove all Weak references from PciBus
ca426cf devices: Make Bus hold a list of Weak BusDevice references
7773812 vmm: Store the list of BusDevice devices from DeviceManager
d0820cc vmm: Make add_vfio_device mutable
948f808 vm: Rename DeviceManager field in Vm structure
aa638ea build(deps): bump backtrace from 0.3.44 to 0.3.45
1152b1a ci: Add VFIO hotplug integration test
d47f733 vmm: Break the cyclic dependency between DeviceManager and IO bus
c1af13e vmm: Update VmConfig when adding new device
a86f436 vmm: Add VFIO PCI device hotplug support
320fea0 vmm: Factorize VFIO PCI device creation
00716f9 vmm: Store virtio-iommu device from DeviceManager
5902dfa vmm: Store VFIO KVM device from DeviceManager
d9c1b43 vmm: Store MSI InterruptManager from DeviceManager
02adc40 vmm: Store PciBus from DeviceManager
3f396d8 resources: Enable ACPI PCI hotplug in the kernel config
d0218e9 vmm: Trigger hotplug notification to the guest
0e58741 vmm: api: Introduce new "add-device" HTTP endpoint
0f1396a vmm: Insert PCI device hotplug operation region on IO bus
65774e8 vmm: Implement BusDevice for DeviceManager
2eb26d4 devices: acpi: Update GED to support PCI devices hotplug
8dbc843 vmm: acpi: Add PCNT method to invoke DVNT
c62db97 vmm: acpi: Add _EJ0 to each PCI device slot
4dc2a39 vmm: acpi: Create PHPR container
c3a0685 vmm: acpi: Add notification method for PCI device slots
5a68d5b vmm: acpi: Create PCI device slots
ead86bb build(deps): bump micro_http from `9945928` to `88011bd`
22dd49d tests: Test virtio-fs with virtio-mmio
642b890 vm-virtio: mmio: Enable reporting of SHM regions via config fields
0223cf8 ci: Update ClearLinux image
ed396b4 build(deps): bump vm-memory from `2099f41` to `a84a7b8`
81c2294 vhost_rs: remove unused crate
5200bf3 Cargo: switch vhost_rs to external crate
65a38e6 vm-virtio: vhost_user: Fix blk device configuration space offset value
d6e6901 vmm/api: Fix vm.info response definition
8f37200 build(deps): bump micro_http from `3eb926c` to `9945928`
cc2d03d build(deps): bump regex-syntax from 0.6.15 to 0.6.16
f5b37e3 build(deps): bump regex-syntax from 0.6.14 to 0.6.15
009f4d2 build(deps): bump micro_http from `8d48e73` to `3eb926c`
5ade9d4 tests: Remove unnecessary sleeps and kill on clean shutdown tests
c98949b tests: Wait for VMM to exit in test_serial_file/test_console_file
2f58fb8 tests: Test rebooting works for block self spawn test
e817aa6 tests: Improve VM shutdown behaviour
559b70c tests: Make output capture optional
dae7608 tests: Remove duplicated network configuration
6466ad2 tests: Remove duplicated disk configuration
9f1ac24 tests: Make the GuestCommand take a reference to the guest
49e70c6 tests: Port integration tests over to GuestCommand
67a5882 tests: Introduce new GuestCommand to handle launching the guest
8142c82 vmm: Move DeviceManager into an Arc<Mutex<>>
531f4ff vhost_user_fs: Remove an unneeded unwrap in handle_event
e52129e vhost_user_fs: Process events from HIPRIO queue
0c5c470 build(deps): bump micro_http from `b85757e` to `8d48e73`
5b96dd5 ci: Don't give special capabilities to Rust vhost-user-fs backend
d8d790b vhost_rs: Don't check for SLAVE_SEND_FD on SET_SLAVE_REQ_FD
1c5562b vhost_user_fs: Add support for EVENT_IDX
eae4f1d vhost_user_fs: Add support for indirect descriptors
ea0bc24 vhost_user_fs: Be honest about protocol supported features
42937c9 vm-virtio: Add support for indirect descriptors
d7b0b98 tests: Move integration tests to their own directory
3cb4513 vhost_rs: control SlaveFsCacheReq with vhost-user-slave feature
9de3ace devices: implement Aml trait for GED device
b77fdeb msi/msi-x: Prevent from losing masked interrupts
8423c08 build(deps): bump proc-macro2 from 1.0.8 to 1.0.9
6315f16 build(deps): bump syn from 1.0.15 to 1.0.16
4cf89d3 pci: handle extended configuration space properly
f6b9445 pci: fix pci MMCONFIG address parsing
77ee331 resources: Enable KASLR in kernel config
bba5ef3 vmm: Remove deprecated CPU syntax
374ac77 main, vmm: Remove deprecated --vhost-user-net
ffd816e main, vmm: Remove deprecated --vhost-user-blk
d04e0dc build(deps): bump crossbeam-utils from 0.7.0 to 0.7.2
7da5b53 build(deps): bump ssh2 from 0.7.1 to 0.8.0
109c7f7 build(deps): bump hermit-abi from 0.1.7 to 0.1.8
812a6b9 build(deps): bump syn from 1.0.14 to 1.0.15
ad30791 build(deps): bump memchr from 2.3.2 to 2.3.3
94f2fc3 release-notes: Update for v0.5.1 bug fix release
f190cb0 build(deps): bump libc from 0.2.66 to 0.2.67
299eb28 build(deps): bump micro_http from `6fd1545` to `b85757e`
d2f1749 vmm: config: Add poll_queue property to DiskConfig
378dd81 vmm: openapi: Add missing "direct" knob to DiskConfig
056f548 vmm: openapi: Fix "readonly" and "wce" defaults in DiskConfig
4ebf01b vhost_user_backend: Don't report out socket broken errors
b5755e9 vhost_rs: vhost_user: Return error when connection broken
c49e31a vmm: api: Return a resize error when resize fails
ebc6391 vmm: api: Fix resize command typos
9de7553 vmm: openapi: Update DiskConfig
ed1e781 vmm: Workaround double reboot triggered by the kernel
5c06b7f vhost_user_block: Implement optional static polling
0e4e27e vhost_user_block: Make use of the EVENT_IDX feature
1ef6996 vhost_user_backend: Add helpers for EVENT_IDX
d17fa78 vm-virtio: Implement support for EVENT_IDX
793d4e7 vmm: Move codebase to GuestMemoryAtomic from vm-memory
ddf6caf ci: Improve test_memory_mergeable_on stability
af621be build(deps): bump micro_http from `57ac9df` to `6fd1545`
4970e2f vhost-user-fs: add dax tests for vhost_user_fs rust daemon
59958f0 vhost_user_fs: add the ability to set slave req fd
3f09eff vhost_user_fs: add fs cache request operations
956a84f vhost_user_fs: add necessary structs for map/unmap requests
269d660 vhost_user_fs: add SlaveFsCacheReq to handle map/unmap
be78c6d vhost_rs: Fix unit test race condition
f7378bc tests: Add self spawning vhost-user-block test
1f6cbad vmm: Add support for spawning vhost-user-block backend
4d60ef5 vm-virtio: vhost_user: block: On shutdown() drop the socket
7fabca3 ci: Don't run unit tests in a privileged container
2724716 build(deps): bump micro_http from `4827569` to `57ac9df`
08a68f2 build: Run unit tests on worker node
f21cd31 scripts: dev_cli: Add more privileges for the integration tests
a94887e build: Use dev container for integration tests
3edc2bd vmm: Prevent memory overcommitment through virtio-fs shared regions
968c90a build(deps): bump hermit-abi from 0.1.6 to 0.1.7
7485a0c Revert "build: Don't fail build on test_vfio failure"
cbc0ac3 build(deps): bump micro_http from `7a23e54` to `4827569`
7fdb5ae build(deps): bump vm-memory from `eb2fc0b` to `f615b19`
0d748c5 build(deps): bump scopeguard from 1.0.0 to 1.1.0
6692fa6 build(deps): bump thiserror from 1.0.10 to 1.0.11
f03602a tests: Add self spawning vhost-user-net test
bc75c1b vmm: Add support for spawning vhost-user-net backend
d054ddd vm-virtio: Retry connections to vhost-user backends
b04eb47 vmm: Follow the "exe" symlink from the PID directory in /proc
5038878 vm-virtio: vhost_user: net: On shutdown() drop the socket
7c9e8b1 vmm: device_manager: Shutdown all virtio devices
545ea9e vm-virtio: Add shutdown method to VirtioDevice trait
ebd8369 main: Display git commit hash with the '--version' option
bdb92f9 build(deps): bump micro_http from `7fb2e46` to `7a23e54`
2061f0d tests: Always create shared VFIO directory from scratch
e8e4f43 tests: Use hugepages for test_vfio
296ada9 scripts: dev_cli: Fix post build permissions for the whole tree
287897d tests: Run test_vfio with PCI binary
1661444 build(deps): bump serde_json from 1.0.47 to 1.0.48
96479da build(deps): bump vm-memory from `f3d1c27` to `eb2fc0b`
88c1683 build(deps): bump memchr from 2.3.1 to 2.3.2
8d3e4f9 build(deps): bump micro_http from `c9e900c` to `7fb2e46`
53481aa docs: Update documentation related to multiqueue network
4dd16c2 vm-virtio: Detect if a tap interface supports multiqueue
8627656 net_util: Provide more accurate error messages
6e5338d build(deps): bump memchr from 2.3.0 to 2.3.1
014844d build: Don't fail build on test_vfio failure
779cbfe build(deps): bump backtrace from 0.3.43 to 0.3.44
700df9e vhost_user_net: Port to new exit event strategy
c33c38b vhost_user_block: Port to new exit event strategy
da7f31d bin: vhost_user_fs: Port to new exit event strategy
759a0be vhost_user_backend: Add support for handling exiting of worker thread
b17bafb build(deps): bump micro_http from `1de6f32` to `c9e900c`
7ca691f vhost_user_block: Implement and use worker shutdown
e619fe6 vhost_user_net: Remove "Clone" implementation
613f254 vhost_user_backend: Wait on the worker thread
97ab767 vhost_user_net: Shutdown worker thread on exit
7f032c8 bin: vhost_user_fs: Shutdown worker thread on exit
99cb8dc bin: vhost_user_fs use error! macro logging for consistency
710394b vhost_user_block: Forward the error from unexpected event
4f4c3d3 vhost_user_block: Make Error behave like net and fs versions
f1e19d6 vhost_user_backend: Forward the error from main thread
80c9dc2 Revert "vhost-user-backend: Correct error handling in run"
c706ca1 scripts: dev_cli: Simplify the build command exit path
0a1d6e1 scripts: dev_cli: Fix build directory permisions
c8fa809 scripts: dev_cli: Run unprivileged containers as the host user
26d8cae build(deps): bump micro_http from `ae15e75` to `1de6f32`
572aaa7 build(deps): bump serde_json from 1.0.46 to 1.0.47
04cb35e scripts: Make dev_cli.sh exit on test error
9bf100c build: Run worker and master build in parallel
bfbca59 scripts: Don't use interactive & terminal mode for docker
6e6eb5b build: Do cargo tests, unit tests and OpenAPI check on master
a5b053f scripts: dev_cli: Use a tmpfs mount for /tmp

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2020-03-19 19:13:51 +00:00

692 lines
16 KiB
YAML

openapi: 3.0.1
info:
description: Local HTTP based API for managing and inspecting a cloud-hypervisor
virtual machine.
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: Cloud Hypervisor API
version: 0.3.0
servers:
- url: http://localhost/api/v1
paths:
/vmm.ping:
get:
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/VmmPingResponse'
description: The VMM information
summary: Ping the VMM to check for API server availability
/vmm.shutdown:
put:
operationId: shutdownVMM
responses:
"204":
description: The VMM successfully shutdown.
summary: Shuts the cloud-hypervisor VMM.
/vm.info:
get:
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/VmInfo'
description: The VM information
summary: Returns general information about the cloud-hypervisor Virtual Machine
(VM) instance.
/vm.create:
put:
operationId: createVM
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VmConfig'
description: The VM configuration
required: true
responses:
"204":
description: The VM instance was successfully created.
summary: Create the cloud-hypervisor Virtual Machine (VM) instance. The instance
is not booted, only created.
/vm.delete:
put:
operationId: deleteVM
responses:
"204":
description: The VM instance was successfully deleted.
summary: Delete the cloud-hypervisor Virtual Machine (VM) instance.
/vm.boot:
put:
operationId: bootVM
responses:
"204":
description: The VM instance successfully booted.
"404":
description: The VM instance could not boot because it is not created yet
summary: Boot the previously created VM instance.
/vm.pause:
put:
operationId: pauseVM
responses:
"204":
description: The VM instance successfully paused.
"404":
description: The VM instance could not pause because it is not created yet
"405":
description: The VM instance could not pause because it is not booted.
summary: Pause a previously booted VM instance.
/vm.resume:
put:
operationId: resumeVM
responses:
"204":
description: The VM instance successfully paused.
"404":
description: The VM instance could not resume because it is not booted yet
"405":
description: The VM instance could not resume because it is not paused.
summary: Resume a previously paused VM instance.
/vm.shutdown:
put:
operationId: shutdownVM
responses:
"204":
description: The VM instance successfully shut down.
"404":
description: The VM instance could not shut down because is not created.
"405":
description: The VM instance could not shut down because it is not started.
summary: Shut the VM instance down.
/vm.reboot:
put:
operationId: rebootVM
responses:
"204":
description: The VM instance successfully rebooted.
"404":
description: The VM instance could not reboot because it is not created.
"405":
description: The VM instance could not reboot because it is not booted.
summary: Reboot the VM instance.
/vm.resize:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VmResize'
description: The target size for the VM
required: true
responses:
"204":
description: The VM instance was successfully resized.
"404":
description: The VM instance could not be resized because it is not created.
summary: Resize the VM
/vm.add-device:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VmAddDevice'
description: The path of the new device
required: true
responses:
"204":
description: The new device was successfully added to the VM instance.
"404":
description: The new device could not be added to the VM instance.
summary: Add a new device to the VM
components:
schemas:
VmmPingResponse:
description: Virtual Machine Monitor information
example:
version: version
properties:
version:
type: string
required:
- version
type: object
VmInfo:
description: Virtual Machine information
example:
state: Created
config:
console:
mode: "false"
file: file
iommu: false
memory:
mergeable: false
file: file
size: 1
disks:
- path: path
num_queues: 5
readonly: false
iommu: false
queue_size: 5
vhost_socket: vhost_socket
vhost_user: false
direct: false
wce: true
poll_queue: true
- path: path
num_queues: 5
readonly: false
iommu: false
queue_size: 5
vhost_socket: vhost_socket
vhost_user: false
direct: false
wce: true
poll_queue: true
cpus:
boot_vcpus: 1
max_vcpus: 1
devices:
- path: path
iommu: false
- path: path
iommu: false
kernel:
path: path
rng:
iommu: false
src: /dev/urandom
fs:
- sock: sock
num_queues: 9
queue_size: 3
cache_size: 2
dax: true
tag: tag
- sock: sock
num_queues: 9
queue_size: 3
cache_size: 2
dax: true
tag: tag
vsock:
- sock: sock
iommu: false
cid: 3
- sock: sock
iommu: false
cid: 3
pmem:
- mergeable: false
file: file
size: 4
iommu: false
- mergeable: false
file: file
size: 4
iommu: false
cmdline:
args: args
iommu: false
serial:
mode: "false"
file: file
iommu: false
net:
- tap: tap
num_queues: 2
iommu: false
queue_size: 7
vhost_socket: vhost_socket
vhost_user: false
ip: 192.168.249.1
mac: mac
mask: 255.255.255.0
- tap: tap
num_queues: 2
iommu: false
queue_size: 7
vhost_socket: vhost_socket
vhost_user: false
ip: 192.168.249.1
mac: mac
mask: 255.255.255.0
properties:
config:
$ref: '#/components/schemas/VmConfig'
state:
enum:
- Created
- Running
- Shutdown
- Paused
type: string
required:
- config
- state
type: object
VmConfig:
description: Virtual machine configuration
example:
console:
mode: "false"
file: file
iommu: false
memory:
mergeable: false
file: file
size: 1
disks:
- path: path
num_queues: 5
readonly: false
iommu: false
queue_size: 5
vhost_socket: vhost_socket
vhost_user: false
direct: false
wce: true
poll_queue: true
- path: path
num_queues: 5
readonly: false
iommu: false
queue_size: 5
vhost_socket: vhost_socket
vhost_user: false
direct: false
wce: true
poll_queue: true
cpus:
boot_vcpus: 1
max_vcpus: 1
devices:
- path: path
iommu: false
- path: path
iommu: false
kernel:
path: path
rng:
iommu: false
src: /dev/urandom
fs:
- sock: sock
num_queues: 9
queue_size: 3
cache_size: 2
dax: true
tag: tag
- sock: sock
num_queues: 9
queue_size: 3
cache_size: 2
dax: true
tag: tag
vsock:
- sock: sock
iommu: false
cid: 3
- sock: sock
iommu: false
cid: 3
pmem:
- mergeable: false
file: file
size: 4
iommu: false
- mergeable: false
file: file
size: 4
iommu: false
cmdline:
args: args
iommu: false
serial:
mode: "false"
file: file
iommu: false
net:
- tap: tap
num_queues: 2
iommu: false
queue_size: 7
vhost_socket: vhost_socket
vhost_user: false
ip: 192.168.249.1
mac: mac
mask: 255.255.255.0
- tap: tap
num_queues: 2
iommu: false
queue_size: 7
vhost_socket: vhost_socket
vhost_user: false
ip: 192.168.249.1
mac: mac
mask: 255.255.255.0
properties:
cpus:
$ref: '#/components/schemas/CpusConfig'
memory:
$ref: '#/components/schemas/MemoryConfig'
kernel:
$ref: '#/components/schemas/KernelConfig'
cmdline:
$ref: '#/components/schemas/CmdLineConfig'
disks:
items:
$ref: '#/components/schemas/DiskConfig'
type: array
net:
items:
$ref: '#/components/schemas/NetConfig'
type: array
rng:
$ref: '#/components/schemas/RngConfig'
fs:
items:
$ref: '#/components/schemas/FsConfig'
type: array
pmem:
items:
$ref: '#/components/schemas/PmemConfig'
type: array
serial:
$ref: '#/components/schemas/ConsoleConfig'
console:
$ref: '#/components/schemas/ConsoleConfig'
devices:
items:
$ref: '#/components/schemas/DeviceConfig'
type: array
vsock:
items:
$ref: '#/components/schemas/VsockConfig'
type: array
iommu:
default: false
type: boolean
required:
- cmdline
- kernel
type: object
CpusConfig:
example:
boot_vcpus: 1
max_vcpus: 1
properties:
boot_vcpus:
default: 1
minimum: 1
type: integer
max_vcpus:
default: 1
minimum: 1
type: integer
required:
- boot_vcpus
- max_vcpus
type: object
MemoryConfig:
example:
mergeable: false
file: file
size: 1
properties:
size:
format: int64
type: integer
file:
type: string
mergeable:
default: false
type: boolean
required:
- size
type: object
KernelConfig:
example:
path: path
properties:
path:
type: string
required:
- path
type: object
CmdLineConfig:
example:
args: args
properties:
args:
type: string
required:
- args
type: object
DiskConfig:
example:
path: path
num_queues: 5
readonly: false
iommu: false
queue_size: 5
vhost_socket: vhost_socket
vhost_user: false
direct: false
wce: true
poll_queue: true
properties:
path:
type: string
readonly:
default: false
type: boolean
direct:
default: false
type: boolean
iommu:
default: false
type: boolean
num_queues:
default: 1
type: integer
queue_size:
default: 128
type: integer
vhost_user:
default: false
type: boolean
vhost_socket:
type: string
wce:
default: true
type: boolean
poll_queue:
default: true
type: boolean
required:
- path
type: object
NetConfig:
example:
tap: tap
num_queues: 2
iommu: false
queue_size: 7
vhost_socket: vhost_socket
vhost_user: false
ip: 192.168.249.1
mac: mac
mask: 255.255.255.0
properties:
tap:
default: ""
type: string
ip:
default: 192.168.249.1
type: string
mask:
default: 255.255.255.0
type: string
mac:
type: string
iommu:
default: false
type: boolean
num_queues:
default: 2
type: integer
queue_size:
default: 256
type: integer
vhost_user:
default: false
type: boolean
vhost_socket:
type: string
type: object
RngConfig:
example:
iommu: false
src: /dev/urandom
properties:
src:
default: /dev/urandom
type: string
iommu:
default: false
type: boolean
required:
- src
type: object
FsConfig:
example:
sock: sock
num_queues: 9
queue_size: 3
cache_size: 2
dax: true
tag: tag
properties:
tag:
type: string
sock:
type: string
num_queues:
default: 1
type: integer
queue_size:
default: 1024
type: integer
dax:
default: true
type: boolean
cache_size:
format: int64
type: integer
required:
- sock
- tag
type: object
PmemConfig:
example:
mergeable: false
file: file
size: 4
iommu: false
properties:
file:
type: string
size:
format: int64
type: integer
iommu:
default: false
type: boolean
mergeable:
default: false
type: boolean
required:
- file
- size
type: object
ConsoleConfig:
example:
mode: "false"
file: file
iommu: false
properties:
file:
type: string
mode:
enum:
- "false"
- Tty
- File
- null
type: string
iommu:
default: false
type: boolean
required:
- mode
type: object
DeviceConfig:
example:
path: path
iommu: false
properties:
path:
type: string
iommu:
default: false
type: boolean
required:
- path
type: object
VsockConfig:
example:
sock: sock
iommu: false
cid: 3
properties:
cid:
description: Guest Vsock CID
format: int64
minimum: 3
type: integer
sock:
description: Path to UNIX domain socket, used to proxy vsock connections.
type: string
iommu:
default: false
type: boolean
required:
- cid
- sock
type: object
VmResize:
example:
desired_vcpus: 1
desired_ram: 6
properties:
desired_vcpus:
minimum: 1
type: integer
desired_ram:
type: integer
type: object
VmAddDevice:
example:
path: path
properties:
path:
type: string
type: object