version: Update clh to master

Upgrade the version of clh to the upstream master, so that we have can
boot from pmem, and have the support for virtio-blk and virtio-pmem
hotplug.

Changes:

a8ec8f33 build(deps): bump hermit-abi from 0.1.10 to 0.1.11
6cc8248a build(deps): bump num_cpus from 1.12.0 to 1.13.0
8ff36337 vm-virtio: pci: Update the BARs used by the VirtioPciDevice
56207a03 pci: Print out details of the BAR moving upon error
a216c2eb vm-virtio: pci: Implement free_bars() for VirtioPciDevice
72fdfff1 vmm: device_manager: Remove unused "_mmap_regions" member
70ecd6ba vmm, virtio: fs: Move freeing of mappped region into device
0c6706a5 vmm, virtio: pmem: Move freeing of mappped region into device
6565e478 vhost_user_net: Enable multithreaded multiqueue support
1a0a2c01 vhost_user_backend: Provide the thread ID to handle_event()
cfffb7ed vhost_user_backend: Allow for one exit_event per thread
b927dcee vhost_user_net: Prepare for multithreaded support
cd2b03f6 vhost_user_backend: Return a list of vring workers
d9eec0de vhost_user_backend: Add the ability to start multiple threads
40e4dc63 vhost_user_backend: Change handle_event as immutable
8f434df1 vhost_user: Adapt backends to let handle_event be immutable
b1554642 vmm: seccomp: Add missing mremap() syscall
886c0f90 build(deps): bump libc from 0.2.68 to 0.2.69
6c164c76 build(deps): bump thiserror from 1.0.14 to 1.0.15
0071ac8c build(deps): bump parking_lot from 0.10.0 to 0.10.2
2b7fbcb9 build(deps): bump lock_api from 0.3.3 to 0.3.4
d1155c7c build(deps): bump parking_lot_core from 0.7.0 to 0.7.1
28abfa9d vmm: openapi: Mark "initramfs" field nullable
c260640f vmm: config: Use Default::default() value for initramfs field
4617aefd tests: Test initramfs loading with PVH boot
7134f312 vmm: Allow PVH boot with initramfs
0fc39364 arch: Support loading initramfs with PVH boot protocol
b9f19370 build(deps): bump smallvec from 1.2.0 to 1.3.0
2d3f518c vmm: config: Error if both socket and path are specified for a disk
eeb7e252 vmm: config: Move max vCPUs > boot vCPUs check to validate()
12edb246 vmm: config: Validate that serial/console file mode has a path
31928fb1 main: Consistently use eprintln!() for error messages
11dd609f main: Only try and parse VM options on VM boot path
aaf382ee vmm: Move kernel check to VmConfig::validate() method
3b0da2d8 vmm: vm: Validate configuration on API boot
99b2ada4 vmm: Start splitting configuration parsing and validation
0ea706fa vmm: openapi: Update OpenAPI definition with RestoreConfig
8d9d2243 vmm: Add "prefault" option when restoring
a517ca23 vmm: Move restore parameters into common RestoreConfig structure
6712958f vmm: memory: Add prefault option when creating region
b2cdee80 vmm: memory: Restore with Copy-on-Write when possible
d771223b vmm: memory: Extend new() to support external backing files
ee5a041a vmm: memory: Add Copy-on-Write parameter when creating region
be4e1e87 vmm: memory: Use fine grained mmap wrapper
f0ab002e build(deps): bump openssl-sys from 0.9.54 to 0.9.55
b9f9f01f vmm: Extend seccomp filters to allow snapshot/restore
6eb72130 vmm: Enable restore feature
53613319 vmm: Enable snapshot feature
2cd0bc0a vmm: Create initial VM from its snapshot
b55b83c6 vmm: vm: Implement the Transportable trait
1ed357cf vmm: vm: Implement the Snapshottable trait
20ba271b vmm: memory_manager: Implement the Transportable trait
e606112c vmm: memory_manager: Implement the Snapshottable trait
50b3f008 vmm: cpu: Implement the Snapshottable trait
f787c409 vmm: cpu: Factorize vcpu starting code
722f9b66 vmm: cpu: Get and set KVM vCPU state
13756490 vmm: cpu: Track all Vcpus through CpuManager
a0d5dbce vmm: device_manager: Implement the Snapshottable trait
93d3abfd vmm: device_manager: Make serial and ioapic devices migratable
12b036a8 Cargo: Update dependencies for the KVM serialization work
183529d0 vmm: Cleanup warning from build
22958261 main: Print human readable error for command line error
c7dfbd8a vmm: config: Implement fmt::Display for error
d8119fda vmm: config: Remove unused error entries
1a10f16a vmm: config: Consolidate size parsing code
f449486b vmm: config: Make toggle parsing more tolerant
a4e0ce58 vmm: config: Consolidate on/off parsing
c731a943 vmm: config: Port vsock to OptionParser
37264cf2 vmm: config: Add unit testing for vsock
8665898f vmm: config: Port device parsing to OptionParser
a85e2fa7 vmm: config: Add unit test for VFIO device parsing
bed282b8 vmm: config: Add "valueless" options to OptionParser
2ae3392d vmm: config: Port console parsing to OptionParser
143d63c8 vmm: config: Add unit test for console parsing
5ab58e74 vmm: config: Port pmem option to OptionParser
233ad78b vmm: config: Add parsing test for pmem
13dc6373 vmm: config: Port filesystem parsing to OptionParser
7a071c28 vmm: config: Implement unit testing for virtio-fs parsing
e4cd3072 vmm: config: Port RNG options to OptionParser
708dbb97 vmm: config: Add RNG parsing unit test
057e71d2 vmm: config: Accept empty value strings
218c780f vmm: config: Port network parsing to OptionParser
a5747a84 net_util: Implement FromStr for MacAddr
8754720e vmm: config: Add unit test for net parsing
224e3dde vmm: config: Switch disk parsing to OptionParser
9e102447 vmm: config: Add unit test for disk parsing
e40ae627 vmm: config: Port memory option parsing to OptionParser
be32065a vmm: config: Add "ByteSized" type for simplifying parsing of byte sizes
f01bd7d5 vmm: config: Implement FromStr for HotplugMethod
74613803 vmm: config: Add a Toggle type for "on/off" strings
929142bc vmm: config: Add memory parsing unit test
68203ea4 vmm: config: Port CPU parsing to OptionParser
9e6a2825 vmm: config: Add unit test for CPU parsing
9e7231cd vmm: config: Introduce basic OptionParser
1e20b572 build(deps): bump serde_json from 1.0.50 to 1.0.51
baf48500 build(deps): bump serde_derive from 1.0.105 to 1.0.106
00230905 build(deps): bump serde from 1.0.105 to 1.0.106
447af8e7 vmm: vm: Factorize the device and cpu managers creation routine
c73c9b11 vmm: vm: Open kernel and initramfs once all managers are created
0646a906 vmm: cpu: Pass CpusConfig to simplify the new() prototype
b584ec3f vmm: memory_manager: Own the system allocator
ef2b11ee vmm: memory_manager: Pass MemoryConfig to simplify the new() prototype
622f3f8f vmm: vm: Avoid ioapic variable creation
164e8100 vmm: cpu: Move CPUID patching to CpuManager
1a2c1f97 vmm: vm: Factorize the KVM setup code
3eb11069 arch: regs: Rename and export create_msr_entries
c3a34903 arch: regs: Make create_msr_entries more readable
7a50646c vmm: device_manager: Convert migratable_devices to a map
8ba37a98 .gitignore: Add build directory
b3e4111e devices: serial: Implement the Snapshottable trait
98741573 devices: ioapic: Implement the Snapshottable trait
3ef1c00c ch-remote: Fix snapshot and restore subcommands
dc97b67d main: Fix restore CLI
859a9618 ch-remote: Add --restore option
35c0ea6c ch-remote: Add --snapshot option
fe2d8846 main: Support VM restore from the command line
8f300bed vmm: api: Add a /api/v1/vm.restore endpoint
92c73c3b vmm: Add a VmRestore command
39d4f817 vmm: http: Add a /api/v1/vm.snapshot endpoint
cf8f8ce9 vmm: api: Add a Snapshot command
452475c2 vmm: Add migration helpers
1b1a2175 vm-migration: Define the Snapshottable and Transportable traits
2d17f438 vmm: seccomp: Add missing open() syscall
bf135a29 build(deps): bump linux-loader from `2adddce` to `61d95eb`
da4aaee7 build(deps): bump vmm-sys-util from 0.4.0 to 0.5.0
6a934c32 build(deps): bump proc-macro-hack from 0.5.14 to 0.5.15
3b891cd3 build(deps): bump micro_http from `e89ed14` to `0d87a94`
d5199ad9 build(deps): bump anyhow from 1.0.27 to 1.0.28
6a0b4d7a build(deps): bump proc-macro2 from 1.0.9 to 1.0.10
31bbe0e5 build(deps): bump hermit-abi from 0.1.9 to 0.1.10
7f098168 build(deps): bump hermit-abi from 0.1.8 to 0.1.9
00a1eced build(deps): bump thiserror from 1.0.13 to 1.0.14
f24b7424 build(deps): bump serde_json from 1.0.48 to 1.0.50
e4ea8b0b vmm: Add missing syscalls to the seccomp filters
33be24bd vhost-user-fs: return EINVAL if req is out of range in fs_slave_mmap/unmap/sync
78b5cbc6 vhost-user-fs: validate fs_slave_map/unmap/sync request
0c29c2ec ci: Extend VFIO test with memory hotplug
9e181776 vmm: Add memory hotplug support to VFIO PCI devices
cc67131e vmm: Retrieve new memory region when memory is extended
e4a034ae vfio: Add support for memory hotplug
8fc7bf29 vmm: Move to the latest linux-loader
785812d9 vmm: Fallback to legacy boot if PVH is enabled along with initramfs
5157ba10 resources: enable initramfs in kernel config
3b470d4f tests: add support for initramfs
6cce7b95 arch: load initramfs and populate zero page
1f9bc68c openapi: Add initramfs support
4db252b4 main, vmm: add --initramfs cli option
0ce7de3e arch: provide mechanism to get page size
4b110d5b tests: Add integration test for hotplugging network device
f3f4d075 ch-remote: Add support for hotplugging network devices
c73c31b6 docs: Update API documentation to include "vm.add-net"
6244beb9 openapi: Add "vm.add-net" entry point
57c3fa4b vmm: Add "add-net" to the API
f664cdde vmm: Add support for adding network devices to the VM
8f323e61 vmm: Add support to DeviceManager for hotplugging network devices
42a9896f vmm: device_manager: Refactor make_virtio_net_devices
9df601a1 bin, vmm: Centralise the net syntax
41d7b3a3 vmm: memory_manager: Only send the GED notification for the ACPI method
15d9ec01 openapit: Add hotplug_method to MemoryConfig
abbd69ab tests: Add integration test test_virtio_mem
4a7a2cff tests: Add test for hotplug_size and hotplug_method
e63f9818 vmm: device: Add make_virtio_mem_devices
e6b934a5 vmm: Add support for virtio-mem
51d102c7 vm-virtio: Add virtio-mem device
8d05fb86 tests: Add integration test for hotplugging pmem device
0b051010 ch-remote: Add support for hotplugging persistent memory
44aef8f4 docs: Update API documentation to include "vm.add-pmem"
75878dd9 openapi: Add "vm.add-pmem" entry point
f6f4c68f vmm: Add "add-pmem" to the API
15de30f1 vmm: Add support for adding pmem devices to the VM
f7def621 vmm: Add support to DeviceManager for hotplugging pmem devices
8c3ea8cd vmm: device_manager: Refactor make_virtio_pmem_devices
a7296bbb bin, vmm: Centralise the pmem syntax
61e34331 virtio-fs: validate request len in fs_slave_io()
4c9d15d4 vmm: Fix copy and paste error message
96d4f1e3 tests: Add integration test for hotplugging disk device
05ce2dc8 ch-remote: Add support for hotplugging disks
eec1a32d docs: Update API documentation to include "vm.add-disk"
82cad99c openapi: Add "vm.add-disk" entry point
f2151b27 vmm: Add "add-disk" to the API
164ec2b8 vmm: Add support for adding disks to the VM
b3082c19 vmm: Add support to DeviceManager for hotplugging disks
2be703ca vmm: device_manager: Refactor make_virtio_block_devices
66da29d8 bin, vmm: Centralise the disk syntax
ede28878 build(deps): bump micro_http from `e712d6a` to `e89ed14`

Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
Bo Chen 2020-04-07 18:09:12 -07:00
parent 65865ab74d
commit e8fc25a7f4
17 changed files with 819 additions and 20 deletions

View File

@ -75,7 +75,7 @@ assets:
url: "https://github.com/cloud-hypervisor/cloud-hypervisor"
uscan-url: >-
https://github.com/cloud-hypervisor/cloud-hypervisor/tags.*/v?(\d\S+)\.tar\.gz
version: "c1e6d0022b220ecba25a10f61d0025a408d90a94"
version: "a8ec8f3326628d34021ccae0f259a9509ff1e6da"
firecracker:
description: "Firecracker micro-VMM"

View File

@ -1 +1 @@
4.3.0-SNAPSHOT
4.3.1-SNAPSHOT

View File

@ -41,9 +41,14 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**ShutdownVM**](docs/DefaultApi.md#shutdownvm) | **Put** /vm.shutdown | Shut the VM instance down.
*DefaultApi* | [**ShutdownVMM**](docs/DefaultApi.md#shutdownvmm) | **Put** /vmm.shutdown | Shuts the cloud-hypervisor VMM.
*DefaultApi* | [**VmAddDevicePut**](docs/DefaultApi.md#vmadddeviceput) | **Put** /vm.add-device | Add a new device to the VM
*DefaultApi* | [**VmAddDiskPut**](docs/DefaultApi.md#vmadddiskput) | **Put** /vm.add-disk | Add a new disk to the VM
*DefaultApi* | [**VmAddNetPut**](docs/DefaultApi.md#vmaddnetput) | **Put** /vm.add-net | Add a new network device to the VM
*DefaultApi* | [**VmAddPmemPut**](docs/DefaultApi.md#vmaddpmemput) | **Put** /vm.add-pmem | Add a new pmem device to the VM
*DefaultApi* | [**VmInfoGet**](docs/DefaultApi.md#vminfoget) | **Get** /vm.info | Returns general information about the cloud-hypervisor Virtual Machine (VM) instance.
*DefaultApi* | [**VmRemoveDevicePut**](docs/DefaultApi.md#vmremovedeviceput) | **Put** /vm.remove-device | Remove a device from the VM
*DefaultApi* | [**VmResizePut**](docs/DefaultApi.md#vmresizeput) | **Put** /vm.resize | Resize the VM
*DefaultApi* | [**VmRestorePut**](docs/DefaultApi.md#vmrestoreput) | **Put** /vm.restore | Restore a VM from a snapshot.
*DefaultApi* | [**VmSnapshotPut**](docs/DefaultApi.md#vmsnapshotput) | **Put** /vm.snapshot | Returns a VM snapshot.
*DefaultApi* | [**VmmPingGet**](docs/DefaultApi.md#vmmpingget) | **Get** /vmm.ping | Ping the VMM to check for API server availability
@ -55,16 +60,19 @@ Class | Method | HTTP request | Description
- [DeviceConfig](docs/DeviceConfig.md)
- [DiskConfig](docs/DiskConfig.md)
- [FsConfig](docs/FsConfig.md)
- [InitramfsConfig](docs/InitramfsConfig.md)
- [KernelConfig](docs/KernelConfig.md)
- [MemoryConfig](docs/MemoryConfig.md)
- [NetConfig](docs/NetConfig.md)
- [PmemConfig](docs/PmemConfig.md)
- [RestoreConfig](docs/RestoreConfig.md)
- [RngConfig](docs/RngConfig.md)
- [VmAddDevice](docs/VmAddDevice.md)
- [VmConfig](docs/VmConfig.md)
- [VmInfo](docs/VmInfo.md)
- [VmRemoveDevice](docs/VmRemoveDevice.md)
- [VmResize](docs/VmResize.md)
- [VmSnapshotConfig](docs/VmSnapshotConfig.md)
- [VmmPingResponse](docs/VmmPingResponse.md)
- [VsockConfig](docs/VsockConfig.md)

View File

@ -158,6 +158,86 @@ paths:
"404":
description: The device could not be removed from the VM instance.
summary: Remove a device from the VM
/vm.add-disk:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DiskConfig'
description: The details of the new disk
required: true
responses:
"204":
description: The new disk was successfully added to the VM instance.
"500":
description: The new disk could not be added to the VM instance.
summary: Add a new disk to the VM
/vm.add-pmem:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PmemConfig'
description: The details of the new pmem device
required: true
responses:
"204":
description: The new device was successfully added to the VM instance.
"500":
description: The new device could not be added to the VM instance.
summary: Add a new pmem device to the VM
/vm.add-net:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NetConfig'
description: The details of the new network device
required: true
responses:
"204":
description: The new device was successfully added to the VM instance.
"500":
description: The new device could not be added to the VM instance.
summary: Add a new network device to the VM
/vm.snapshot:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VmSnapshotConfig'
description: The snapshot configuration
required: true
responses:
"204":
description: The VM instance was successfully snapshotted.
"404":
description: The VM instance could not be snapshotted because it is not
created.
"405":
description: The VM instance could not be snapshotted because it is not
booted.
summary: Returns a VM snapshot.
/vm.restore:
put:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreConfig'
description: The restore configuration
required: true
responses:
"204":
description: The VM instance was successfully restored.
"404":
description: The VM instance could not be restored because it is already
created.
summary: Restore a VM from a snapshot.
components:
schemas:
VmmPingResponse:
@ -184,6 +264,7 @@ components:
file: file
size: 1
hotplug_size: 5
hotplug_method: acpi
disks:
- path: path
num_queues: 5
@ -258,6 +339,8 @@ components:
mode: "false"
file: file
iommu: false
initramfs:
path: path
net:
- tap: tap
num_queues: 7
@ -303,6 +386,7 @@ components:
file: file
size: 1
hotplug_size: 5
hotplug_method: acpi
disks:
- path: path
num_queues: 5
@ -377,6 +461,8 @@ components:
mode: "false"
file: file
iommu: false
initramfs:
path: path
net:
- tap: tap
num_queues: 7
@ -403,6 +489,8 @@ components:
$ref: '#/components/schemas/MemoryConfig'
kernel:
$ref: '#/components/schemas/KernelConfig'
initramfs:
$ref: '#/components/schemas/InitramfsConfig'
cmdline:
$ref: '#/components/schemas/CmdLineConfig'
disks:
@ -465,6 +553,7 @@ components:
file: file
size: 1
hotplug_size: 5
hotplug_method: acpi
properties:
size:
format: int64
@ -477,6 +566,9 @@ components:
mergeable:
default: false
type: boolean
hotplug_method:
default: acpi
type: string
required:
- size
type: object
@ -489,6 +581,16 @@ components:
required:
- path
type: object
InitramfsConfig:
example:
path: path
nullable: true
properties:
path:
type: string
required:
- path
type: object
CmdLineConfig:
example:
args: args
@ -734,3 +836,22 @@ components:
id:
type: string
type: object
VmSnapshotConfig:
example:
destination_url: destination_url
properties:
destination_url:
type: string
type: object
RestoreConfig:
example:
prefault: true
source_url: source_url
properties:
source_url:
type: string
prefault:
type: boolean
required:
- source_url
type: object

View File

@ -597,6 +597,204 @@ func (a *DefaultApiService) VmAddDevicePut(ctx _context.Context, vmAddDevice VmA
return localVarHTTPResponse, nil
}
/*
VmAddDiskPut Add a new disk to the VM
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param diskConfig The details of the new disk
*/
func (a *DefaultApiService) VmAddDiskPut(ctx _context.Context, diskConfig DiskConfig) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPut
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/vm.add-disk"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = &diskConfig
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(r)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
/*
VmAddNetPut Add a new network device to the VM
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param netConfig The details of the new network device
*/
func (a *DefaultApiService) VmAddNetPut(ctx _context.Context, netConfig NetConfig) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPut
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/vm.add-net"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = &netConfig
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(r)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
/*
VmAddPmemPut Add a new pmem device to the VM
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param pmemConfig The details of the new pmem device
*/
func (a *DefaultApiService) VmAddPmemPut(ctx _context.Context, pmemConfig PmemConfig) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPut
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/vm.add-pmem"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = &pmemConfig
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(r)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
/*
VmInfoGet Returns general information about the cloud-hypervisor Virtual Machine (VM) instance.
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -656,15 +854,6 @@ func (a *DefaultApiService) VmInfoGet(ctx _context.Context) (VmInfo, *_nethttp.R
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 200 {
var v VmInfo
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
@ -812,6 +1001,138 @@ func (a *DefaultApiService) VmResizePut(ctx _context.Context, vmResize VmResize)
return localVarHTTPResponse, nil
}
/*
VmRestorePut Restore a VM from a snapshot.
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param restoreConfig The restore configuration
*/
func (a *DefaultApiService) VmRestorePut(ctx _context.Context, restoreConfig RestoreConfig) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPut
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/vm.restore"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = &restoreConfig
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(r)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
/*
VmSnapshotPut Returns a VM snapshot.
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param vmSnapshotConfig The snapshot configuration
*/
func (a *DefaultApiService) VmSnapshotPut(ctx _context.Context, vmSnapshotConfig VmSnapshotConfig) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPut
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/vm.snapshot"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = &vmSnapshotConfig
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(r)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
/*
VmmPingGet Ping the VMM to check for API server availability
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -871,15 +1192,6 @@ func (a *DefaultApiService) VmmPingGet(ctx _context.Context) (VmmPingResponse, *
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 200 {
var v VmmPingResponse
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}

View File

@ -13,9 +13,14 @@ Method | HTTP request | Description
[**ShutdownVM**](DefaultApi.md#ShutdownVM) | **Put** /vm.shutdown | Shut the VM instance down.
[**ShutdownVMM**](DefaultApi.md#ShutdownVMM) | **Put** /vmm.shutdown | Shuts the cloud-hypervisor VMM.
[**VmAddDevicePut**](DefaultApi.md#VmAddDevicePut) | **Put** /vm.add-device | Add a new device to the VM
[**VmAddDiskPut**](DefaultApi.md#VmAddDiskPut) | **Put** /vm.add-disk | Add a new disk to the VM
[**VmAddNetPut**](DefaultApi.md#VmAddNetPut) | **Put** /vm.add-net | Add a new network device to the VM
[**VmAddPmemPut**](DefaultApi.md#VmAddPmemPut) | **Put** /vm.add-pmem | Add a new pmem device to the VM
[**VmInfoGet**](DefaultApi.md#VmInfoGet) | **Get** /vm.info | Returns general information about the cloud-hypervisor Virtual Machine (VM) instance.
[**VmRemoveDevicePut**](DefaultApi.md#VmRemoveDevicePut) | **Put** /vm.remove-device | Remove a device from the VM
[**VmResizePut**](DefaultApi.md#VmResizePut) | **Put** /vm.resize | Resize the VM
[**VmRestorePut**](DefaultApi.md#VmRestorePut) | **Put** /vm.restore | Restore a VM from a snapshot.
[**VmSnapshotPut**](DefaultApi.md#VmSnapshotPut) | **Put** /vm.snapshot | Returns a VM snapshot.
[**VmmPingGet**](DefaultApi.md#VmmPingGet) | **Get** /vmm.ping | Ping the VMM to check for API server availability
@ -280,6 +285,102 @@ No authorization required
[[Back to README]](../README.md)
## VmAddDiskPut
> VmAddDiskPut(ctx, diskConfig)
Add a new disk to the VM
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**diskConfig** | [**DiskConfig**](DiskConfig.md)| The details of the new disk |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## VmAddNetPut
> VmAddNetPut(ctx, netConfig)
Add a new network device to the VM
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**netConfig** | [**NetConfig**](NetConfig.md)| The details of the new network device |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## VmAddPmemPut
> VmAddPmemPut(ctx, pmemConfig)
Add a new pmem device to the VM
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**pmemConfig** | [**PmemConfig**](PmemConfig.md)| The details of the new pmem device |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## VmInfoGet
> VmInfo VmInfoGet(ctx, )
@ -372,6 +473,70 @@ No authorization required
[[Back to README]](../README.md)
## VmRestorePut
> VmRestorePut(ctx, restoreConfig)
Restore a VM from a snapshot.
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**restoreConfig** | [**RestoreConfig**](RestoreConfig.md)| The restore configuration |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## VmSnapshotPut
> VmSnapshotPut(ctx, vmSnapshotConfig)
Returns a VM snapshot.
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**vmSnapshotConfig** | [**VmSnapshotConfig**](VmSnapshotConfig.md)| The snapshot configuration |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## VmmPingGet
> VmmPingResponse VmmPingGet(ctx, )

View File

@ -0,0 +1,11 @@
# InitramfsConfig
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Path** | **string** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -8,6 +8,7 @@ Name | Type | Description | Notes
**HotplugSize** | **int64** | | [optional]
**File** | **string** | | [optional]
**Mergeable** | **bool** | | [optional] [default to false]
**HotplugMethod** | **string** | | [optional] [default to acpi]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# RestoreConfig
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**SourceUrl** | **string** | |
**Prefault** | **bool** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -7,6 +7,7 @@ Name | Type | Description | Notes
**Cpus** | [**CpusConfig**](CpusConfig.md) | | [optional]
**Memory** | [**MemoryConfig**](MemoryConfig.md) | | [optional]
**Kernel** | [**KernelConfig**](KernelConfig.md) | |
**Initramfs** | Pointer to [**InitramfsConfig**](InitramfsConfig.md) | | [optional]
**Cmdline** | [**CmdLineConfig**](CmdLineConfig.md) | |
**Disks** | [**[]DiskConfig**](DiskConfig.md) | | [optional]
**Net** | [**[]NetConfig**](NetConfig.md) | | [optional]

View File

@ -0,0 +1,11 @@
# VmSnapshotConfig
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**DestinationUrl** | **string** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
/*
* Cloud Hypervisor API
*
* Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
*
* API version: 0.3.0
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/
package openapi
// InitramfsConfig struct for InitramfsConfig
type InitramfsConfig struct {
Path string `json:"path"`
}

View File

@ -14,4 +14,5 @@ type MemoryConfig struct {
HotplugSize int64 `json:"hotplug_size,omitempty"`
File string `json:"file,omitempty"`
Mergeable bool `json:"mergeable,omitempty"`
HotplugMethod string `json:"hotplug_method,omitempty"`
}

View File

@ -0,0 +1,15 @@
/*
* Cloud Hypervisor API
*
* Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
*
* API version: 0.3.0
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/
package openapi
// RestoreConfig struct for RestoreConfig
type RestoreConfig struct {
SourceUrl string `json:"source_url"`
Prefault bool `json:"prefault,omitempty"`
}

View File

@ -13,6 +13,7 @@ type VmConfig struct {
Cpus CpusConfig `json:"cpus,omitempty"`
Memory MemoryConfig `json:"memory,omitempty"`
Kernel KernelConfig `json:"kernel"`
Initramfs *InitramfsConfig `json:"initramfs,omitempty"`
Cmdline CmdLineConfig `json:"cmdline"`
Disks []DiskConfig `json:"disks,omitempty"`
Net []NetConfig `json:"net,omitempty"`

View File

@ -0,0 +1,14 @@
/*
* Cloud Hypervisor API
*
* Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
*
* API version: 0.3.0
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/
package openapi
// VmSnapshotConfig struct for VmSnapshotConfig
type VmSnapshotConfig struct {
DestinationUrl string `json:"destination_url,omitempty"`
}

View File

@ -171,6 +171,88 @@ paths:
404:
description: The device could not be removed from the VM instance.
/vm.add-disk:
put:
summary: Add a new disk to the VM
requestBody:
description: The details of the new disk
content:
application/json:
schema:
$ref: '#/components/schemas/DiskConfig'
required: true
responses:
204:
description: The new disk was successfully added to the VM instance.
500:
description: The new disk could not be added to the VM instance.
/vm.add-pmem:
put:
summary: Add a new pmem device to the VM
requestBody:
description: The details of the new pmem device
content:
application/json:
schema:
$ref: '#/components/schemas/PmemConfig'
required: true
responses:
204:
description: The new device was successfully added to the VM instance.
500:
description: The new device could not be added to the VM instance.
/vm.add-net:
put:
summary: Add a new network device to the VM
requestBody:
description: The details of the new network device
content:
application/json:
schema:
$ref: '#/components/schemas/NetConfig'
required: true
responses:
204:
description: The new device was successfully added to the VM instance.
500:
description: The new device could not be added to the VM instance.
/vm.snapshot:
put:
summary: Returns a VM snapshot.
requestBody:
description: The snapshot configuration
content:
application/json:
schema:
$ref: '#/components/schemas/VmSnapshotConfig'
required: true
responses:
204:
description: The VM instance was successfully snapshotted.
404:
description: The VM instance could not be snapshotted because it is not created.
405:
description: The VM instance could not be snapshotted because it is not booted.
/vm.restore:
put:
summary: Restore a VM from a snapshot.
requestBody:
description: The restore configuration
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreConfig'
required: true
responses:
204:
description: The VM instance was successfully restored.
404:
description: The VM instance could not be restored because it is already created.
components:
schemas:
@ -208,6 +290,8 @@ components:
$ref: '#/components/schemas/MemoryConfig'
kernel:
$ref: '#/components/schemas/KernelConfig'
initramfs:
$ref: '#/components/schemas/InitramfsConfig'
cmdline:
$ref: '#/components/schemas/CmdLineConfig'
disks:
@ -277,6 +361,9 @@ components:
mergeable:
type: boolean
default: false
hotplug_method:
type: string
default: "acpi"
KernelConfig:
required:
@ -286,6 +373,15 @@ components:
path:
type: string
InitramfsConfig:
nullable: true
required:
- path
type: object
properties:
path:
type: string
CmdLineConfig:
required:
- args
@ -481,3 +577,19 @@ components:
properties:
id:
type: string
VmSnapshotConfig:
type: object
properties:
destination_url:
type: string
RestoreConfig:
required:
- source_url
type: object
properties:
source_url:
type: string
prefault:
type: boolean