15.5. Methods 15.5.1. Creating a Virtual Machine Creating a new virtual machine requires the name , template , and cluster elements. Identify the template and cluster elements with the id attribute or name element. Identify the CPU profile ID with the cpuprofiles attribute. Example 15.4. Creating a virtual machine with 512 MB that boots from CD-ROM Example 15.5. Creating a virtual machine with 512 MB that boots from a virtual hard disk Note Memory in the example is converted to bytes using the following formula: 512MB * 1024 2 = 536870912 bytes 15.5.2. Updating a Virtual Machine The name , description , cluster , type , memory , cpu , os , high_availability , display , timezone , domain , stateless , placement_policy , memory_policy , usb , payloads , origin and custom_properties elements are updatable post-creation. Example 15.6. Updating a virtual machine to contain 1 GB of memory Note Memory in the example is converted to bytes using the following formula: 1024MB * 1024 2 = 1073741824 bytes Note Memory hot plug is supported in Red Hat Virtualization. If the virtual machine's operating system supports memory hot plug, you can use the example above to increase memory while the virtual machine is running. Example 15.7. Hot plugging vCPUs Add virtual CPUs to a running virtual machine without having to reboot it. In this example, the number of sockets is changed to 2. Note CPU hot unplug is currently not supported in Red Hat Virtualization. Example 15.8. Pinning a virtual machine to multiple hosts A virtual machine that is pinned to multiple hosts cannot be live migrated, but in the event of a host failure, any virtual machine configured to be highly available is automatically restarted on one of the other hosts to which the virtual machine is pinned. Multi-host pinning can be used to restrict a virtual machine to hosts with, for example, the same hardware configuration. 15.5.3. Removing a Virtual Machine Removal of a virtual machine requires a DELETE request. Example 15.9. Removing a virtual machine 15.5.4. Removing a Virtual Machine but not the Virtual Disk Detach the virtual disk prior to removing the virtual machine. This preserves the virtual disk. Removal of a virtual machine requires a DELETE request. Example 15.10. Removing a virtual machine

Commands:
POST /ovirt-engine/api/vms HTTP/1.1 Accept: application/xml Content-type: application/xml <vm> <name>vm2</name> <description>Virtual Machine 2</description> <type>desktop</type> <memory>536870912</memory> <cluster> <name>default</name> </cluster> <template> <name>Blank</name> </template> <os> <boot dev="cdrom"/> </os> <cdroms> <cdrom> <file id="example_windows_7_x64_dvd_u_677543.iso"/> </cdrom> </cdroms> <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/> </vm>
POST /ovirt-engine/api/vms HTTP/1.1 Accept: application/xml Content-type: application/xml <vm> <name>vm2</name> <description>Virtual Machine 2</description> <type>desktop</type> <memory>536870912</memory> <cluster> <name>default</name> </cluster> <template> <name>Blank</name> </template> <os> <boot dev="hd"/> </os> <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/> </vm>
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 Accept: application/xml Content-type: application/xml <vm> <memory>1073741824</memory> </vm>
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 Accept: application/xml Content-type: application/xml <vm> <cpu> <topology sockets="2" cores="1"/> </cpu> </vm>
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 Accept: application/xml Content-type: application/xml <vm> <high_availability> <enabled>true</enabled> <priority>1</priority> </high_availability> <placement_policy> <hosts> <host><name>Host1</name></host> <host><name>Host2</name></host> </hosts> <affinity>pinned</affinity> </placement_policy> </vm>
DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 HTTP/1.1 204 No Content
DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 Accept: application/xml Content-type: application/xml <action> <vm> <disks> <detach_only>true</detach_only> </disks> </vm> </action>