Hello,
I'm trying to see how to create a snapshot of a VM, but only of a subset of
its disks (actually it will be only the bootable one)
Taking the examples at
https://github.com/oVirt/ovirt-engine-sdk/tree/master/sdk/examples
I can accomodate something like this
# Get the reference to the service that manages the virtual machines:
vms_service = system_service.vms_service()
# Find the virtual machine and put into data_vm
vm = vms_service.list(
search='name=%s' % MY_VM_NAME,
all_content=True,
)[0]
logging.info(
'Found virtual machine \'%s\', the id is \'%s\'.',
vm.name, vm.id,
)
# Find the services that manage the data_vm virtual machine:
vm_service = vms_service.vm_service(vm.id)
# Send the request to create the snapshot. Note that this will return
# before the snapshot is completely created, so we will later need to
# wait till the snapshot is completely created.
snaps_service = vm_service.snapshots_service()
snap = snaps_service.add(
snapshot=types.Snapshot(
description=snap_description,
persist_memorystate=False,
),
)
This makes a snapshot of all the dsks of the vm.
I can previously filter in my case the bootable disk with something like
this:
# Locate the service that manages the disk attachments of the virtual
# machine:
disk_attachments_service = vm_service.disk_attachments_service()
# Retrieve the list of disks attachments, and print the disk details.
disk_attachments = disk_attachments_service.list()
for disk_attachment in disk_attachments:
disk = connection.follow_link(disk_attachment.disk)
print("name: %s" % disk.name)
print("id: %s" % disk.id)
print("status: %s" % disk.status)
print("bootable: %s" % disk_attachment.bootable)
print("provisioned_size: %s" % disk.provisioned_size)
So in case of an example VM with two disks I get this print out
name: padnpro_bootdisk
id: c122978a-70d7-48aa-97c5-2f17d4603b1e
status: ok
bootable: True
provisioned_size: 59055800320
name: padnpro_imp_Disk1
id: 5454b137-fb2c-46a7-b345-e6d115802582
status: ok
bootable: False
provisioned_size: 10737418240
But I haven't found then the syntax to use to specify a disk list in the
block where I create the sapshot of the VM
snap = snaps_service.add(
snapshot=types.Snapshot(
description=snap_description,
persist_memorystate=False,
disxk x x x ? ? ?
),
)
Any help in this direction?
Tahnsk,
Gianluca