Perhaps you can query the status of job using the correlation id (taking
the examples from ovirt-system-tests):
dead_snap1_params = types.Snapshot(
description=SNAPSHOT_DESC_1,
persist_memorystate=False,
disk_attachments=[
types.DiskAttachment(
disk=types.Disk(
id=disk.id
)
)
]
)
correlation_id = uuid.uuid4()
vm1_snapshots_service.add(dead_snap1_params,
query={'correlation_id': correlation_id})
testlib.assert_true_within_long(
lambda:
test_utils.all_jobs_finished(engine, correlation_id)
)
All jobs finished checks that jobs with correlation_id have finished, it is
implemented like this[2]:
def all_jobs_finished(engine, correlation_id):
try:
jobs = engine.jobs_service().list(
search='correlation_id=%s' % correlation_id
)
except:
jobs = engine.jobs_service().list()
return all(job.status != types.JobStatus.STARTED for job in jobs)
You can instead do something like this:
jobs = engine.jobs_service().list(
search='correlation_id=%s' % correlation_id
)
return any(job.status == types.JobStatus.FAILED for job in jobs)
[1] -
https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-maste...
[2] -
https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-maste...
On Thu, Jul 12, 2018 at 10:28 AM <nicolas(a)devels.es> wrote:
Hi Ondra,
El 2018-07-12 08:02, Ondra Machacek escribió:
> On 07/11/2018 10:10 AM, nicolas(a)devels.es wrote:
>> Hi,
>>
>> We're using ovirt-engine-sdk-python 4.1.6 on oVirt 4.1.9, currently
>> we're trying to delete some snapshots via a script like this:
>>
>> sys_serv = conn.system_service()
>> vms_service = sys_serv.vms_service()
>> vm_service = vms_service.vm_service(vmid)
>> snaps_service = vm_service.snapshots_service()
>> snaps_service.service('SNAPSHOT-ID').remove()
>
> In case of failure this line should raise Error, so you should know it
> failed.
>
It doesn't, actually. This call is asynchronous, and the snapshot
deletion seems to fail after about 10 seconds, so initially it seems to
be correct but fails afterwards, that's why I need a way to check if the
task ended correctly or not.
>>
>> This works, mostly... however, sometimes the deletion fails:
>>
>> Failed to delete snapshot 'snapshot name' for VM 'vm'.
>>
>> Is it currently possible to know via Python-SDK that the deletion
>> actually failed? I know I can check the state of a snapshot, but I'd
>> like to check the result of the task. Is that possible somehow?
>>
>> Thanks.
>> _______________________________________________
>> Users mailing list -- users(a)ovirt.org
>> To unsubscribe send an email to users-leave(a)ovirt.org
>> Privacy Statement:
https://www.ovirt.org/site/privacy-policy/
>> oVirt Code of Conduct:
>>
https://www.ovirt.org/community/about/community-guidelines/
>> List Archives:
>>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/AFGSUUJ3RNW...
_______________________________________________
Users mailing list -- users(a)ovirt.org
To unsubscribe send an email to users-leave(a)ovirt.org
Privacy Statement:
https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct:
https://www.ovirt.org/community/about/community-guidelines/
List Archives:
https://lists.ovirt.org/archives/list/users@ovirt.org/message/XFPROJO4XHL...