Hi Benny,
El 2018-07-12 08:50, Benny Zlotnik escribió:
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 [5]
)
)
]
)
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)
)
I tried this approach but with the snapshot deletion task instead of
creating one.
customuuid = uuid4()
snaps_service.service(newsnap.id).remove(query={'correlation_id':
customuuid})
However, when this task is run, I see no task with this correlation_id.
Moreover, I cannot find a correlation_id field in the job object.
In [40]: job
Out[40]: <ovirtsdk4.types.Job at 0x7f30c9312a10>
In [41]: job.
job.auto_cleared job.description job.external job.id
job.name job.start_time job.steps
job.comment job.end_time job.href job.last_updated
job.owner job.status
The 'id' field doesn't correspond to the correlation_id generated above.
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
)
This won't work either, it returns an exception claiming this:
TypeError: list() got an unexpected keyword argument 'search'
Any further hints with this?
Thanks
> 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
> [6]
> [2]
>
- https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-master/test_utils/__init__.py#L209
> [7]
>
> 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/
>> [1]
>>>> oVirt Code of Conduct:
>>>>
https://www.ovirt.org/community/about/community-guidelines/ [2]
>>>> List Archives:
>>>>
>>
>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/AFGSUUJ3RNW...
>> [3]
>> _______________________________________________
>> 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/ [1]
>> oVirt Code of Conduct:
>>
https://www.ovirt.org/community/about/community-guidelines/ [2]
>> List Archives:
>>
>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/XFPROJO4XHL...
>> [4]
>
>
> Links:
> ------
> [1]
https://www.ovirt.org/site/privacy-policy/
> [2]
https://www.ovirt.org/community/about/community-guidelines/
> [3]
>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/AFGSUUJ3RNW...
> [4]
>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/XFPROJO4XHL...
> [5]
http://disk.id
> [6]
>
https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-maste...
> [7]
>
https://github.com/oVirt/ovirt-system-tests/blob/master/basic-suite-maste...