|
|
# xenmgr -> redctl
|
|
|
|
|
|
OpenXT APIs are those specified in the OpenXT [IDL](https://github.com/OpenXT/idl).
|
|
|
redctl APIs are those specified in the redctl [IDL](https://gitlab.com/redfield/redctl/blob/master/api).
|
|
|
|
|
|
## xenmgr
|
|
|
|
|
|
### Runtime APIs
|
|
|
| Description | Needed | com.citrix.xenclient.xenmgr | redctl/api |
|
|
|
|-------------|--------|:----------:|:----------:|
|
|
|
|List current domain IDs. || `list_domids` | |
|
|
|
|Returns the object path to the VM of the given domain ID. Fails with an error if no such VM is running. || `find_vm_by_domid` | |
|
|
|
|
|
|
### Non-Runtime APIs
|
|
|
| Description | Needed | com.citrix.xenclient.xenmgr | redctl/api |
|
|
|
|-------------|--------|:----------:|:----------:|
|
|
|
|List each VM present. Returns a list of dicts with few critical properties filled for each VM, including VM state, domain ID (if running), uuid etc. || `list_vms` | `DomainFindAll` |
|
|
|
|List the templates for creating child service VMs. || `list_child_service_vm_templates` | |
|
|
|
|List the templates for creating new VMa. || `list_templates` | |
|
|
|
|List the UI-visible VM creation templates. || `list_ui_templates` | |
|
|
|
| || `list_extension_packs` | |
|
|
|
|Returns the object path to the VM with the given UUID, or raises an error. || `find_vm_by_uuid` | `DomainFind` |
|
|
|
|Create a new VM. || `create_vm` | `DomainCreate` |
|
|
|
|Create a new VM based on the given template. || `create_vm_with_template` | `New{PV,PVH,User}Domain` |
|
|
|
|Create a new VM based on the given template and UUID. || `create_vm_with_template_and_uuid` | |
|
|
|
|Create a new VM based on given template file and JSON blob. Template or json can be left empty || `create_vm_with_template_and_json` | |
|
|
|
|Create a new VM based on the given template, with ui properties initially set. || `create_vm_with_ui` | |
|
|
|
|Create a new VHD. || `create_vhd` | `ImageCreate` |
|
|
|
|
|
|
### Signals
|
|
|
| Needed | com.citrix.xenclient.xenmgr | redctl/api |
|
|
|
|--------|:------------------------------:|:----------:|
|
|
|
|| `vm_config_changed` | |
|
|
|
|| `notify` | |
|
|
|
|| `vm_state_changed` | |
|
|
|
|| `vm_name_changed` | |
|
|
|
|| `config_changed` | |
|
|
|
|| `language_changed` | |
|
|
|
|| `vm_created` | `Event_DOMAIN_CREATED` |
|
|
|
|| `vm_deleted` | `Event_DOMAIN_REMOVED` |
|
|
|
|| `network_state_changed` | |
|
|
|
|| `vm_transfer_changed` | |
|
|
|
|| `cd_assignment_changed` | |
|
|
|
|
|
|
## VM
|
|
|
|
|
|
### Runtime APIs
|
|
|
| Description | Needed | com.citrix.xenclient.xenmgr.vm | redctl/api |
|
|
|
|-------------|--------|:----------:|:----------:|
|
|
|
|Switch to a VM. || `switch` | |
|
|
|
|Start the VM. || `start` | `DomainStart` |
|
|
|
|Start the VM, for internal use (bypass start hook) || `start_internal` | |
|
|
|
|Reboot the VM. || `reboot` | `DomainRestart` |
|
|
|
|Shutdown the VM. || `shutdown` | `DomainStop` |
|
|
|
|Force shutdown the VM. || `destroy` | |
|
|
|
|s3 the VM. || `sleep` | |
|
|
|
|s4 the VM. || `hibernate` | |
|
|
|
|Wake the VM from s3. || `resume` | |
|
|
|
|Pause VM execution || `pause` | |
|
|
|
|Resume VM execution from paused state || `unpause` | |
|
|
|
|Suspend the VM to disk. || `suspend_to_file` | |
|
|
|
|Resume the VM from a suspended disk image. || `resume_from_file` | |
|
|
|
|
|
|
### Non-Runtime APIs
|
|
|
| Description | Needed | com.citrix.xenclient.xenmgr.vm | redctl/api |
|
|
|
|-------------|--------|:----------:|:----------:|
|
|
|
|Get the value of a VM db key. || `get_db_key` | `GetProperty` |
|
|
|
|Set the value of a VM db key. || `set_db_key` | `SetProperty` |
|
|
|
|Get the value of a VM domstore (domain accessible disk-based private storage) key. || `get_domstore_key` | |
|
|
|
|Set the value of a VM domstore (domain accessible disk-based private storage) key. || `set_domstore_key` | |
|
|
|
|Add a new disk to VM. || `add_disk` | `AddDisk` |
|
|
|
|List the disk objects attached to this VM. || `list_disks` | `Domain.Disks` |
|
|
|
|Add a new NIC to the VM. || `add_nic` | `AddNetwork` |
|
|
|
|List the NIC objects attached to the VM. || `list_nics` | `Domain.Networks` |
|
|
|
|Remove a VM. || `delete` | `DomainRemove` |
|
|
|
|Read a byte array representing the VM icon image. || `read_icon` | `GraphicFind` |
|
|
|
|Create a subordinate Service VM. || `create_child_service_vm` | `DomainCreate` |
|
|
|
| || `list_v4v_firewall_rules` | |
|
|
|
| || `add_v4v_firewall_rule` | |
|
|
|
| || `delete_v4v_firewall_rule` | |
|
|
|
| || `add_net_firewall_rule` | |
|
|
|
| || `list_net_firewall_rules` | |
|
|
|
| || `delete_net_firewall_rule` | |
|
|
|
|
|
|
### Properties
|
|
|
|
|
|
| Needed | com.citrix.xenclient.xenmgr.vm | redctl/api |
|
|
|
|--------|:------------------------------:|:----------:|
|
|
|
|| `state` | |
|
|
|
|| `acpi-state` | |
|
|
|
|| `domid` | |
|
|
|
|| `type` | `DomainConfiguration.Type` |
|
|
|
|| `name` | `DomainConfiguration.Name` |
|
|
|
|| `description` | |
|
|
|
|| `uuid` | `Domain.Uuid` |
|
|
|
|| `seamless-id` | |
|
|
|
|| `slot` | |
|
|
|
|| `pv-addons` | |
|
|
|
|| `pv-addons-version` | |
|
|
|
|| `start-on-boot` | `Domain.StartOnBoot` |
|
|
|
|| `start-from-suspend-image` | |
|
|
|
|| `time-offset` | |
|
|
|
|| `crypto-user` | |
|
|
|
|| `auto-s3-wake` | |
|
|
|
|| `os` | |
|
|
|
|| `image-path` | `DomainDisk.Target` |
|
|
|
|| `wired-network` | |
|
|
|
|| `wireless-network` | |
|
|
|
|| `gpu` | |
|
|
|
|| `cd` | |
|
|
|
|| `mac` | `DomainNetwork.Mac` |
|
|
|
|| `amt-pt` | |
|
|
|
|| `portica-enabled` | |
|
|
|
|| `portica-installed` | |
|
|
|
|| `seamless-traffic` | |
|
|
|
|| `autostart-pending` | |
|
|
|
|| `hibernated` | |
|
|
|
|| `memory-static-max` | |
|
|
|
|| `memory-target` | |
|
|
|
|| `memory-min` | |
|
|
|
|| `memory` | `DomainConfiguration.Memory` |
|
|
|
|| `hidden-in-switcher` | |
|
|
|
|| `hidden-in-ui` | |
|
|
|
|| `notify` | |
|
|
|
|| `virt-type` | |
|
|
|
|| `pae` | |
|
|
|
|| `acpi` | |
|
|
|
|| `apic` | |
|
|
|
|| `viridian` | |
|
|
|
|| `hap` | |
|
|
|
|| `nx` | |
|
|
|
|| `cpuid` | |
|
|
|
|| `xci-cpuid-signature` | |
|
|
|
|| `sound` | `DomainConfiguration.Soundhw` |
|
|
|
|| `display` | `DomainConfiguration.Sdl/Vga/etc.` |
|
|
|
|| `boot` | `DomainConfiguration.Boot` |
|
|
|
|| `cmd-line` | `DomainConfiguration.Cmdline` |
|
|
|
|| `kernel-extract` | `DomainConfiguration.KernelExtract` |
|
|
|
|| `kernel` | `DomainConfiguration.Kernel` |
|
|
|
|| `initrd-extract` | `DomainConfiguration.RamdiskExtract` |
|
|
|
|| `initrd` | `DomainConfiguration.Ramdisk` |
|
|
|
|| `acpi-table` | |
|
|
|
|| `vcpus` | `DomainConfiguration.Vcpus` |
|
|
|
|| `cores-per-socket` | |
|
|
|
|| `videoram` | |
|
|
|
|| `passthrough-mmio` | |
|
|
|
|| `passthrough-io` | |
|
|
|
|| `flask-label` | |
|
|
|
|| `init-flask-label` | |
|
|
|
|| `stubdom-flask-label` | |
|
|
|
|| `qemu-dm-path` | |
|
|
|
|| `qemu-dm-timeout` | |
|
|
|
|| `start-on-boot-priority` | |
|
|
|
|| `shutdown-priority` | |
|
|
|
|| `keep-alive` | |
|
|
|
|| `provides-network-backend` | |
|
|
|
|| `provides-default-network-backend` | |
|
|
|
|| `provides-graphics-fallback` | |
|
|
|
|| `measured` | |
|
|
|
|| `extra-xenvm` | |
|
|
|
|| `extra-hvm` | |
|
|
|
|| `crypto-key-dirs` | |
|
|
|
|| `dependencies` | |
|
|
|
|| `track-dependencies` | `?` |
|
|
|
|| `seamless-mouse-left` | |
|
|
|
|| `seamless-mouse-right` | |
|
|
|
|| `control-platform-power-state` | |
|
|
|
|| `oem-acpi-features` | |
|
|
|
|| `stubdom` | |
|
|
|
|| `usb-enabled` | |
|
|
|
|| `usb-auto-passthrough` | |
|
|
|
|| `usb-control` | `DomainConfiguration.UsbCtrls` |
|
|
|
|| `usb-grab-devices` | |
|
|
|
|| `greedy-pciback-bind` | |
|
|
|
|| `policy-modify-vm-settings` | |
|
|
|
|| `policy-cd-access` | |
|
|
|
|| `policy-cd-recording` | |
|
|
|
|| `policy-audio-access` | |
|
|
|
|| `policy-audio-recording` | |
|
|
|
|| `policy-wired-networking` | |
|
|
|
|| `policy-wireless-networking` | |
|
|
|
|| `policy-print-screen` | |
|
|
|
|| `run-post-create` | |
|
|
|
|| `run-pre-delete` | |
|
|
|
|| `run-pre-boot` | |
|
|
|
|| `run-insteadof-start` | |
|
|
|
|| `run-on-state-change` | |
|
|
|
|| `run-on-acpi-state-change` | |
|
|
|
|| `domstore-read-access` | |
|
|
|
|| `domstore-write-access` | |
|
|
|
|| `show-switcher` | |
|
|
|
|| `native-experience` | |
|
|
|
|| `wireless-control` | |
|
|
|
|| `s3-mode` | |
|
|
|
|| `s4-mode` | |
|
|
|
|| `vsnd` | |
|
|
|
|| `vkbd` | |
|
|
|
|| `vfb` | |
|
|
|
|| `v4v` | |
|
|
|
|| `private-space` | |
|
|
|
|| `realm` | |
|
|
|
|| `sync-uuid` | |
|
|
|
|| `icbinn-path` | |
|
|
|
|| `ovf-transport-iso` | |
|
|
|
|| `download-progress` | |
|
|
|
|| `ready` | |
|
|
|
|| `restrict-display-depth` | |
|
|
|
|| `restrict-display-res` | |
|
|
|
|| `preserve-on-reboot` | |
|
|
|
|| `boot-sentinel` | |
|
|
|
|| `hpet` | |
|
|
|
|| `timer-mode` | |
|
|
|
|| `nestedhvm` | |
|
|
|
|| `serial` | |
|
|
|
|| `bios` | |
|
|
|
|| `hdtype` | |
|
|
|
|
|
|
## VM NIC
|
|
|
|
|
|
### APIs
|
|
|
|
|
|
|Description | Needed | com.citrix.xenclient.xenmgr.vmnic | redctl/api |
|
|
|
|------------|--------|:---------------------------------:|:----------:|
|
|
|
|Delete NIC | | `delete` | `Domain.RemoveNetwork` |
|
|
|
|
|
|
### Properties
|
|
|
|
|
|
| Needed | com.citrix.xenclient.xenmgr.vmnic | redctl/api |
|
|
|
|--------|:------------------------------:|:----------:|
|
|
|
|| `backend-uuid` | |
|
|
|
|| `backend-name` | `DomainNetwork.Backend` |
|
|
|
|| `network` | `DomainNetwork.Bridge` |
|
|
|
|| `wireless-driver` | |
|
|
|
|| `mac` | `DomainNetwork.Mac` |
|
|
|
|| `mac-actual` | |
|
|
|
|| `enabled` | |
|
|
|
|| `model` | `DomainNetwork.Model` |
|
|
|
|
|
|
## VM Disk
|
|
|
|
|
|
### APIs
|
|
|
|
|
|
| Description | Needed | com.citrix.xenclient.xenmgr.vmdisk | redctl/api |
|
|
|
|-------------|--------|:------------------------------:|:----------:|
|
|
|
|Point this to VHD || `attach_vhd` | |
|
|
|
|Point this to physical disk|| `attach_phy` | |
|
|
|
|Mount in a given dir for "easy hacking"(?)|| `mount` | |
|
|
|
|Unmount if mounted || `umount` | |
|
|
|
|Detach disk from VM and possibly remove VHD || `delete` | `Domain.RemoveDisk` |
|
|
|
|Generate VHD's encryption key in specified dir|| `generate_crypto_key_in` | |
|
|
|
|Generate VHD's encryption key in playform's key dir|| `generate_crypto_key` | |
|
|
|
|
|
|
### Properties
|
|
|
|
|
|
| Needed | com.citrix.xenclient.xenmgr.vmdisk | redctl/api |
|
|
|
|--------|:------------------------------:|:----------:|
|
|
|
|| `backend-uuid` | |
|
|
|
|| `backend-name` | `DomainDisk.Backend` |
|
|
|
|| `phys-path` | `DomainDisk.Target` |
|
|
|
|| `phys-type` | `DomainDisk.Backendtype` |
|
|
|
|| `virt-path` | `DomainDisk.Vdev` |
|
|
|
|| `mode` | `DomainDisk.Access` |
|
|
|
|| `devtype` | `DomainDisk.Devtype` |
|
|
|
|| `snapshot` | |
|
|
|
|| `shared` | |
|
|
|
|| `managed-disktype` | |
|
|
|
|| `enabled` | |
|
|
|
|| `encryption-key-set` | |
|
|
|
|| `virtual-size-mb` | `DomainDisk.Image.Size` |
|
|
|
|| `utilization-bytes` | |
|
|
|
|