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-master/test-scenarios/004_basic_sanity.py#L353
[2] -
https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-master/test_utils/__init__.py#L209

On Thu, Jul 12, 2018 at 10:28 AM <nico...@devels.es> wrote:

> Hi Ondra,
>
> El 2018-07-12 08:02, Ondra Machacek escribió:
> > On 07/11/2018 10:10 AM, nico...@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@ovirt.org
> >> To unsubscribe send an email to users-le...@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/AFGSUUJ3RNWX6H66RRGDPFLM6YEL577F/
> _______________________________________________
> Users mailing list -- users@ovirt.org
> To unsubscribe send an email to users-le...@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/XFPROJO4XHL36SJIQIYAAXUTPI6N4IIS/
>
_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-le...@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/W66ZNEDVIFCC3K56QHVHGEOP5ZGXAU4Z/

Reply via email to