vm5k.actions¶
A set of functions to manipulate virtual machines on Grid‘5000
This module provides tools to interact with the virtual machines.
VM definition and distribution¶
-
vm5k.actions.show_vms(vms)¶ Print a short resume of vms parameters.
Params vms: a list containing a dict by virtual machine
-
vm5k.actions.define_vms(vms_id, template=None, ip_mac=None, tap=None, state=None, host=None, n_cpu=None, cpusets=None, mem=None, hdd=None, backing_file=None, real_file=None)¶ Create a list of virtual machines, where VM parameter is a dict similar to {‘id’: None, ‘host’: None, ‘ip’: None, ‘mac’: None, ‘mem’: 512, ‘n_cpu’: 1, ‘cpuset’: ‘auto’, ‘hdd’: 10, ‘backing_file’: ‘/tmp/vm-base.img’, ‘state’: ‘KO’}
Can be generated from a template or using user defined parameters that can be a single element or a list of element
Parameters: - vms_id – a list of string that will be used as vm id
- template – an XML element defining the template of the VM
- ip_mac – a list of tuple containing ip, mac correspondance
- state – the state of the VM
- host – the host of the VM (string)
- n_cpu – the number of virtual CPU of the VMs
- real_file – boolean to use a real file
-
vm5k.actions.distribute_vms(vms, hosts, distribution='round-robin')¶ Distribute the virtual machines on the hosts.
Parameters: - vms – a list of VMs dicts which host key will be updated
- hosts – a list of hosts
- distribution – a string defining the distribution type: ‘round-robin’, ‘concentrated’, ‘n_by_hosts’, ‘random
-
vm5k.actions.list_vm(hosts, not_running=False)¶ Return the list of VMs on hosts using a disk which keys are the hosts and value are list of VM id
VM state¶
-
vm5k.actions.destroy_vms(hosts, undefine=False)¶ Destroy all the VM on the hosts
-
vm5k.actions.create_disks(vms)¶ Return an action to create the disks for the VMs on the hosts
-
vm5k.actions.create_disks_all_hosts(vms, hosts)¶ Create a temporary file containing the vms disks creation commands upload it and run it on the hosts
-
vm5k.actions.install_vms(vms)¶ Return an action to install the VM on the hosts
-
vm5k.actions.start_vms(vms)¶ Return an action to start the VMs on the hosts
-
vm5k.actions.wait_vms_have_started(vms, restart=True)¶ Scan port 22 on all vms, distributed on hosts
-
vm5k.actions.migrate_vm(vm, host)¶ Migrate a VM to an host
-
vm5k.actions.rm_qcow2_disks(hosts)¶ Removing qcow2 disks located in /tmp