diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES index 3cd6cf37e5..90d50128cb 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/.openapi-generator/FILES @@ -12,6 +12,7 @@ docs/CpuAffinity.md docs/CpuFeatures.md docs/CpuTopology.md docs/CpusConfig.md +docs/DebugConsoleConfig.md docs/DefaultApi.md docs/DeviceConfig.md docs/DeviceNode.md @@ -24,8 +25,10 @@ docs/NumaConfig.md docs/NumaDistance.md docs/PayloadConfig.md docs/PciDeviceInfo.md +docs/PciSegmentConfig.md docs/PlatformConfig.md docs/PmemConfig.md +docs/RateLimitGroupConfig.md docs/RateLimiterConfig.md docs/ReceiveMigrationData.md docs/RestoreConfig.md @@ -35,6 +38,8 @@ docs/SgxEpcConfig.md docs/TokenBucket.md docs/TpmConfig.md docs/VdpaConfig.md +docs/VirtQueueAffinity.md +docs/VmAddUserDevice.md docs/VmConfig.md docs/VmCoredumpData.md docs/VmInfo.md @@ -53,6 +58,7 @@ model_cpu_affinity.go model_cpu_features.go model_cpu_topology.go model_cpus_config.go +model_debug_console_config.go model_device_config.go model_device_node.go model_disk_config.go @@ -64,8 +70,10 @@ model_numa_config.go model_numa_distance.go model_payload_config.go model_pci_device_info.go +model_pci_segment_config.go model_platform_config.go model_pmem_config.go +model_rate_limit_group_config.go model_rate_limiter_config.go model_receive_migration_data.go model_restore_config.go @@ -75,6 +83,8 @@ model_sgx_epc_config.go model_token_bucket.go model_tpm_config.go model_vdpa_config.go +model_virt_queue_affinity.go +model_vm_add_user_device.go model_vm_config.go model_vm_coredump_data.go model_vm_info.go diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md index cb42aa49b2..3e3c358475 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/README.md @@ -92,6 +92,7 @@ Class | Method | HTTP request | Description *DefaultApi* | [**VmAddFsPut**](docs/DefaultApi.md#vmaddfsput) | **Put** /vm.add-fs | Add a new virtio-fs device 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* | [**VmAddUserDevicePut**](docs/DefaultApi.md#vmadduserdeviceput) | **Put** /vm.add-user-device | Add a new userspace device to the VM *DefaultApi* | [**VmAddVdpaPut**](docs/DefaultApi.md#vmaddvdpaput) | **Put** /vm.add-vdpa | Add a new vDPA device to the VM *DefaultApi* | [**VmAddVsockPut**](docs/DefaultApi.md#vmaddvsockput) | **Put** /vm.add-vsock | Add a new vsock device to the VM *DefaultApi* | [**VmCoredumpPut**](docs/DefaultApi.md#vmcoredumpput) | **Put** /vm.coredump | Takes a VM coredump. @@ -104,6 +105,7 @@ Class | Method | HTTP request | Description *DefaultApi* | [**VmRestorePut**](docs/DefaultApi.md#vmrestoreput) | **Put** /vm.restore | Restore a VM from a snapshot. *DefaultApi* | [**VmSendMigrationPut**](docs/DefaultApi.md#vmsendmigrationput) | **Put** /vm.send-migration | Send a VM migration to URL *DefaultApi* | [**VmSnapshotPut**](docs/DefaultApi.md#vmsnapshotput) | **Put** /vm.snapshot | Returns a VM snapshot. +*DefaultApi* | [**VmmNmiPut**](docs/DefaultApi.md#vmmnmiput) | **Put** /vmm.nmi | Inject an NMI. *DefaultApi* | [**VmmPingGet**](docs/DefaultApi.md#vmmpingget) | **Get** /vmm.ping | Ping the VMM to check for API server availability @@ -115,6 +117,7 @@ Class | Method | HTTP request | Description - [CpuFeatures](docs/CpuFeatures.md) - [CpuTopology](docs/CpuTopology.md) - [CpusConfig](docs/CpusConfig.md) + - [DebugConsoleConfig](docs/DebugConsoleConfig.md) - [DeviceConfig](docs/DeviceConfig.md) - [DeviceNode](docs/DeviceNode.md) - [DiskConfig](docs/DiskConfig.md) @@ -126,8 +129,10 @@ Class | Method | HTTP request | Description - [NumaDistance](docs/NumaDistance.md) - [PayloadConfig](docs/PayloadConfig.md) - [PciDeviceInfo](docs/PciDeviceInfo.md) + - [PciSegmentConfig](docs/PciSegmentConfig.md) - [PlatformConfig](docs/PlatformConfig.md) - [PmemConfig](docs/PmemConfig.md) + - [RateLimitGroupConfig](docs/RateLimitGroupConfig.md) - [RateLimiterConfig](docs/RateLimiterConfig.md) - [ReceiveMigrationData](docs/ReceiveMigrationData.md) - [RestoreConfig](docs/RestoreConfig.md) @@ -137,6 +142,8 @@ Class | Method | HTTP request | Description - [TokenBucket](docs/TokenBucket.md) - [TpmConfig](docs/TpmConfig.md) - [VdpaConfig](docs/VdpaConfig.md) + - [VirtQueueAffinity](docs/VirtQueueAffinity.md) + - [VmAddUserDevice](docs/VmAddUserDevice.md) - [VmConfig](docs/VmConfig.md) - [VmCoredumpData](docs/VmCoredumpData.md) - [VmInfo](docs/VmInfo.md) diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml index ef26778f97..3e728502d2 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api/openapi.yaml @@ -328,6 +328,27 @@ paths: "500": description: The new vDPA device could not be added to the VM instance. summary: Add a new vDPA device to the VM + /vm.add-user-device: + put: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VmAddUserDevice' + description: The path of the new device + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PciDeviceInfo' + description: The new device was successfully added to the VM instance. + "204": + description: The new device was successfully (cold) added to the VM instance. + "404": + description: The new device could not be added to the VM instance. + summary: Add a new userspace device to the VM /vm.snapshot: put: requestBody: @@ -364,6 +385,12 @@ paths: "405": description: The VM instance could not be coredumped because it is not booted. summary: Takes a VM coredump. + /vmm.nmi: + put: + responses: + "204": + description: The NMI successfully injected. + summary: Inject an NMI. /vm.restore: put: requestBody: @@ -439,16 +466,16 @@ components: VmInfo: description: Virtual Machine information example: - memory_actual_size: 5 + memory_actual_size: 4 state: Created config: console: - mode: "false" + mode: "Off" file: file iommu: false socket: socket balloon: - size: 1 + size: 6 deflate_on_oom: false free_page_reporting: false memory: @@ -486,15 +513,9 @@ components: hotplug_method: Acpi thp: true disks: - - pci_segment: 8 - path: path - num_queues: 4 - readonly: false - iommu: false - queue_size: 5 - vhost_socket: vhost_socket - serial: serial - vhost_user: false + - num_queues: 9 + rate_limit_group: rate_limit_group + queue_size: 6 direct: false rate_limiter_config: ops: @@ -505,16 +526,26 @@ components: size: 0 one_time_burst: 0 refill_time: 0 + queue_affinity: + - host_cpus: + - 6 + - 6 + queue_index: 9 + - host_cpus: + - 6 + - 6 + queue_index: 9 + pci_segment: 8 + path: path + readonly: false + iommu: false + vhost_socket: vhost_socket + serial: serial + vhost_user: false id: id - - pci_segment: 8 - path: path - num_queues: 4 - readonly: false - iommu: false - queue_size: 5 - vhost_socket: vhost_socket - serial: serial - vhost_user: false + - num_queues: 9 + rate_limit_group: rate_limit_group + queue_size: 6 direct: false rate_limiter_config: ops: @@ -525,6 +556,22 @@ components: size: 0 one_time_burst: 0 refill_time: 0 + queue_affinity: + - host_cpus: + - 6 + - 6 + queue_index: 9 + - host_cpus: + - 6 + - 6 + queue_index: 9 + pci_segment: 8 + path: path + readonly: false + iommu: false + vhost_socket: vhost_socket + serial: serial + vhost_user: false id: id cpus: features: @@ -548,96 +595,98 @@ components: - 3 - 3 devices: - - pci_segment: 3 + - pci_segment: 0 path: path + x_nv_gpudirect_clique: 7 iommu: false id: id - - pci_segment: 3 + - pci_segment: 0 path: path + x_nv_gpudirect_clique: 7 iommu: false id: id vdpa: - - pci_segment: 7 + - pci_segment: 0 path: path - num_queues: 3 + num_queues: 6 iommu: false id: id - - pci_segment: 7 + - pci_segment: 0 path: path - num_queues: 3 + num_queues: 6 iommu: false id: id numa: - distances: - - distance: 7 - destination: 8 - - distance: 7 - destination: 8 + - distance: 5 + destination: 7 + - distance: 5 + destination: 7 pci_segments: - 3 - 3 cpus: - - 4 - - 4 + - 3 + - 3 sgx_epc_sections: - sgx_epc_sections - sgx_epc_sections memory_zones: - memory_zones - memory_zones - guest_numa_id: 0 + guest_numa_id: 3 - distances: - - distance: 7 - destination: 8 - - distance: 7 - destination: 8 + - distance: 5 + destination: 7 + - distance: 5 + destination: 7 pci_segments: - 3 - 3 cpus: - - 4 - - 4 + - 3 + - 3 sgx_epc_sections: - sgx_epc_sections - sgx_epc_sections memory_zones: - memory_zones - memory_zones - guest_numa_id: 0 + guest_numa_id: 3 rng: iommu: false src: /dev/urandom sgx_epc: - prefault: false - size: 6 + size: 7 id: id - prefault: false - size: 6 + size: 7 id: id fs: - pci_segment: 6 - num_queues: 2 - queue_size: 6 + num_queues: 6 + queue_size: 5 tag: tag socket: socket id: id - pci_segment: 6 - num_queues: 2 - queue_size: 6 + num_queues: 6 + queue_size: 5 tag: tag socket: socket id: id vsock: - pci_segment: 7 + pci_segment: 8 iommu: false socket: socket id: id cid: 3 platform: iommu_segments: - - 7 - - 7 - num_pci_segments: 3 + - 1 + - 1 + num_pci_segments: 4 oem_strings: - oem_strings - oem_strings @@ -647,35 +696,67 @@ components: tpm: socket: socket pmem: - - pci_segment: 6 + - pci_segment: 3 file: file - size: 5 + size: 3 iommu: false id: id discard_writes: false - - pci_segment: 6 + - pci_segment: 3 file: file - size: 5 + size: 3 iommu: false id: id discard_writes: false watchdog: false iommu: false + pci_segments: + - pci_segment: 4 + mmio32_aperture_weight: 0 + mmio64_aperture_weight: 6 + - pci_segment: 4 + mmio32_aperture_weight: 0 + mmio64_aperture_weight: 6 payload: cmdline: cmdline kernel: kernel initramfs: initramfs firmware: firmware serial: - mode: "false" + mode: "Off" file: file iommu: false socket: socket + rate_limit_groups: + - id: id + rate_limiter_config: + ops: + size: 0 + one_time_burst: 0 + refill_time: 0 + bandwidth: + size: 0 + one_time_burst: 0 + refill_time: 0 + - id: id + rate_limiter_config: + ops: + size: 0 + one_time_burst: 0 + refill_time: 0 + bandwidth: + size: 0 + one_time_burst: 0 + refill_time: 0 + debug_console: + mode: "Off" + iobase: 7 + file: file net: - tap: tap host_mac: host_mac num_queues: 6 - queue_size: 3 + queue_size: 1 ip: 192.168.249.1 rate_limiter_config: ops: @@ -687,8 +768,8 @@ components: one_time_burst: 0 refill_time: 0 mac: mac - mtu: 9 - pci_segment: 6 + mtu: 3 + pci_segment: 2 vhost_mode: Client iommu: false vhost_socket: vhost_socket @@ -698,7 +779,7 @@ components: - tap: tap host_mac: host_mac num_queues: 6 - queue_size: 3 + queue_size: 1 ip: 192.168.249.1 rate_limiter_config: ops: @@ -710,14 +791,15 @@ components: one_time_burst: 0 refill_time: 0 mac: mac - mtu: 9 - pci_segment: 6 + mtu: 3 + pci_segment: 2 vhost_mode: Client iommu: false vhost_socket: vhost_socket vhost_user: false id: id mask: 255.255.255.0 + pvpanic: false device_tree: key: children: @@ -815,12 +897,12 @@ components: description: Virtual machine configuration example: console: - mode: "false" + mode: "Off" file: file iommu: false socket: socket balloon: - size: 1 + size: 6 deflate_on_oom: false free_page_reporting: false memory: @@ -858,15 +940,9 @@ components: hotplug_method: Acpi thp: true disks: - - pci_segment: 8 - path: path - num_queues: 4 - readonly: false - iommu: false - queue_size: 5 - vhost_socket: vhost_socket - serial: serial - vhost_user: false + - num_queues: 9 + rate_limit_group: rate_limit_group + queue_size: 6 direct: false rate_limiter_config: ops: @@ -877,16 +953,26 @@ components: size: 0 one_time_burst: 0 refill_time: 0 + queue_affinity: + - host_cpus: + - 6 + - 6 + queue_index: 9 + - host_cpus: + - 6 + - 6 + queue_index: 9 + pci_segment: 8 + path: path + readonly: false + iommu: false + vhost_socket: vhost_socket + serial: serial + vhost_user: false id: id - - pci_segment: 8 - path: path - num_queues: 4 - readonly: false - iommu: false - queue_size: 5 - vhost_socket: vhost_socket - serial: serial - vhost_user: false + - num_queues: 9 + rate_limit_group: rate_limit_group + queue_size: 6 direct: false rate_limiter_config: ops: @@ -897,6 +983,22 @@ components: size: 0 one_time_burst: 0 refill_time: 0 + queue_affinity: + - host_cpus: + - 6 + - 6 + queue_index: 9 + - host_cpus: + - 6 + - 6 + queue_index: 9 + pci_segment: 8 + path: path + readonly: false + iommu: false + vhost_socket: vhost_socket + serial: serial + vhost_user: false id: id cpus: features: @@ -920,96 +1022,98 @@ components: - 3 - 3 devices: - - pci_segment: 3 + - pci_segment: 0 path: path + x_nv_gpudirect_clique: 7 iommu: false id: id - - pci_segment: 3 + - pci_segment: 0 path: path + x_nv_gpudirect_clique: 7 iommu: false id: id vdpa: - - pci_segment: 7 + - pci_segment: 0 path: path - num_queues: 3 + num_queues: 6 iommu: false id: id - - pci_segment: 7 + - pci_segment: 0 path: path - num_queues: 3 + num_queues: 6 iommu: false id: id numa: - distances: - - distance: 7 - destination: 8 - - distance: 7 - destination: 8 + - distance: 5 + destination: 7 + - distance: 5 + destination: 7 pci_segments: - 3 - 3 cpus: - - 4 - - 4 + - 3 + - 3 sgx_epc_sections: - sgx_epc_sections - sgx_epc_sections memory_zones: - memory_zones - memory_zones - guest_numa_id: 0 + guest_numa_id: 3 - distances: - - distance: 7 - destination: 8 - - distance: 7 - destination: 8 + - distance: 5 + destination: 7 + - distance: 5 + destination: 7 pci_segments: - 3 - 3 cpus: - - 4 - - 4 + - 3 + - 3 sgx_epc_sections: - sgx_epc_sections - sgx_epc_sections memory_zones: - memory_zones - memory_zones - guest_numa_id: 0 + guest_numa_id: 3 rng: iommu: false src: /dev/urandom sgx_epc: - prefault: false - size: 6 + size: 7 id: id - prefault: false - size: 6 + size: 7 id: id fs: - pci_segment: 6 - num_queues: 2 - queue_size: 6 + num_queues: 6 + queue_size: 5 tag: tag socket: socket id: id - pci_segment: 6 - num_queues: 2 - queue_size: 6 + num_queues: 6 + queue_size: 5 tag: tag socket: socket id: id vsock: - pci_segment: 7 + pci_segment: 8 iommu: false socket: socket id: id cid: 3 platform: iommu_segments: - - 7 - - 7 - num_pci_segments: 3 + - 1 + - 1 + num_pci_segments: 4 oem_strings: - oem_strings - oem_strings @@ -1019,35 +1123,67 @@ components: tpm: socket: socket pmem: - - pci_segment: 6 + - pci_segment: 3 file: file - size: 5 + size: 3 iommu: false id: id discard_writes: false - - pci_segment: 6 + - pci_segment: 3 file: file - size: 5 + size: 3 iommu: false id: id discard_writes: false watchdog: false iommu: false + pci_segments: + - pci_segment: 4 + mmio32_aperture_weight: 0 + mmio64_aperture_weight: 6 + - pci_segment: 4 + mmio32_aperture_weight: 0 + mmio64_aperture_weight: 6 payload: cmdline: cmdline kernel: kernel initramfs: initramfs firmware: firmware serial: - mode: "false" + mode: "Off" file: file iommu: false socket: socket + rate_limit_groups: + - id: id + rate_limiter_config: + ops: + size: 0 + one_time_burst: 0 + refill_time: 0 + bandwidth: + size: 0 + one_time_burst: 0 + refill_time: 0 + - id: id + rate_limiter_config: + ops: + size: 0 + one_time_burst: 0 + refill_time: 0 + bandwidth: + size: 0 + one_time_burst: 0 + refill_time: 0 + debug_console: + mode: "Off" + iobase: 7 + file: file net: - tap: tap host_mac: host_mac num_queues: 6 - queue_size: 3 + queue_size: 1 ip: 192.168.249.1 rate_limiter_config: ops: @@ -1059,8 +1195,8 @@ components: one_time_burst: 0 refill_time: 0 mac: mac - mtu: 9 - pci_segment: 6 + mtu: 3 + pci_segment: 2 vhost_mode: Client iommu: false vhost_socket: vhost_socket @@ -1070,7 +1206,7 @@ components: - tap: tap host_mac: host_mac num_queues: 6 - queue_size: 3 + queue_size: 1 ip: 192.168.249.1 rate_limiter_config: ops: @@ -1082,14 +1218,15 @@ components: one_time_burst: 0 refill_time: 0 mac: mac - mtu: 9 - pci_segment: 6 + mtu: 3 + pci_segment: 2 vhost_mode: Client iommu: false vhost_socket: vhost_socket vhost_user: false id: id mask: 255.255.255.0 + pvpanic: false properties: cpus: $ref: '#/components/schemas/CpusConfig' @@ -1097,6 +1234,10 @@ components: $ref: '#/components/schemas/MemoryConfig' payload: $ref: '#/components/schemas/PayloadConfig' + rate_limit_groups: + items: + $ref: '#/components/schemas/RateLimitGroupConfig' + type: array disks: items: $ref: '#/components/schemas/DiskConfig' @@ -1121,6 +1262,8 @@ components: $ref: '#/components/schemas/ConsoleConfig' console: $ref: '#/components/schemas/ConsoleConfig' + debug_console: + $ref: '#/components/schemas/DebugConsoleConfig' devices: items: $ref: '#/components/schemas/DeviceConfig' @@ -1145,6 +1288,13 @@ components: watchdog: default: false type: boolean + pvpanic: + default: false + type: boolean + pci_segments: + items: + $ref: '#/components/schemas/PciSegmentConfig' + type: array platform: $ref: '#/components/schemas/PlatformConfig' tpm: @@ -1240,12 +1390,30 @@ components: - boot_vcpus - max_vcpus type: object + PciSegmentConfig: + example: + pci_segment: 4 + mmio32_aperture_weight: 0 + mmio64_aperture_weight: 6 + properties: + pci_segment: + format: int16 + type: integer + mmio32_aperture_weight: + format: int32 + type: integer + mmio64_aperture_weight: + format: int32 + type: integer + required: + - pci_segment + type: object PlatformConfig: example: iommu_segments: - - 7 - - 7 - num_pci_segments: 3 + - 1 + - 1 + num_pci_segments: 4 oem_strings: - oem_strings - oem_strings @@ -1447,17 +1615,49 @@ components: ops: $ref: '#/components/schemas/TokenBucket' type: object + RateLimitGroupConfig: + example: + id: id + rate_limiter_config: + ops: + size: 0 + one_time_burst: 0 + refill_time: 0 + bandwidth: + size: 0 + one_time_burst: 0 + refill_time: 0 + properties: + id: + type: string + rate_limiter_config: + $ref: '#/components/schemas/RateLimiterConfig' + required: + - id + - rate_limiter_config + type: object + VirtQueueAffinity: + example: + host_cpus: + - 6 + - 6 + queue_index: 9 + properties: + queue_index: + type: integer + host_cpus: + items: + type: integer + type: array + required: + - host_cpus + - queue_index + type: object DiskConfig: example: - pci_segment: 8 - path: path - num_queues: 4 - readonly: false - iommu: false - queue_size: 5 - vhost_socket: vhost_socket - serial: serial - vhost_user: false + num_queues: 9 + rate_limit_group: rate_limit_group + queue_size: 6 direct: false rate_limiter_config: ops: @@ -1468,6 +1668,22 @@ components: size: 0 one_time_burst: 0 refill_time: 0 + queue_affinity: + - host_cpus: + - 6 + - 6 + queue_index: 9 + - host_cpus: + - 6 + - 6 + queue_index: 9 + pci_segment: 8 + path: path + readonly: false + iommu: false + vhost_socket: vhost_socket + serial: serial + vhost_user: false id: id properties: path: @@ -1501,6 +1717,12 @@ components: type: string serial: type: string + rate_limit_group: + type: string + queue_affinity: + items: + $ref: '#/components/schemas/VirtQueueAffinity' + type: array required: - path type: object @@ -1509,7 +1731,7 @@ components: tap: tap host_mac: host_mac num_queues: 6 - queue_size: 3 + queue_size: 1 ip: 192.168.249.1 rate_limiter_config: ops: @@ -1521,8 +1743,8 @@ components: one_time_burst: 0 refill_time: 0 mac: mac - mtu: 9 - pci_segment: 6 + mtu: 3 + pci_segment: 2 vhost_mode: Client iommu: false vhost_socket: vhost_socket @@ -1585,7 +1807,7 @@ components: type: object BalloonConfig: example: - size: 1 + size: 6 deflate_on_oom: false free_page_reporting: false properties: @@ -1606,8 +1828,8 @@ components: FsConfig: example: pci_segment: 6 - num_queues: 2 - queue_size: 6 + num_queues: 6 + queue_size: 5 tag: tag socket: socket id: id @@ -1635,9 +1857,9 @@ components: type: object PmemConfig: example: - pci_segment: 6 + pci_segment: 3 file: file - size: 5 + size: 3 iommu: false id: id discard_writes: false @@ -1663,7 +1885,7 @@ components: type: object ConsoleConfig: example: - mode: "false" + mode: "Off" file: file iommu: false socket: socket @@ -1674,12 +1896,12 @@ components: type: string mode: enum: - - "false" + - "Off" - Pty - Tty - File - Socket - - null + - "Null" type: string iommu: default: false @@ -1687,10 +1909,32 @@ components: required: - mode type: object + DebugConsoleConfig: + example: + mode: "Off" + iobase: 7 + file: file + properties: + file: + type: string + mode: + enum: + - "Off" + - Pty + - Tty + - File + - "Null" + type: string + iobase: + type: integer + required: + - mode + type: object DeviceConfig: example: - pci_segment: 3 + pci_segment: 0 path: path + x_nv_gpudirect_clique: 7 iommu: false id: id properties: @@ -1704,6 +1948,9 @@ components: type: integer id: type: string + x_nv_gpudirect_clique: + format: int8 + type: integer required: - path type: object @@ -1718,9 +1965,9 @@ components: type: object VdpaConfig: example: - pci_segment: 7 + pci_segment: 0 path: path - num_queues: 3 + num_queues: 6 iommu: false id: id properties: @@ -1743,7 +1990,7 @@ components: type: object VsockConfig: example: - pci_segment: 7 + pci_segment: 8 iommu: false socket: socket id: id @@ -1772,7 +2019,7 @@ components: SgxEpcConfig: example: prefault: false - size: 6 + size: 7 id: id properties: id: @@ -1789,8 +2036,8 @@ components: type: object NumaDistance: example: - distance: 7 - destination: 8 + distance: 5 + destination: 7 properties: destination: format: int32 @@ -1805,23 +2052,23 @@ components: NumaConfig: example: distances: - - distance: 7 - destination: 8 - - distance: 7 - destination: 8 + - distance: 5 + destination: 7 + - distance: 5 + destination: 7 pci_segments: - 3 - 3 cpus: - - 4 - - 4 + - 3 + - 3 sgx_epc_sections: - sgx_epc_sections - sgx_epc_sections memory_zones: - memory_zones - memory_zones - guest_numa_id: 0 + guest_numa_id: 3 properties: guest_numa_id: format: int32 @@ -1935,3 +2182,12 @@ components: required: - destination_url type: object + VmAddUserDevice: + example: + socket: socket + properties: + socket: + type: string + required: + - socket + type: object diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go index c321a36de8..4379918ea6 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/api_default.go @@ -13,7 +13,7 @@ package openapi import ( "bytes" _context "context" - _io "io" + _ioutil "io/ioutil" _nethttp "net/http" _neturl "net/url" ) @@ -96,9 +96,9 @@ func (a *DefaultApiService) BootVMExecute(r ApiBootVMRequest) (*_nethttp.Respons return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -196,9 +196,9 @@ func (a *DefaultApiService) CreateVMExecute(r ApiCreateVMRequest) (*_nethttp.Res return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -284,9 +284,9 @@ func (a *DefaultApiService) DeleteVMExecute(r ApiDeleteVMRequest) (*_nethttp.Res return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -372,9 +372,9 @@ func (a *DefaultApiService) PauseVMExecute(r ApiPauseVMRequest) (*_nethttp.Respo return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -460,9 +460,9 @@ func (a *DefaultApiService) PowerButtonVMExecute(r ApiPowerButtonVMRequest) (*_n return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -548,9 +548,9 @@ func (a *DefaultApiService) RebootVMExecute(r ApiRebootVMRequest) (*_nethttp.Res return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -636,9 +636,9 @@ func (a *DefaultApiService) ResumeVMExecute(r ApiResumeVMRequest) (*_nethttp.Res return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -724,9 +724,9 @@ func (a *DefaultApiService) ShutdownVMExecute(r ApiShutdownVMRequest) (*_nethttp return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -812,9 +812,9 @@ func (a *DefaultApiService) ShutdownVMMExecute(r ApiShutdownVMMRequest) (*_netht return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -915,9 +915,9 @@ func (a *DefaultApiService) VmAddDevicePutExecute(r ApiVmAddDevicePutRequest) (P return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1027,9 +1027,9 @@ func (a *DefaultApiService) VmAddDiskPutExecute(r ApiVmAddDiskPutRequest) (PciDe return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1139,9 +1139,9 @@ func (a *DefaultApiService) VmAddFsPutExecute(r ApiVmAddFsPutRequest) (PciDevice return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1251,9 +1251,9 @@ func (a *DefaultApiService) VmAddNetPutExecute(r ApiVmAddNetPutRequest) (PciDevi return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1363,9 +1363,121 @@ func (a *DefaultApiService) VmAddPmemPutExecute(r ApiVmAddPmemPutRequest) (PciDe return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + +type ApiVmAddUserDevicePutRequest struct { + ctx _context.Context + ApiService *DefaultApiService + vmAddUserDevice *VmAddUserDevice +} + +// The path of the new device +func (r ApiVmAddUserDevicePutRequest) VmAddUserDevice(vmAddUserDevice VmAddUserDevice) ApiVmAddUserDevicePutRequest { + r.vmAddUserDevice = &vmAddUserDevice + return r +} + +func (r ApiVmAddUserDevicePutRequest) Execute() (PciDeviceInfo, *_nethttp.Response, error) { + return r.ApiService.VmAddUserDevicePutExecute(r) +} + +/* +VmAddUserDevicePut Add a new userspace device to the VM + + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmAddUserDevicePutRequest +*/ +func (a *DefaultApiService) VmAddUserDevicePut(ctx _context.Context) ApiVmAddUserDevicePutRequest { + return ApiVmAddUserDevicePutRequest{ + ApiService: a, + ctx: ctx, + } +} + +// Execute executes the request +// +// @return PciDeviceInfo +func (a *DefaultApiService) VmAddUserDevicePutExecute(r ApiVmAddUserDevicePutRequest) (PciDeviceInfo, *_nethttp.Response, error) { + var ( + localVarHTTPMethod = _nethttp.MethodPut + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue PciDeviceInfo + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.VmAddUserDevicePut") + if err != nil { + return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/vm.add-user-device" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := _neturl.Values{} + localVarFormParams := _neturl.Values{} + if r.vmAddUserDevice == nil { + return localVarReturnValue, nil, reportError("vmAddUserDevice is required and must be specified") + } + + // 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{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = r.vmAddUserDevice + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1475,9 +1587,9 @@ func (a *DefaultApiService) VmAddVdpaPutExecute(r ApiVmAddVdpaPutRequest) (PciDe return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1587,9 +1699,9 @@ func (a *DefaultApiService) VmAddVsockPutExecute(r ApiVmAddVsockPutRequest) (Pci return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1696,9 +1808,9 @@ func (a *DefaultApiService) VmCoredumpPutExecute(r ApiVmCoredumpPutRequest) (*_n return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1787,9 +1899,9 @@ func (a *DefaultApiService) VmCountersGetExecute(r ApiVmCountersGetRequest) (map return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1887,9 +1999,9 @@ func (a *DefaultApiService) VmInfoGetExecute(r ApiVmInfoGetRequest) (VmInfo, *_n return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -1996,9 +2108,9 @@ func (a *DefaultApiService) VmReceiveMigrationPutExecute(r ApiVmReceiveMigration return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2096,9 +2208,9 @@ func (a *DefaultApiService) VmRemoveDevicePutExecute(r ApiVmRemoveDevicePutReque return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2196,9 +2308,9 @@ func (a *DefaultApiService) VmResizePutExecute(r ApiVmResizePutRequest) (*_netht return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2296,9 +2408,9 @@ func (a *DefaultApiService) VmResizeZonePutExecute(r ApiVmResizeZonePutRequest) return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2396,9 +2508,9 @@ func (a *DefaultApiService) VmRestorePutExecute(r ApiVmRestorePutRequest) (*_net return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2496,9 +2608,9 @@ func (a *DefaultApiService) VmSendMigrationPutExecute(r ApiVmSendMigrationPutReq return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2596,9 +2708,97 @@ func (a *DefaultApiService) VmSnapshotPutExecute(r ApiVmSnapshotPutRequest) (*_n return localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + return localVarHTTPResponse, newErr + } + + return localVarHTTPResponse, nil +} + +type ApiVmmNmiPutRequest struct { + ctx _context.Context + ApiService *DefaultApiService +} + +func (r ApiVmmNmiPutRequest) Execute() (*_nethttp.Response, error) { + return r.ApiService.VmmNmiPutExecute(r) +} + +/* +VmmNmiPut Inject an NMI. + + @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiVmmNmiPutRequest +*/ +func (a *DefaultApiService) VmmNmiPut(ctx _context.Context) ApiVmmNmiPutRequest { + return ApiVmmNmiPutRequest{ + ApiService: a, + ctx: ctx, + } +} + +// Execute executes the request +func (a *DefaultApiService) VmmNmiPutExecute(r ApiVmmNmiPutRequest) (*_nethttp.Response, error) { + var ( + localVarHTTPMethod = _nethttp.MethodPut + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.VmmNmiPut") + if err != nil { + return nil, GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/vmm.nmi" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := _neturl.Values{} + localVarFormParams := _neturl.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // 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 + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2687,9 +2887,9 @@ func (a *DefaultApiService) VmmPingGetExecute(r ApiVmmPingGetRequest) (VmmPingRe return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body) + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody)) + localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DebugConsoleConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DebugConsoleConfig.md new file mode 100644 index 0000000000..614009e573 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DebugConsoleConfig.md @@ -0,0 +1,103 @@ +# DebugConsoleConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**File** | Pointer to **string** | | [optional] +**Mode** | **string** | | +**Iobase** | Pointer to **int32** | | [optional] + +## Methods + +### NewDebugConsoleConfig + +`func NewDebugConsoleConfig(mode string, ) *DebugConsoleConfig` + +NewDebugConsoleConfig instantiates a new DebugConsoleConfig object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewDebugConsoleConfigWithDefaults + +`func NewDebugConsoleConfigWithDefaults() *DebugConsoleConfig` + +NewDebugConsoleConfigWithDefaults instantiates a new DebugConsoleConfig object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetFile + +`func (o *DebugConsoleConfig) GetFile() string` + +GetFile returns the File field if non-nil, zero value otherwise. + +### GetFileOk + +`func (o *DebugConsoleConfig) GetFileOk() (*string, bool)` + +GetFileOk returns a tuple with the File field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetFile + +`func (o *DebugConsoleConfig) SetFile(v string)` + +SetFile sets File field to given value. + +### HasFile + +`func (o *DebugConsoleConfig) HasFile() bool` + +HasFile returns a boolean if a field has been set. + +### GetMode + +`func (o *DebugConsoleConfig) GetMode() string` + +GetMode returns the Mode field if non-nil, zero value otherwise. + +### GetModeOk + +`func (o *DebugConsoleConfig) GetModeOk() (*string, bool)` + +GetModeOk returns a tuple with the Mode field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetMode + +`func (o *DebugConsoleConfig) SetMode(v string)` + +SetMode sets Mode field to given value. + + +### GetIobase + +`func (o *DebugConsoleConfig) GetIobase() int32` + +GetIobase returns the Iobase field if non-nil, zero value otherwise. + +### GetIobaseOk + +`func (o *DebugConsoleConfig) GetIobaseOk() (*int32, bool)` + +GetIobaseOk returns a tuple with the Iobase field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetIobase + +`func (o *DebugConsoleConfig) SetIobase(v int32)` + +SetIobase sets Iobase field to given value. + +### HasIobase + +`func (o *DebugConsoleConfig) HasIobase() bool` + +HasIobase returns a boolean if a field has been set. + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DefaultApi.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DefaultApi.md index d610977193..4ea4ddaa55 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DefaultApi.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DefaultApi.md @@ -18,6 +18,7 @@ Method | HTTP request | Description [**VmAddFsPut**](DefaultApi.md#VmAddFsPut) | **Put** /vm.add-fs | Add a new virtio-fs device 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 +[**VmAddUserDevicePut**](DefaultApi.md#VmAddUserDevicePut) | **Put** /vm.add-user-device | Add a new userspace device to the VM [**VmAddVdpaPut**](DefaultApi.md#VmAddVdpaPut) | **Put** /vm.add-vdpa | Add a new vDPA device to the VM [**VmAddVsockPut**](DefaultApi.md#VmAddVsockPut) | **Put** /vm.add-vsock | Add a new vsock device to the VM [**VmCoredumpPut**](DefaultApi.md#VmCoredumpPut) | **Put** /vm.coredump | Takes a VM coredump. @@ -30,6 +31,7 @@ Method | HTTP request | Description [**VmRestorePut**](DefaultApi.md#VmRestorePut) | **Put** /vm.restore | Restore a VM from a snapshot. [**VmSendMigrationPut**](DefaultApi.md#VmSendMigrationPut) | **Put** /vm.send-migration | Send a VM migration to URL [**VmSnapshotPut**](DefaultApi.md#VmSnapshotPut) | **Put** /vm.snapshot | Returns a VM snapshot. +[**VmmNmiPut**](DefaultApi.md#VmmNmiPut) | **Put** /vmm.nmi | Inject an NMI. [**VmmPingGet**](DefaultApi.md#VmmPingGet) | **Get** /vmm.ping | Ping the VMM to check for API server availability @@ -872,6 +874,70 @@ No authorization required [[Back to README]](../README.md) +## VmAddUserDevicePut + +> PciDeviceInfo VmAddUserDevicePut(ctx).VmAddUserDevice(vmAddUserDevice).Execute() + +Add a new userspace device to the VM + +### Example + +```go +package main + +import ( + "context" + "fmt" + "os" + openapiclient "./openapi" +) + +func main() { + vmAddUserDevice := *openapiclient.NewVmAddUserDevice("Socket_example") // VmAddUserDevice | The path of the new device + + configuration := openapiclient.NewConfiguration() + api_client := openapiclient.NewAPIClient(configuration) + resp, r, err := api_client.DefaultApi.VmAddUserDevicePut(context.Background()).VmAddUserDevice(vmAddUserDevice).Execute() + if err != nil { + fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.VmAddUserDevicePut``: %v\n", err) + fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) + } + // response from `VmAddUserDevicePut`: PciDeviceInfo + fmt.Fprintf(os.Stdout, "Response from `DefaultApi.VmAddUserDevicePut`: %v\n", resp) +} +``` + +### Path Parameters + + + +### Other Parameters + +Other parameters are passed through a pointer to a apiVmAddUserDevicePutRequest struct via the builder pattern + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **vmAddUserDevice** | [**VmAddUserDevice**](VmAddUserDevice.md) | The path of the new device | + +### Return type + +[**PciDeviceInfo**](PciDeviceInfo.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +[[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) + + ## VmAddVdpaPut > PciDeviceInfo VmAddVdpaPut(ctx).VdpaConfig(vdpaConfig).Execute() @@ -1614,6 +1680,63 @@ No authorization required [[Back to README]](../README.md) +## VmmNmiPut + +> VmmNmiPut(ctx).Execute() + +Inject an NMI. + +### Example + +```go +package main + +import ( + "context" + "fmt" + "os" + openapiclient "./openapi" +) + +func main() { + + configuration := openapiclient.NewConfiguration() + api_client := openapiclient.NewAPIClient(configuration) + resp, r, err := api_client.DefaultApi.VmmNmiPut(context.Background()).Execute() + if err != nil { + fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.VmmNmiPut``: %v\n", err) + fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) + } +} +``` + +### Path Parameters + +This endpoint does not need any parameter. + +### Other Parameters + +Other parameters are passed through a pointer to a apiVmmNmiPutRequest struct via the builder pattern + + +### Return type + + (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **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).Execute() diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DeviceConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DeviceConfig.md index 07f0943953..616aed936a 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DeviceConfig.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DeviceConfig.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **Iommu** | Pointer to **bool** | | [optional] [default to false] **PciSegment** | Pointer to **int32** | | [optional] **Id** | Pointer to **string** | | [optional] +**XNvGpudirectClique** | Pointer to **int32** | | [optional] ## Methods @@ -123,6 +124,31 @@ SetId sets Id field to given value. HasId returns a boolean if a field has been set. +### GetXNvGpudirectClique + +`func (o *DeviceConfig) GetXNvGpudirectClique() int32` + +GetXNvGpudirectClique returns the XNvGpudirectClique field if non-nil, zero value otherwise. + +### GetXNvGpudirectCliqueOk + +`func (o *DeviceConfig) GetXNvGpudirectCliqueOk() (*int32, bool)` + +GetXNvGpudirectCliqueOk returns a tuple with the XNvGpudirectClique field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetXNvGpudirectClique + +`func (o *DeviceConfig) SetXNvGpudirectClique(v int32)` + +SetXNvGpudirectClique sets XNvGpudirectClique field to given value. + +### HasXNvGpudirectClique + +`func (o *DeviceConfig) HasXNvGpudirectClique() bool` + +HasXNvGpudirectClique returns a boolean if a field has been set. + [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DiskConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DiskConfig.md index fe9d78d7fc..74367d8acd 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DiskConfig.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/DiskConfig.md @@ -16,6 +16,8 @@ Name | Type | Description | Notes **PciSegment** | Pointer to **int32** | | [optional] **Id** | Pointer to **string** | | [optional] **Serial** | Pointer to **string** | | [optional] +**RateLimitGroup** | Pointer to **string** | | [optional] +**QueueAffinity** | Pointer to [**[]VirtQueueAffinity**](VirtQueueAffinity.md) | | [optional] ## Methods @@ -331,6 +333,56 @@ SetSerial sets Serial field to given value. HasSerial returns a boolean if a field has been set. +### GetRateLimitGroup + +`func (o *DiskConfig) GetRateLimitGroup() string` + +GetRateLimitGroup returns the RateLimitGroup field if non-nil, zero value otherwise. + +### GetRateLimitGroupOk + +`func (o *DiskConfig) GetRateLimitGroupOk() (*string, bool)` + +GetRateLimitGroupOk returns a tuple with the RateLimitGroup field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetRateLimitGroup + +`func (o *DiskConfig) SetRateLimitGroup(v string)` + +SetRateLimitGroup sets RateLimitGroup field to given value. + +### HasRateLimitGroup + +`func (o *DiskConfig) HasRateLimitGroup() bool` + +HasRateLimitGroup returns a boolean if a field has been set. + +### GetQueueAffinity + +`func (o *DiskConfig) GetQueueAffinity() []VirtQueueAffinity` + +GetQueueAffinity returns the QueueAffinity field if non-nil, zero value otherwise. + +### GetQueueAffinityOk + +`func (o *DiskConfig) GetQueueAffinityOk() (*[]VirtQueueAffinity, bool)` + +GetQueueAffinityOk returns a tuple with the QueueAffinity field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetQueueAffinity + +`func (o *DiskConfig) SetQueueAffinity(v []VirtQueueAffinity)` + +SetQueueAffinity sets QueueAffinity field to given value. + +### HasQueueAffinity + +`func (o *DiskConfig) HasQueueAffinity() bool` + +HasQueueAffinity returns a boolean if a field has been set. + [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/PciSegmentConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/PciSegmentConfig.md new file mode 100644 index 0000000000..e8f87eae8c --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/PciSegmentConfig.md @@ -0,0 +1,103 @@ +# PciSegmentConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**PciSegment** | **int32** | | +**Mmio32ApertureWeight** | Pointer to **int32** | | [optional] +**Mmio64ApertureWeight** | Pointer to **int32** | | [optional] + +## Methods + +### NewPciSegmentConfig + +`func NewPciSegmentConfig(pciSegment int32, ) *PciSegmentConfig` + +NewPciSegmentConfig instantiates a new PciSegmentConfig object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewPciSegmentConfigWithDefaults + +`func NewPciSegmentConfigWithDefaults() *PciSegmentConfig` + +NewPciSegmentConfigWithDefaults instantiates a new PciSegmentConfig object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetPciSegment + +`func (o *PciSegmentConfig) GetPciSegment() int32` + +GetPciSegment returns the PciSegment field if non-nil, zero value otherwise. + +### GetPciSegmentOk + +`func (o *PciSegmentConfig) GetPciSegmentOk() (*int32, bool)` + +GetPciSegmentOk returns a tuple with the PciSegment field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetPciSegment + +`func (o *PciSegmentConfig) SetPciSegment(v int32)` + +SetPciSegment sets PciSegment field to given value. + + +### GetMmio32ApertureWeight + +`func (o *PciSegmentConfig) GetMmio32ApertureWeight() int32` + +GetMmio32ApertureWeight returns the Mmio32ApertureWeight field if non-nil, zero value otherwise. + +### GetMmio32ApertureWeightOk + +`func (o *PciSegmentConfig) GetMmio32ApertureWeightOk() (*int32, bool)` + +GetMmio32ApertureWeightOk returns a tuple with the Mmio32ApertureWeight field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetMmio32ApertureWeight + +`func (o *PciSegmentConfig) SetMmio32ApertureWeight(v int32)` + +SetMmio32ApertureWeight sets Mmio32ApertureWeight field to given value. + +### HasMmio32ApertureWeight + +`func (o *PciSegmentConfig) HasMmio32ApertureWeight() bool` + +HasMmio32ApertureWeight returns a boolean if a field has been set. + +### GetMmio64ApertureWeight + +`func (o *PciSegmentConfig) GetMmio64ApertureWeight() int32` + +GetMmio64ApertureWeight returns the Mmio64ApertureWeight field if non-nil, zero value otherwise. + +### GetMmio64ApertureWeightOk + +`func (o *PciSegmentConfig) GetMmio64ApertureWeightOk() (*int32, bool)` + +GetMmio64ApertureWeightOk returns a tuple with the Mmio64ApertureWeight field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetMmio64ApertureWeight + +`func (o *PciSegmentConfig) SetMmio64ApertureWeight(v int32)` + +SetMmio64ApertureWeight sets Mmio64ApertureWeight field to given value. + +### HasMmio64ApertureWeight + +`func (o *PciSegmentConfig) HasMmio64ApertureWeight() bool` + +HasMmio64ApertureWeight returns a boolean if a field has been set. + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/RateLimitGroupConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/RateLimitGroupConfig.md new file mode 100644 index 0000000000..5bbe9ef584 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/RateLimitGroupConfig.md @@ -0,0 +1,72 @@ +# RateLimitGroupConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **string** | | +**RateLimiterConfig** | [**RateLimiterConfig**](RateLimiterConfig.md) | | + +## Methods + +### NewRateLimitGroupConfig + +`func NewRateLimitGroupConfig(id string, rateLimiterConfig RateLimiterConfig, ) *RateLimitGroupConfig` + +NewRateLimitGroupConfig instantiates a new RateLimitGroupConfig object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewRateLimitGroupConfigWithDefaults + +`func NewRateLimitGroupConfigWithDefaults() *RateLimitGroupConfig` + +NewRateLimitGroupConfigWithDefaults instantiates a new RateLimitGroupConfig object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetId + +`func (o *RateLimitGroupConfig) GetId() string` + +GetId returns the Id field if non-nil, zero value otherwise. + +### GetIdOk + +`func (o *RateLimitGroupConfig) GetIdOk() (*string, bool)` + +GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetId + +`func (o *RateLimitGroupConfig) SetId(v string)` + +SetId sets Id field to given value. + + +### GetRateLimiterConfig + +`func (o *RateLimitGroupConfig) GetRateLimiterConfig() RateLimiterConfig` + +GetRateLimiterConfig returns the RateLimiterConfig field if non-nil, zero value otherwise. + +### GetRateLimiterConfigOk + +`func (o *RateLimitGroupConfig) GetRateLimiterConfigOk() (*RateLimiterConfig, bool)` + +GetRateLimiterConfigOk returns a tuple with the RateLimiterConfig field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetRateLimiterConfig + +`func (o *RateLimitGroupConfig) SetRateLimiterConfig(v RateLimiterConfig)` + +SetRateLimiterConfig sets RateLimiterConfig field to given value. + + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VirtQueueAffinity.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VirtQueueAffinity.md new file mode 100644 index 0000000000..ca36087206 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VirtQueueAffinity.md @@ -0,0 +1,72 @@ +# VirtQueueAffinity + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**QueueIndex** | **int32** | | +**HostCpus** | **[]int32** | | + +## Methods + +### NewVirtQueueAffinity + +`func NewVirtQueueAffinity(queueIndex int32, hostCpus []int32, ) *VirtQueueAffinity` + +NewVirtQueueAffinity instantiates a new VirtQueueAffinity object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewVirtQueueAffinityWithDefaults + +`func NewVirtQueueAffinityWithDefaults() *VirtQueueAffinity` + +NewVirtQueueAffinityWithDefaults instantiates a new VirtQueueAffinity object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetQueueIndex + +`func (o *VirtQueueAffinity) GetQueueIndex() int32` + +GetQueueIndex returns the QueueIndex field if non-nil, zero value otherwise. + +### GetQueueIndexOk + +`func (o *VirtQueueAffinity) GetQueueIndexOk() (*int32, bool)` + +GetQueueIndexOk returns a tuple with the QueueIndex field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetQueueIndex + +`func (o *VirtQueueAffinity) SetQueueIndex(v int32)` + +SetQueueIndex sets QueueIndex field to given value. + + +### GetHostCpus + +`func (o *VirtQueueAffinity) GetHostCpus() []int32` + +GetHostCpus returns the HostCpus field if non-nil, zero value otherwise. + +### GetHostCpusOk + +`func (o *VirtQueueAffinity) GetHostCpusOk() (*[]int32, bool)` + +GetHostCpusOk returns a tuple with the HostCpus field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetHostCpus + +`func (o *VirtQueueAffinity) SetHostCpus(v []int32)` + +SetHostCpus sets HostCpus field to given value. + + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmAddUserDevice.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmAddUserDevice.md new file mode 100644 index 0000000000..3c1cda58ba --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmAddUserDevice.md @@ -0,0 +1,51 @@ +# VmAddUserDevice + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Socket** | **string** | | + +## Methods + +### NewVmAddUserDevice + +`func NewVmAddUserDevice(socket string, ) *VmAddUserDevice` + +NewVmAddUserDevice instantiates a new VmAddUserDevice object +This constructor will assign default values to properties that have it defined, +and makes sure properties required by API are set, but the set of arguments +will change when the set of required properties is changed + +### NewVmAddUserDeviceWithDefaults + +`func NewVmAddUserDeviceWithDefaults() *VmAddUserDevice` + +NewVmAddUserDeviceWithDefaults instantiates a new VmAddUserDevice object +This constructor will only assign default values to properties that have it defined, +but it doesn't guarantee that properties required by API are set + +### GetSocket + +`func (o *VmAddUserDevice) GetSocket() string` + +GetSocket returns the Socket field if non-nil, zero value otherwise. + +### GetSocketOk + +`func (o *VmAddUserDevice) GetSocketOk() (*string, bool)` + +GetSocketOk returns a tuple with the Socket field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetSocket + +`func (o *VmAddUserDevice) SetSocket(v string)` + +SetSocket sets Socket field to given value. + + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md index 175df7ff33..f6645c531d 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/docs/VmConfig.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes **Cpus** | Pointer to [**CpusConfig**](CpusConfig.md) | | [optional] **Memory** | Pointer to [**MemoryConfig**](MemoryConfig.md) | | [optional] **Payload** | [**PayloadConfig**](PayloadConfig.md) | | +**RateLimitGroups** | Pointer to [**[]RateLimitGroupConfig**](RateLimitGroupConfig.md) | | [optional] **Disks** | Pointer to [**[]DiskConfig**](DiskConfig.md) | | [optional] **Net** | Pointer to [**[]NetConfig**](NetConfig.md) | | [optional] **Rng** | Pointer to [**RngConfig**](RngConfig.md) | | [optional] @@ -15,6 +16,7 @@ Name | Type | Description | Notes **Pmem** | Pointer to [**[]PmemConfig**](PmemConfig.md) | | [optional] **Serial** | Pointer to [**ConsoleConfig**](ConsoleConfig.md) | | [optional] **Console** | Pointer to [**ConsoleConfig**](ConsoleConfig.md) | | [optional] +**DebugConsole** | Pointer to [**DebugConsoleConfig**](DebugConsoleConfig.md) | | [optional] **Devices** | Pointer to [**[]DeviceConfig**](DeviceConfig.md) | | [optional] **Vdpa** | Pointer to [**[]VdpaConfig**](VdpaConfig.md) | | [optional] **Vsock** | Pointer to [**VsockConfig**](VsockConfig.md) | | [optional] @@ -22,6 +24,8 @@ Name | Type | Description | Notes **Numa** | Pointer to [**[]NumaConfig**](NumaConfig.md) | | [optional] **Iommu** | Pointer to **bool** | | [optional] [default to false] **Watchdog** | Pointer to **bool** | | [optional] [default to false] +**Pvpanic** | Pointer to **bool** | | [optional] [default to false] +**PciSegments** | Pointer to [**[]PciSegmentConfig**](PciSegmentConfig.md) | | [optional] **Platform** | Pointer to [**PlatformConfig**](PlatformConfig.md) | | [optional] **Tpm** | Pointer to [**TpmConfig**](TpmConfig.md) | | [optional] @@ -114,6 +118,31 @@ and a boolean to check if the value has been set. SetPayload sets Payload field to given value. +### GetRateLimitGroups + +`func (o *VmConfig) GetRateLimitGroups() []RateLimitGroupConfig` + +GetRateLimitGroups returns the RateLimitGroups field if non-nil, zero value otherwise. + +### GetRateLimitGroupsOk + +`func (o *VmConfig) GetRateLimitGroupsOk() (*[]RateLimitGroupConfig, bool)` + +GetRateLimitGroupsOk returns a tuple with the RateLimitGroups field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetRateLimitGroups + +`func (o *VmConfig) SetRateLimitGroups(v []RateLimitGroupConfig)` + +SetRateLimitGroups sets RateLimitGroups field to given value. + +### HasRateLimitGroups + +`func (o *VmConfig) HasRateLimitGroups() bool` + +HasRateLimitGroups returns a boolean if a field has been set. + ### GetDisks `func (o *VmConfig) GetDisks() []DiskConfig` @@ -314,6 +343,31 @@ SetConsole sets Console field to given value. HasConsole returns a boolean if a field has been set. +### GetDebugConsole + +`func (o *VmConfig) GetDebugConsole() DebugConsoleConfig` + +GetDebugConsole returns the DebugConsole field if non-nil, zero value otherwise. + +### GetDebugConsoleOk + +`func (o *VmConfig) GetDebugConsoleOk() (*DebugConsoleConfig, bool)` + +GetDebugConsoleOk returns a tuple with the DebugConsole field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetDebugConsole + +`func (o *VmConfig) SetDebugConsole(v DebugConsoleConfig)` + +SetDebugConsole sets DebugConsole field to given value. + +### HasDebugConsole + +`func (o *VmConfig) HasDebugConsole() bool` + +HasDebugConsole returns a boolean if a field has been set. + ### GetDevices `func (o *VmConfig) GetDevices() []DeviceConfig` @@ -489,6 +543,56 @@ SetWatchdog sets Watchdog field to given value. HasWatchdog returns a boolean if a field has been set. +### GetPvpanic + +`func (o *VmConfig) GetPvpanic() bool` + +GetPvpanic returns the Pvpanic field if non-nil, zero value otherwise. + +### GetPvpanicOk + +`func (o *VmConfig) GetPvpanicOk() (*bool, bool)` + +GetPvpanicOk returns a tuple with the Pvpanic field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetPvpanic + +`func (o *VmConfig) SetPvpanic(v bool)` + +SetPvpanic sets Pvpanic field to given value. + +### HasPvpanic + +`func (o *VmConfig) HasPvpanic() bool` + +HasPvpanic returns a boolean if a field has been set. + +### GetPciSegments + +`func (o *VmConfig) GetPciSegments() []PciSegmentConfig` + +GetPciSegments returns the PciSegments field if non-nil, zero value otherwise. + +### GetPciSegmentsOk + +`func (o *VmConfig) GetPciSegmentsOk() (*[]PciSegmentConfig, bool)` + +GetPciSegmentsOk returns a tuple with the PciSegments field if it's non-nil, zero value otherwise +and a boolean to check if the value has been set. + +### SetPciSegments + +`func (o *VmConfig) SetPciSegments(v []PciSegmentConfig)` + +SetPciSegments sets PciSegments field to given value. + +### HasPciSegments + +`func (o *VmConfig) HasPciSegments() bool` + +HasPciSegments returns a boolean if a field has been set. + ### GetPlatform `func (o *VmConfig) GetPlatform() PlatformConfig` diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_debug_console_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_debug_console_config.go new file mode 100644 index 0000000000..e5d34ad809 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_debug_console_config.go @@ -0,0 +1,178 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// DebugConsoleConfig struct for DebugConsoleConfig +type DebugConsoleConfig struct { + File *string `json:"file,omitempty"` + Mode string `json:"mode"` + Iobase *int32 `json:"iobase,omitempty"` +} + +// NewDebugConsoleConfig instantiates a new DebugConsoleConfig object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewDebugConsoleConfig(mode string) *DebugConsoleConfig { + this := DebugConsoleConfig{} + this.Mode = mode + return &this +} + +// NewDebugConsoleConfigWithDefaults instantiates a new DebugConsoleConfig object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewDebugConsoleConfigWithDefaults() *DebugConsoleConfig { + this := DebugConsoleConfig{} + return &this +} + +// GetFile returns the File field value if set, zero value otherwise. +func (o *DebugConsoleConfig) GetFile() string { + if o == nil || o.File == nil { + var ret string + return ret + } + return *o.File +} + +// GetFileOk returns a tuple with the File field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *DebugConsoleConfig) GetFileOk() (*string, bool) { + if o == nil || o.File == nil { + return nil, false + } + return o.File, true +} + +// HasFile returns a boolean if a field has been set. +func (o *DebugConsoleConfig) HasFile() bool { + if o != nil && o.File != nil { + return true + } + + return false +} + +// SetFile gets a reference to the given string and assigns it to the File field. +func (o *DebugConsoleConfig) SetFile(v string) { + o.File = &v +} + +// GetMode returns the Mode field value +func (o *DebugConsoleConfig) GetMode() string { + if o == nil { + var ret string + return ret + } + + return o.Mode +} + +// GetModeOk returns a tuple with the Mode field value +// and a boolean to check if the value has been set. +func (o *DebugConsoleConfig) GetModeOk() (*string, bool) { + if o == nil { + return nil, false + } + return &o.Mode, true +} + +// SetMode sets field value +func (o *DebugConsoleConfig) SetMode(v string) { + o.Mode = v +} + +// GetIobase returns the Iobase field value if set, zero value otherwise. +func (o *DebugConsoleConfig) GetIobase() int32 { + if o == nil || o.Iobase == nil { + var ret int32 + return ret + } + return *o.Iobase +} + +// GetIobaseOk returns a tuple with the Iobase field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *DebugConsoleConfig) GetIobaseOk() (*int32, bool) { + if o == nil || o.Iobase == nil { + return nil, false + } + return o.Iobase, true +} + +// HasIobase returns a boolean if a field has been set. +func (o *DebugConsoleConfig) HasIobase() bool { + if o != nil && o.Iobase != nil { + return true + } + + return false +} + +// SetIobase gets a reference to the given int32 and assigns it to the Iobase field. +func (o *DebugConsoleConfig) SetIobase(v int32) { + o.Iobase = &v +} + +func (o DebugConsoleConfig) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if o.File != nil { + toSerialize["file"] = o.File + } + if true { + toSerialize["mode"] = o.Mode + } + if o.Iobase != nil { + toSerialize["iobase"] = o.Iobase + } + return json.Marshal(toSerialize) +} + +type NullableDebugConsoleConfig struct { + value *DebugConsoleConfig + isSet bool +} + +func (v NullableDebugConsoleConfig) Get() *DebugConsoleConfig { + return v.value +} + +func (v *NullableDebugConsoleConfig) Set(val *DebugConsoleConfig) { + v.value = val + v.isSet = true +} + +func (v NullableDebugConsoleConfig) IsSet() bool { + return v.isSet +} + +func (v *NullableDebugConsoleConfig) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableDebugConsoleConfig(val *DebugConsoleConfig) *NullableDebugConsoleConfig { + return &NullableDebugConsoleConfig{value: val, isSet: true} +} + +func (v NullableDebugConsoleConfig) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableDebugConsoleConfig) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_device_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_device_config.go index 578cf2c794..4dfdd57c14 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_device_config.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_device_config.go @@ -16,10 +16,11 @@ import ( // DeviceConfig struct for DeviceConfig type DeviceConfig struct { - Path string `json:"path"` - Iommu *bool `json:"iommu,omitempty"` - PciSegment *int32 `json:"pci_segment,omitempty"` - Id *string `json:"id,omitempty"` + Path string `json:"path"` + Iommu *bool `json:"iommu,omitempty"` + PciSegment *int32 `json:"pci_segment,omitempty"` + Id *string `json:"id,omitempty"` + XNvGpudirectClique *int32 `json:"x_nv_gpudirect_clique,omitempty"` } // NewDeviceConfig instantiates a new DeviceConfig object @@ -164,6 +165,38 @@ func (o *DeviceConfig) SetId(v string) { o.Id = &v } +// GetXNvGpudirectClique returns the XNvGpudirectClique field value if set, zero value otherwise. +func (o *DeviceConfig) GetXNvGpudirectClique() int32 { + if o == nil || o.XNvGpudirectClique == nil { + var ret int32 + return ret + } + return *o.XNvGpudirectClique +} + +// GetXNvGpudirectCliqueOk returns a tuple with the XNvGpudirectClique field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *DeviceConfig) GetXNvGpudirectCliqueOk() (*int32, bool) { + if o == nil || o.XNvGpudirectClique == nil { + return nil, false + } + return o.XNvGpudirectClique, true +} + +// HasXNvGpudirectClique returns a boolean if a field has been set. +func (o *DeviceConfig) HasXNvGpudirectClique() bool { + if o != nil && o.XNvGpudirectClique != nil { + return true + } + + return false +} + +// SetXNvGpudirectClique gets a reference to the given int32 and assigns it to the XNvGpudirectClique field. +func (o *DeviceConfig) SetXNvGpudirectClique(v int32) { + o.XNvGpudirectClique = &v +} + func (o DeviceConfig) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if true { @@ -178,6 +211,9 @@ func (o DeviceConfig) MarshalJSON() ([]byte, error) { if o.Id != nil { toSerialize["id"] = o.Id } + if o.XNvGpudirectClique != nil { + toSerialize["x_nv_gpudirect_clique"] = o.XNvGpudirectClique + } return json.Marshal(toSerialize) } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_disk_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_disk_config.go index 1c86c57f84..a802ee27ce 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_disk_config.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_disk_config.go @@ -16,18 +16,20 @@ import ( // DiskConfig struct for DiskConfig type DiskConfig struct { - Path string `json:"path"` - Readonly *bool `json:"readonly,omitempty"` - Direct *bool `json:"direct,omitempty"` - Iommu *bool `json:"iommu,omitempty"` - NumQueues *int32 `json:"num_queues,omitempty"` - QueueSize *int32 `json:"queue_size,omitempty"` - VhostUser *bool `json:"vhost_user,omitempty"` - VhostSocket *string `json:"vhost_socket,omitempty"` - RateLimiterConfig *RateLimiterConfig `json:"rate_limiter_config,omitempty"` - PciSegment *int32 `json:"pci_segment,omitempty"` - Id *string `json:"id,omitempty"` - Serial *string `json:"serial,omitempty"` + Path string `json:"path"` + Readonly *bool `json:"readonly,omitempty"` + Direct *bool `json:"direct,omitempty"` + Iommu *bool `json:"iommu,omitempty"` + NumQueues *int32 `json:"num_queues,omitempty"` + QueueSize *int32 `json:"queue_size,omitempty"` + VhostUser *bool `json:"vhost_user,omitempty"` + VhostSocket *string `json:"vhost_socket,omitempty"` + RateLimiterConfig *RateLimiterConfig `json:"rate_limiter_config,omitempty"` + PciSegment *int32 `json:"pci_segment,omitempty"` + Id *string `json:"id,omitempty"` + Serial *string `json:"serial,omitempty"` + RateLimitGroup *string `json:"rate_limit_group,omitempty"` + QueueAffinity *[]VirtQueueAffinity `json:"queue_affinity,omitempty"` } // NewDiskConfig instantiates a new DiskConfig object @@ -448,6 +450,70 @@ func (o *DiskConfig) SetSerial(v string) { o.Serial = &v } +// GetRateLimitGroup returns the RateLimitGroup field value if set, zero value otherwise. +func (o *DiskConfig) GetRateLimitGroup() string { + if o == nil || o.RateLimitGroup == nil { + var ret string + return ret + } + return *o.RateLimitGroup +} + +// GetRateLimitGroupOk returns a tuple with the RateLimitGroup field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *DiskConfig) GetRateLimitGroupOk() (*string, bool) { + if o == nil || o.RateLimitGroup == nil { + return nil, false + } + return o.RateLimitGroup, true +} + +// HasRateLimitGroup returns a boolean if a field has been set. +func (o *DiskConfig) HasRateLimitGroup() bool { + if o != nil && o.RateLimitGroup != nil { + return true + } + + return false +} + +// SetRateLimitGroup gets a reference to the given string and assigns it to the RateLimitGroup field. +func (o *DiskConfig) SetRateLimitGroup(v string) { + o.RateLimitGroup = &v +} + +// GetQueueAffinity returns the QueueAffinity field value if set, zero value otherwise. +func (o *DiskConfig) GetQueueAffinity() []VirtQueueAffinity { + if o == nil || o.QueueAffinity == nil { + var ret []VirtQueueAffinity + return ret + } + return *o.QueueAffinity +} + +// GetQueueAffinityOk returns a tuple with the QueueAffinity field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *DiskConfig) GetQueueAffinityOk() (*[]VirtQueueAffinity, bool) { + if o == nil || o.QueueAffinity == nil { + return nil, false + } + return o.QueueAffinity, true +} + +// HasQueueAffinity returns a boolean if a field has been set. +func (o *DiskConfig) HasQueueAffinity() bool { + if o != nil && o.QueueAffinity != nil { + return true + } + + return false +} + +// SetQueueAffinity gets a reference to the given []VirtQueueAffinity and assigns it to the QueueAffinity field. +func (o *DiskConfig) SetQueueAffinity(v []VirtQueueAffinity) { + o.QueueAffinity = &v +} + func (o DiskConfig) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if true { @@ -486,6 +552,12 @@ func (o DiskConfig) MarshalJSON() ([]byte, error) { if o.Serial != nil { toSerialize["serial"] = o.Serial } + if o.RateLimitGroup != nil { + toSerialize["rate_limit_group"] = o.RateLimitGroup + } + if o.QueueAffinity != nil { + toSerialize["queue_affinity"] = o.QueueAffinity + } return json.Marshal(toSerialize) } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_pci_segment_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_pci_segment_config.go new file mode 100644 index 0000000000..2798e0e809 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_pci_segment_config.go @@ -0,0 +1,178 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// PciSegmentConfig struct for PciSegmentConfig +type PciSegmentConfig struct { + PciSegment int32 `json:"pci_segment"` + Mmio32ApertureWeight *int32 `json:"mmio32_aperture_weight,omitempty"` + Mmio64ApertureWeight *int32 `json:"mmio64_aperture_weight,omitempty"` +} + +// NewPciSegmentConfig instantiates a new PciSegmentConfig object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewPciSegmentConfig(pciSegment int32) *PciSegmentConfig { + this := PciSegmentConfig{} + this.PciSegment = pciSegment + return &this +} + +// NewPciSegmentConfigWithDefaults instantiates a new PciSegmentConfig object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewPciSegmentConfigWithDefaults() *PciSegmentConfig { + this := PciSegmentConfig{} + return &this +} + +// GetPciSegment returns the PciSegment field value +func (o *PciSegmentConfig) GetPciSegment() int32 { + if o == nil { + var ret int32 + return ret + } + + return o.PciSegment +} + +// GetPciSegmentOk returns a tuple with the PciSegment field value +// and a boolean to check if the value has been set. +func (o *PciSegmentConfig) GetPciSegmentOk() (*int32, bool) { + if o == nil { + return nil, false + } + return &o.PciSegment, true +} + +// SetPciSegment sets field value +func (o *PciSegmentConfig) SetPciSegment(v int32) { + o.PciSegment = v +} + +// GetMmio32ApertureWeight returns the Mmio32ApertureWeight field value if set, zero value otherwise. +func (o *PciSegmentConfig) GetMmio32ApertureWeight() int32 { + if o == nil || o.Mmio32ApertureWeight == nil { + var ret int32 + return ret + } + return *o.Mmio32ApertureWeight +} + +// GetMmio32ApertureWeightOk returns a tuple with the Mmio32ApertureWeight field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *PciSegmentConfig) GetMmio32ApertureWeightOk() (*int32, bool) { + if o == nil || o.Mmio32ApertureWeight == nil { + return nil, false + } + return o.Mmio32ApertureWeight, true +} + +// HasMmio32ApertureWeight returns a boolean if a field has been set. +func (o *PciSegmentConfig) HasMmio32ApertureWeight() bool { + if o != nil && o.Mmio32ApertureWeight != nil { + return true + } + + return false +} + +// SetMmio32ApertureWeight gets a reference to the given int32 and assigns it to the Mmio32ApertureWeight field. +func (o *PciSegmentConfig) SetMmio32ApertureWeight(v int32) { + o.Mmio32ApertureWeight = &v +} + +// GetMmio64ApertureWeight returns the Mmio64ApertureWeight field value if set, zero value otherwise. +func (o *PciSegmentConfig) GetMmio64ApertureWeight() int32 { + if o == nil || o.Mmio64ApertureWeight == nil { + var ret int32 + return ret + } + return *o.Mmio64ApertureWeight +} + +// GetMmio64ApertureWeightOk returns a tuple with the Mmio64ApertureWeight field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *PciSegmentConfig) GetMmio64ApertureWeightOk() (*int32, bool) { + if o == nil || o.Mmio64ApertureWeight == nil { + return nil, false + } + return o.Mmio64ApertureWeight, true +} + +// HasMmio64ApertureWeight returns a boolean if a field has been set. +func (o *PciSegmentConfig) HasMmio64ApertureWeight() bool { + if o != nil && o.Mmio64ApertureWeight != nil { + return true + } + + return false +} + +// SetMmio64ApertureWeight gets a reference to the given int32 and assigns it to the Mmio64ApertureWeight field. +func (o *PciSegmentConfig) SetMmio64ApertureWeight(v int32) { + o.Mmio64ApertureWeight = &v +} + +func (o PciSegmentConfig) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if true { + toSerialize["pci_segment"] = o.PciSegment + } + if o.Mmio32ApertureWeight != nil { + toSerialize["mmio32_aperture_weight"] = o.Mmio32ApertureWeight + } + if o.Mmio64ApertureWeight != nil { + toSerialize["mmio64_aperture_weight"] = o.Mmio64ApertureWeight + } + return json.Marshal(toSerialize) +} + +type NullablePciSegmentConfig struct { + value *PciSegmentConfig + isSet bool +} + +func (v NullablePciSegmentConfig) Get() *PciSegmentConfig { + return v.value +} + +func (v *NullablePciSegmentConfig) Set(val *PciSegmentConfig) { + v.value = val + v.isSet = true +} + +func (v NullablePciSegmentConfig) IsSet() bool { + return v.isSet +} + +func (v *NullablePciSegmentConfig) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullablePciSegmentConfig(val *PciSegmentConfig) *NullablePciSegmentConfig { + return &NullablePciSegmentConfig{value: val, isSet: true} +} + +func (v NullablePciSegmentConfig) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullablePciSegmentConfig) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_rate_limit_group_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_rate_limit_group_config.go new file mode 100644 index 0000000000..cd54fd9bb6 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_rate_limit_group_config.go @@ -0,0 +1,135 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// RateLimitGroupConfig struct for RateLimitGroupConfig +type RateLimitGroupConfig struct { + Id string `json:"id"` + RateLimiterConfig RateLimiterConfig `json:"rate_limiter_config"` +} + +// NewRateLimitGroupConfig instantiates a new RateLimitGroupConfig object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewRateLimitGroupConfig(id string, rateLimiterConfig RateLimiterConfig) *RateLimitGroupConfig { + this := RateLimitGroupConfig{} + this.Id = id + this.RateLimiterConfig = rateLimiterConfig + return &this +} + +// NewRateLimitGroupConfigWithDefaults instantiates a new RateLimitGroupConfig object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewRateLimitGroupConfigWithDefaults() *RateLimitGroupConfig { + this := RateLimitGroupConfig{} + return &this +} + +// GetId returns the Id field value +func (o *RateLimitGroupConfig) GetId() string { + if o == nil { + var ret string + return ret + } + + return o.Id +} + +// GetIdOk returns a tuple with the Id field value +// and a boolean to check if the value has been set. +func (o *RateLimitGroupConfig) GetIdOk() (*string, bool) { + if o == nil { + return nil, false + } + return &o.Id, true +} + +// SetId sets field value +func (o *RateLimitGroupConfig) SetId(v string) { + o.Id = v +} + +// GetRateLimiterConfig returns the RateLimiterConfig field value +func (o *RateLimitGroupConfig) GetRateLimiterConfig() RateLimiterConfig { + if o == nil { + var ret RateLimiterConfig + return ret + } + + return o.RateLimiterConfig +} + +// GetRateLimiterConfigOk returns a tuple with the RateLimiterConfig field value +// and a boolean to check if the value has been set. +func (o *RateLimitGroupConfig) GetRateLimiterConfigOk() (*RateLimiterConfig, bool) { + if o == nil { + return nil, false + } + return &o.RateLimiterConfig, true +} + +// SetRateLimiterConfig sets field value +func (o *RateLimitGroupConfig) SetRateLimiterConfig(v RateLimiterConfig) { + o.RateLimiterConfig = v +} + +func (o RateLimitGroupConfig) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if true { + toSerialize["id"] = o.Id + } + if true { + toSerialize["rate_limiter_config"] = o.RateLimiterConfig + } + return json.Marshal(toSerialize) +} + +type NullableRateLimitGroupConfig struct { + value *RateLimitGroupConfig + isSet bool +} + +func (v NullableRateLimitGroupConfig) Get() *RateLimitGroupConfig { + return v.value +} + +func (v *NullableRateLimitGroupConfig) Set(val *RateLimitGroupConfig) { + v.value = val + v.isSet = true +} + +func (v NullableRateLimitGroupConfig) IsSet() bool { + return v.isSet +} + +func (v *NullableRateLimitGroupConfig) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableRateLimitGroupConfig(val *RateLimitGroupConfig) *NullableRateLimitGroupConfig { + return &NullableRateLimitGroupConfig{value: val, isSet: true} +} + +func (v NullableRateLimitGroupConfig) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableRateLimitGroupConfig) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_virt_queue_affinity.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_virt_queue_affinity.go new file mode 100644 index 0000000000..60455318c7 --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_virt_queue_affinity.go @@ -0,0 +1,135 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// VirtQueueAffinity struct for VirtQueueAffinity +type VirtQueueAffinity struct { + QueueIndex int32 `json:"queue_index"` + HostCpus []int32 `json:"host_cpus"` +} + +// NewVirtQueueAffinity instantiates a new VirtQueueAffinity object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewVirtQueueAffinity(queueIndex int32, hostCpus []int32) *VirtQueueAffinity { + this := VirtQueueAffinity{} + this.QueueIndex = queueIndex + this.HostCpus = hostCpus + return &this +} + +// NewVirtQueueAffinityWithDefaults instantiates a new VirtQueueAffinity object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewVirtQueueAffinityWithDefaults() *VirtQueueAffinity { + this := VirtQueueAffinity{} + return &this +} + +// GetQueueIndex returns the QueueIndex field value +func (o *VirtQueueAffinity) GetQueueIndex() int32 { + if o == nil { + var ret int32 + return ret + } + + return o.QueueIndex +} + +// GetQueueIndexOk returns a tuple with the QueueIndex field value +// and a boolean to check if the value has been set. +func (o *VirtQueueAffinity) GetQueueIndexOk() (*int32, bool) { + if o == nil { + return nil, false + } + return &o.QueueIndex, true +} + +// SetQueueIndex sets field value +func (o *VirtQueueAffinity) SetQueueIndex(v int32) { + o.QueueIndex = v +} + +// GetHostCpus returns the HostCpus field value +func (o *VirtQueueAffinity) GetHostCpus() []int32 { + if o == nil { + var ret []int32 + return ret + } + + return o.HostCpus +} + +// GetHostCpusOk returns a tuple with the HostCpus field value +// and a boolean to check if the value has been set. +func (o *VirtQueueAffinity) GetHostCpusOk() (*[]int32, bool) { + if o == nil { + return nil, false + } + return &o.HostCpus, true +} + +// SetHostCpus sets field value +func (o *VirtQueueAffinity) SetHostCpus(v []int32) { + o.HostCpus = v +} + +func (o VirtQueueAffinity) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if true { + toSerialize["queue_index"] = o.QueueIndex + } + if true { + toSerialize["host_cpus"] = o.HostCpus + } + return json.Marshal(toSerialize) +} + +type NullableVirtQueueAffinity struct { + value *VirtQueueAffinity + isSet bool +} + +func (v NullableVirtQueueAffinity) Get() *VirtQueueAffinity { + return v.value +} + +func (v *NullableVirtQueueAffinity) Set(val *VirtQueueAffinity) { + v.value = val + v.isSet = true +} + +func (v NullableVirtQueueAffinity) IsSet() bool { + return v.isSet +} + +func (v *NullableVirtQueueAffinity) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableVirtQueueAffinity(val *VirtQueueAffinity) *NullableVirtQueueAffinity { + return &NullableVirtQueueAffinity{value: val, isSet: true} +} + +func (v NullableVirtQueueAffinity) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableVirtQueueAffinity) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_add_user_device.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_add_user_device.go new file mode 100644 index 0000000000..fd93f85cde --- /dev/null +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_add_user_device.go @@ -0,0 +1,106 @@ +/* +Cloud Hypervisor API + +Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. + +API version: 0.3.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package openapi + +import ( + "encoding/json" +) + +// VmAddUserDevice struct for VmAddUserDevice +type VmAddUserDevice struct { + Socket string `json:"socket"` +} + +// NewVmAddUserDevice instantiates a new VmAddUserDevice object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewVmAddUserDevice(socket string) *VmAddUserDevice { + this := VmAddUserDevice{} + this.Socket = socket + return &this +} + +// NewVmAddUserDeviceWithDefaults instantiates a new VmAddUserDevice object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewVmAddUserDeviceWithDefaults() *VmAddUserDevice { + this := VmAddUserDevice{} + return &this +} + +// GetSocket returns the Socket field value +func (o *VmAddUserDevice) GetSocket() string { + if o == nil { + var ret string + return ret + } + + return o.Socket +} + +// GetSocketOk returns a tuple with the Socket field value +// and a boolean to check if the value has been set. +func (o *VmAddUserDevice) GetSocketOk() (*string, bool) { + if o == nil { + return nil, false + } + return &o.Socket, true +} + +// SetSocket sets field value +func (o *VmAddUserDevice) SetSocket(v string) { + o.Socket = v +} + +func (o VmAddUserDevice) MarshalJSON() ([]byte, error) { + toSerialize := map[string]interface{}{} + if true { + toSerialize["socket"] = o.Socket + } + return json.Marshal(toSerialize) +} + +type NullableVmAddUserDevice struct { + value *VmAddUserDevice + isSet bool +} + +func (v NullableVmAddUserDevice) Get() *VmAddUserDevice { + return v.value +} + +func (v *NullableVmAddUserDevice) Set(val *VmAddUserDevice) { + v.value = val + v.isSet = true +} + +func (v NullableVmAddUserDevice) IsSet() bool { + return v.isSet +} + +func (v *NullableVmAddUserDevice) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableVmAddUserDevice(val *VmAddUserDevice) *NullableVmAddUserDevice { + return &NullableVmAddUserDevice{value: val, isSet: true} +} + +func (v NullableVmAddUserDevice) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableVmAddUserDevice) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go index cd243bce97..128c3a9969 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/client/model_vm_config.go @@ -16,26 +16,30 @@ import ( // VmConfig Virtual machine configuration type VmConfig struct { - Cpus *CpusConfig `json:"cpus,omitempty"` - Memory *MemoryConfig `json:"memory,omitempty"` - Payload PayloadConfig `json:"payload"` - Disks *[]DiskConfig `json:"disks,omitempty"` - Net *[]NetConfig `json:"net,omitempty"` - Rng *RngConfig `json:"rng,omitempty"` - Balloon *BalloonConfig `json:"balloon,omitempty"` - Fs *[]FsConfig `json:"fs,omitempty"` - Pmem *[]PmemConfig `json:"pmem,omitempty"` - Serial *ConsoleConfig `json:"serial,omitempty"` - Console *ConsoleConfig `json:"console,omitempty"` - Devices *[]DeviceConfig `json:"devices,omitempty"` - Vdpa *[]VdpaConfig `json:"vdpa,omitempty"` - Vsock *VsockConfig `json:"vsock,omitempty"` - SgxEpc *[]SgxEpcConfig `json:"sgx_epc,omitempty"` - Numa *[]NumaConfig `json:"numa,omitempty"` - Iommu *bool `json:"iommu,omitempty"` - Watchdog *bool `json:"watchdog,omitempty"` - Platform *PlatformConfig `json:"platform,omitempty"` - Tpm *TpmConfig `json:"tpm,omitempty"` + Cpus *CpusConfig `json:"cpus,omitempty"` + Memory *MemoryConfig `json:"memory,omitempty"` + Payload PayloadConfig `json:"payload"` + RateLimitGroups *[]RateLimitGroupConfig `json:"rate_limit_groups,omitempty"` + Disks *[]DiskConfig `json:"disks,omitempty"` + Net *[]NetConfig `json:"net,omitempty"` + Rng *RngConfig `json:"rng,omitempty"` + Balloon *BalloonConfig `json:"balloon,omitempty"` + Fs *[]FsConfig `json:"fs,omitempty"` + Pmem *[]PmemConfig `json:"pmem,omitempty"` + Serial *ConsoleConfig `json:"serial,omitempty"` + Console *ConsoleConfig `json:"console,omitempty"` + DebugConsole *DebugConsoleConfig `json:"debug_console,omitempty"` + Devices *[]DeviceConfig `json:"devices,omitempty"` + Vdpa *[]VdpaConfig `json:"vdpa,omitempty"` + Vsock *VsockConfig `json:"vsock,omitempty"` + SgxEpc *[]SgxEpcConfig `json:"sgx_epc,omitempty"` + Numa *[]NumaConfig `json:"numa,omitempty"` + Iommu *bool `json:"iommu,omitempty"` + Watchdog *bool `json:"watchdog,omitempty"` + Pvpanic *bool `json:"pvpanic,omitempty"` + PciSegments *[]PciSegmentConfig `json:"pci_segments,omitempty"` + Platform *PlatformConfig `json:"platform,omitempty"` + Tpm *TpmConfig `json:"tpm,omitempty"` } // NewVmConfig instantiates a new VmConfig object @@ -49,6 +53,8 @@ func NewVmConfig(payload PayloadConfig) *VmConfig { this.Iommu = &iommu var watchdog bool = false this.Watchdog = &watchdog + var pvpanic bool = false + this.Pvpanic = &pvpanic return &this } @@ -61,6 +67,8 @@ func NewVmConfigWithDefaults() *VmConfig { this.Iommu = &iommu var watchdog bool = false this.Watchdog = &watchdog + var pvpanic bool = false + this.Pvpanic = &pvpanic return &this } @@ -152,6 +160,38 @@ func (o *VmConfig) SetPayload(v PayloadConfig) { o.Payload = v } +// GetRateLimitGroups returns the RateLimitGroups field value if set, zero value otherwise. +func (o *VmConfig) GetRateLimitGroups() []RateLimitGroupConfig { + if o == nil || o.RateLimitGroups == nil { + var ret []RateLimitGroupConfig + return ret + } + return *o.RateLimitGroups +} + +// GetRateLimitGroupsOk returns a tuple with the RateLimitGroups field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *VmConfig) GetRateLimitGroupsOk() (*[]RateLimitGroupConfig, bool) { + if o == nil || o.RateLimitGroups == nil { + return nil, false + } + return o.RateLimitGroups, true +} + +// HasRateLimitGroups returns a boolean if a field has been set. +func (o *VmConfig) HasRateLimitGroups() bool { + if o != nil && o.RateLimitGroups != nil { + return true + } + + return false +} + +// SetRateLimitGroups gets a reference to the given []RateLimitGroupConfig and assigns it to the RateLimitGroups field. +func (o *VmConfig) SetRateLimitGroups(v []RateLimitGroupConfig) { + o.RateLimitGroups = &v +} + // GetDisks returns the Disks field value if set, zero value otherwise. func (o *VmConfig) GetDisks() []DiskConfig { if o == nil || o.Disks == nil { @@ -408,6 +448,38 @@ func (o *VmConfig) SetConsole(v ConsoleConfig) { o.Console = &v } +// GetDebugConsole returns the DebugConsole field value if set, zero value otherwise. +func (o *VmConfig) GetDebugConsole() DebugConsoleConfig { + if o == nil || o.DebugConsole == nil { + var ret DebugConsoleConfig + return ret + } + return *o.DebugConsole +} + +// GetDebugConsoleOk returns a tuple with the DebugConsole field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *VmConfig) GetDebugConsoleOk() (*DebugConsoleConfig, bool) { + if o == nil || o.DebugConsole == nil { + return nil, false + } + return o.DebugConsole, true +} + +// HasDebugConsole returns a boolean if a field has been set. +func (o *VmConfig) HasDebugConsole() bool { + if o != nil && o.DebugConsole != nil { + return true + } + + return false +} + +// SetDebugConsole gets a reference to the given DebugConsoleConfig and assigns it to the DebugConsole field. +func (o *VmConfig) SetDebugConsole(v DebugConsoleConfig) { + o.DebugConsole = &v +} + // GetDevices returns the Devices field value if set, zero value otherwise. func (o *VmConfig) GetDevices() []DeviceConfig { if o == nil || o.Devices == nil { @@ -632,6 +704,70 @@ func (o *VmConfig) SetWatchdog(v bool) { o.Watchdog = &v } +// GetPvpanic returns the Pvpanic field value if set, zero value otherwise. +func (o *VmConfig) GetPvpanic() bool { + if o == nil || o.Pvpanic == nil { + var ret bool + return ret + } + return *o.Pvpanic +} + +// GetPvpanicOk returns a tuple with the Pvpanic field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *VmConfig) GetPvpanicOk() (*bool, bool) { + if o == nil || o.Pvpanic == nil { + return nil, false + } + return o.Pvpanic, true +} + +// HasPvpanic returns a boolean if a field has been set. +func (o *VmConfig) HasPvpanic() bool { + if o != nil && o.Pvpanic != nil { + return true + } + + return false +} + +// SetPvpanic gets a reference to the given bool and assigns it to the Pvpanic field. +func (o *VmConfig) SetPvpanic(v bool) { + o.Pvpanic = &v +} + +// GetPciSegments returns the PciSegments field value if set, zero value otherwise. +func (o *VmConfig) GetPciSegments() []PciSegmentConfig { + if o == nil || o.PciSegments == nil { + var ret []PciSegmentConfig + return ret + } + return *o.PciSegments +} + +// GetPciSegmentsOk returns a tuple with the PciSegments field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *VmConfig) GetPciSegmentsOk() (*[]PciSegmentConfig, bool) { + if o == nil || o.PciSegments == nil { + return nil, false + } + return o.PciSegments, true +} + +// HasPciSegments returns a boolean if a field has been set. +func (o *VmConfig) HasPciSegments() bool { + if o != nil && o.PciSegments != nil { + return true + } + + return false +} + +// SetPciSegments gets a reference to the given []PciSegmentConfig and assigns it to the PciSegments field. +func (o *VmConfig) SetPciSegments(v []PciSegmentConfig) { + o.PciSegments = &v +} + // GetPlatform returns the Platform field value if set, zero value otherwise. func (o *VmConfig) GetPlatform() PlatformConfig { if o == nil || o.Platform == nil { @@ -707,6 +843,9 @@ func (o VmConfig) MarshalJSON() ([]byte, error) { if true { toSerialize["payload"] = o.Payload } + if o.RateLimitGroups != nil { + toSerialize["rate_limit_groups"] = o.RateLimitGroups + } if o.Disks != nil { toSerialize["disks"] = o.Disks } @@ -731,6 +870,9 @@ func (o VmConfig) MarshalJSON() ([]byte, error) { if o.Console != nil { toSerialize["console"] = o.Console } + if o.DebugConsole != nil { + toSerialize["debug_console"] = o.DebugConsole + } if o.Devices != nil { toSerialize["devices"] = o.Devices } @@ -752,6 +894,12 @@ func (o VmConfig) MarshalJSON() ([]byte, error) { if o.Watchdog != nil { toSerialize["watchdog"] = o.Watchdog } + if o.Pvpanic != nil { + toSerialize["pvpanic"] = o.Pvpanic + } + if o.PciSegments != nil { + toSerialize["pci_segments"] = o.PciSegments + } if o.Platform != nil { toSerialize["platform"] = o.Platform } diff --git a/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml b/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml index fa855da619..8594d4d000 100644 --- a/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml +++ b/src/runtime/virtcontainers/pkg/cloud-hypervisor/cloud-hypervisor.yaml @@ -347,6 +347,28 @@ paths: 500: description: The new vDPA device could not be added to the VM instance. + /vm.add-user-device: + put: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VmAddUserDevice' + description: The path of the new device + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PciDeviceInfo' + description: The new device was successfully added to the VM instance. + "204": + description: The new device was successfully (cold) added to the VM instance. + "404": + description: The new device could not be added to the VM instance. + summary: Add a new userspace device to the VM + /vm.snapshot: put: summary: Returns a VM snapshot. @@ -383,6 +405,13 @@ paths: 405: description: The VM instance could not be coredumped because it is not booted. + /vmm.nmi: + put: + summary: Inject an NMI. + responses: + 204: + description: The NMI successfully injected. + /vm.restore: put: summary: Restore a VM from a snapshot. @@ -532,6 +561,10 @@ components: $ref: "#/components/schemas/MemoryConfig" payload: $ref: "#/components/schemas/PayloadConfig" + rate_limit_groups: + type: array + items: + $ref: "#/components/schemas/RateLimitGroupConfig" disks: type: array items: @@ -556,6 +589,8 @@ components: $ref: "#/components/schemas/ConsoleConfig" console: $ref: "#/components/schemas/ConsoleConfig" + debug_console: + $ref: "#/components/schemas/DebugConsoleConfig" devices: type: array items: @@ -580,6 +615,13 @@ components: watchdog: type: boolean default: false + pvpanic: + type: boolean + default: false + pci_segments: + type: array + items: + $ref: "#/components/schemas/PciSegmentConfig" platform: $ref: "#/components/schemas/PlatformConfig" tpm: @@ -645,6 +687,21 @@ components: features: $ref: "#/components/schemas/CpuFeatures" + PciSegmentConfig: + required: + - pci_segment + type: object + properties: + pci_segment: + type: integer + format: int16 + mmio32_aperture_weight: + type: integer + format: int32 + mmio64_aperture_weight: + type: integer + format: int32 + PlatformConfig: type: object properties: @@ -790,6 +847,30 @@ components: Defines an IO rate limiter with independent bytes/s and ops/s limits. Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets. + RateLimitGroupConfig: + required: + - id + - rate_limiter_config + type: object + properties: + id: + type: string + rate_limiter_config: + $ref: "#/components/schemas/RateLimiterConfig" + + VirtQueueAffinity: + required: + - queue_index + - host_cpus + type: object + properties: + queue_index: + type: integer + host_cpus: + type: array + items: + type: integer + DiskConfig: required: - path @@ -826,6 +907,12 @@ components: type: string serial: type: string + rate_limit_group: + type: string + queue_affinity: + type: array + items: + $ref: "#/components/schemas/VirtQueueAffinity" NetConfig: type: object @@ -955,11 +1042,24 @@ components: type: string mode: type: string - enum: [Off, Pty, Tty, File, Socket, Null] + enum: ["Off", "Pty", "Tty", "File", "Socket", "Null"] iommu: type: boolean default: false + DebugConsoleConfig: + required: + - mode + type: object + properties: + file: + type: string + mode: + type: string + enum: ["Off", "Pty", "Tty", "File", "Null"] + iobase: + type: integer + DeviceConfig: required: - path @@ -975,7 +1075,9 @@ components: format: int16 id: type: string - + x_nv_gpudirect_clique: + type: integer + format: int8 TpmConfig: required: - socket @@ -1156,3 +1258,11 @@ components: type: string local: type: boolean + + VmAddUserDevice: + required: + - socket + type: object + properties: + socket: + type: string diff --git a/versions.yaml b/versions.yaml index 4cf2a4d85a..a9336893f7 100644 --- a/versions.yaml +++ b/versions.yaml @@ -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: "v36.0" + version: "v39.0" firecracker: description: "Firecracker micro-VMM"