salt.modules.xapi_virt
This module (mostly) uses the XenAPI to manage Xen virtual machines.
Big fat warning: the XenAPI used in this file is the one bundled with Xen Source, NOT XenServer nor Xen Cloud Platform. As a matter of fact it will fail under those platforms. From what I've read, little work is needed to adapt this code to XS/XCP, mostly playing with XenAPI version, but as XCP is not taking precedence on Xen Source on many platforms, please keep compatibility in mind.
Useful documentation:
. http://downloads.xen.org/Wiki/XenAPI/xenapi-1.0.6.pdf . http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/ . https://github.com/xapi-project/xen-api/tree/master/scripts/examples/python . http://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=tools/python/xen/xm;hb=HEAD
-
Return an int representing the number of unallocated cpus on this hypervisor
CLI Example:
salt '*' virt.freecpu
salt.modules.xapi_virt.freecpu()
-
Return an int representing the amount of memory that has not been given to virtual machines on this node
CLI Example:
salt '*' virt.freemem
salt.modules.xapi_virt.freemem()
-
Return the node_info, vm_info and freemem
CLI Example:
salt '*' virt.full_info
salt.modules.xapi_virt.full_info()
-
Return the disks of a named vm
CLI Example:
salt '*' virt.get_disks <vm name>
salt.modules.xapi_virt.get_disks(vm_)
-
Return a list off MAC addresses from the named vm
CLI Example:
salt '*' virt.get_macs <vm name>
salt.modules.xapi_virt.get_macs(vm_)
-
Return info about the network interfaces of a named vm
CLI Example:
salt '*' virt.get_nics <vm name>
salt.modules.xapi_virt.get_nics(vm_)
-
Returns a bool whether or not this node is a hypervisor of any kind
CLI Example:
salt '*' virt.is_hyper
salt.modules.xapi_virt.is_hyper()
-
Return a list of virtual machine names on the minion
CLI Example:
salt '*' virt.list_domains
salt.modules.xapi_virt.list_domains()
-
Migrates the virtual machine to another hypervisor
CLI Example:
salt '*' virt.migrate <vm name> <target hypervisor> [live] [port] [node] [ssl] [change_home_server]
Optional values:
- live
-
Use live migration
- port
-
Use a specified port
- node
-
Use specified NUMA node on target
- ssl
-
use ssl connection for migration
- change_home_server
-
change home server for managed domains
salt.modules.xapi_virt.migrate(vm_, target, live=1, port=0, node=- 1, ssl=None, change_home_server=0)
-
Return a dict with information about this node
CLI Example:
salt '*' virt.node_info
salt.modules.xapi_virt.node_info()
-
Pause the named vm
CLI Example:
salt '*' virt.pause <vm name>
salt.modules.xapi_virt.pause(vm_)
-
Reboot a domain via ACPI request
CLI Example:
salt '*' virt.reboot <vm name>
salt.modules.xapi_virt.reboot(vm_)
-
Reset a VM by emulating the reset button on a physical machine
CLI Example:
salt '*' virt.reset <vm name>
salt.modules.xapi_virt.reset(vm_)
-
Resume the named vm
CLI Example:
salt '*' virt.resume <vm name>
salt.modules.xapi_virt.resume(vm_)
-
Changes the amount of memory allocated to VM.
Memory is to be specified in MB
CLI Example:
salt '*' virt.setmem myvm 768
salt.modules.xapi_virt.setmem(vm_, memory)
-
Changes the amount of vcpus allocated to VM.
vcpus is an int representing the number to be assigned
CLI Example:
salt '*' virt.setvcpus myvm 2
salt.modules.xapi_virt.setvcpus(vm_, vcpus)
-
Send a soft shutdown signal to the named vm
CLI Example:
salt '*' virt.shutdown <vm name>
salt.modules.xapi_virt.shutdown(vm_)
-
Start a defined domain
CLI Example:
salt '*' virt.start <path to Xen cfg file>
salt.modules.xapi_virt.start(config_)
-
Hard power down the virtual machine, this is equivalent to pulling the power
CLI Example:
salt '*' virt.stop <vm name>
salt.modules.xapi_virt.stop(vm_)
-
Set which CPUs a VCPU can use.
CLI Example:
salt 'foo' virt.vcpu_pin domU-id 2 1 salt 'foo' virt.vcpu_pin domU-id 2 2-6
salt.modules.xapi_virt.vcpu_pin(vm_, vcpu, cpus)
-
Return cputime used by the vms on this hyper in a list of dicts:
[ 'your-vm': { 'cputime' <int> 'cputime_percent' <int> }, ... ]
If you pass a VM name in as an argument then it will return info for just the named VM, otherwise it will return all VMs.
CLI Example:
salt '*' virt.vm_cputime
salt.modules.xapi_virt.vm_cputime(vm_=None)
-
Return disk usage counters used by the vms on this hyper in a list of dicts:
[ 'your-vm': { 'io_read_kbs' : 0, 'io_write_kbs' : 0 }, ... ]
If you pass a VM name in as an argument then it will return info for just the named VM, otherwise it will return all VMs.
CLI Example:
salt '*' virt.vm_diskstats
salt.modules.xapi_virt.vm_diskstats(vm_=None)
-
Return detailed information about the vms.
If you pass a VM name in as an argument then it will return info for just the named VM, otherwise it will return all VMs.
CLI Example:
salt '*' virt.vm_info
salt.modules.xapi_virt.vm_info(vm_=None)
-
Return combined network counters used by the vms on this hyper in a list of dicts:
[ 'your-vm': { 'io_read_kbs' : 0, 'io_total_read_kbs' : 0, 'io_total_write_kbs' : 0, 'io_write_kbs' : 0 }, ... ]
If you pass a VM name in as an argument then it will return info for just the named VM, otherwise it will return all VMs.
CLI Example:
salt '*' virt.vm_netstats
salt.modules.xapi_virt.vm_netstats(vm_=None)
-
Return list of all the vms and their state.
If you pass a VM name in as an argument then it will return info for just the named VM, otherwise it will return all VMs.
CLI Example:
salt '*' virt.vm_state <vm name>
salt.modules.xapi_virt.vm_state(vm_=None)
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.xapi_virt.html