On Tue, 14 Jul 2020 at 11:27, Nir Soffer <nsof...@redhat.com> wrote:

> On Tue, Jul 14, 2020 at 9:33 AM Łukasz Kołaciński <
> l.kolacin...@storware.eu> wrote:
>
>> Hello,
>>
>
> Hi Lukaz,
>
> Lets move the discussion to devel@ovirt.org, I think it will be more
> productive.
>
> Also, always CC me and Eyal on incremental backup questions for a quicker
> response.
>
>
>> I am trying to do full backup on ovirt 4.4 using sdk.
>>
>
> Which version of oVirt? libvirt?
>
>
>> I used steps from this youtube video:
>> https://www.youtube.com/watch?v=E2VWUVcycj4 and I got error after
>> running backup_vm.py. I see that sdk has imported disks and created backup
>> entity and then I got sdk.NotFoundError exception.
>>
>
> This means that starting backup failed. Unfortunately the API does not
> have a good way to get
> the error that caused the backup to fai.
>
> You should be able to see the error in the event log in the UI, and in
> engine log.
>
>
>> I also tried to do full backup with API and after finalizing backup
>> disappeared (I think)
>>
>
> So backup from the API was successful?
>
> Backups are expected to disappear, they are temporary objects used to
> manage the backup
> process. Once the backup process was finished you can do nothing with the
> backup object,
> and you cannot fetch the same backup data again.
>
>
>> and I couldn't try incremental.
>>
>
> The fact that the backup disappeared should not prevent the next backup.
>
> After you create a backup, you need to poll backup status until the backup
> is ready.
>
>     while backup.phase != BackupPhase.READY:
>         time.sleep(1)
>         backup = backup_service.get()# to_checkpoint_id will be used as
>
> If the backup does not end in ready state, it failed, and you cannot do
> anything with
> this backup.
>
> When the backup is ready, you can fetch the to_checkpoint_id created for
> this backup.
>
>     checkpoint_id = backup.to_checkpoint_id
>
> At this point you need to persist the checkpoint id. This will be used to
> create the incremental
> backup.
>
>
> [   0.0 ] Starting full backup for VM
>> '51708c8e-6671-480b-b2d8-199a1af9cbdc'
>> Password:
>> [   4.2 ] Waiting until backup 0458bf7f-868c-4859-9fa7-767b3ec62b52 is
>> ready
>> Traceback (most recent call last):
>>   File "./backup_vm.py", line 343, in start_backup
>>     backup = backup_service.get()
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/services.py", line
>> 32333, in get
>>     return self._internal_get(headers, query, wait)
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 211, in _internal_get
>>     return future.wait() if wait else future
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 55, in wait
>>     return self._code(response)
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 208, in callback
>>     self._check_fault(response)
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 130, in _check_fault
>>     body = self._internal_read_body(response)
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 312, in _internal_read_body
>>     self._raise_error(response)
>>   File "/usr/lib64/python3.7/site-packages/ovirtsdk4/service.py", line
>> 118, in _raise_error
>>     raise error
>> ovirtsdk4.NotFoundError: HTTP response code is 404.
>>
>> During handling of the above exception, another exception occurred:
>>
>> Traceback (most recent call last):
>>   File "./backup_vm.py", line 476, in <module>
>>     main()
>>   File "./backup_vm.py", line 173, in main
>>     args.command(args)
>>   File "./backup_vm.py", line 230, in cmd_start
>>     backup = start_backup(connection, args)
>>   File "./backup_vm.py", line 345, in start_backup
>>     raise RuntimeError("Backup {} failed".format(backup.id))
>> RuntimeError: Backup 0458bf7f-868c-4859-9fa7-767b3ec62b52 failed
>>
>
> This is correct, backup has failed.
>
> Please check the event log to understand the failure.
>
> Eyal, can you show how to get the error from the backup using the SDK, in
> a way
> that can be used by a program?
>
> e.g. a public error code that can be used to decide on the next step, and
> an error
> message that can be used for displaying error to users of the backup
> application.
>
> This should be added to the backup_vm.py example.
>
> Nir
>
> I added an example of how to fetch the event from the engine using the SDK.

You can find here -
https://gerrit.ovirt.org/#/c/110307/1/sdk/examples/backup_vm.py



-- 
Regards,
Eyal Shenitzky
_______________________________________________
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/devel@ovirt.org/message/QYQN4VPUHNCQHNL5HCDM4HQ3UHF5ZLN7/

Reply via email to