neoave / mrack

Multicloud use-case based multihost async provisioner for CIs and testing during development
Apache License 2.0
12 stars 14 forks source link

fix(Virt): Handle traceback when image is not accessible #155

Closed Tiboris closed 2 years ago

Tiboris commented 2 years ago

When image for Virt provider is not accessible we happen to raise an exception: TypeError: 'TestcloudImageError' object is not iterable This should fix above exception and also tune behavior when preparation of resources is failing.

Signed-off-by: Tibor Dudlák tdudlak@redhat.com

Tiboris commented 2 years ago

before:

    return f(get_current_context(), *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/mrack/run.py", line 62, in wrapper
    return loop.run_until_complete(func(*args, **kwargs))
  File "/usr/lib64/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/usr/lib/python3.9/site-packages/mrack/run.py", line 122, in up
    await up_action.provision()
  File "/usr/lib/python3.9/site-packages/mrack/actions/up.py", line 108, in provision
    success_hosts.extend(results)
TypeError: 'TestcloudImageError' object is not iterable

after

Virt: Preparing provider resources
Virt: Pulling image 'http://registry.user.test.com:8080/images/win-2019-x86_64.qcow2'
Virt: Pulling image 'fedora-25'
Virt: Image not found at the given URL: http://registry.user.test.com:8080/images/win-2019-x86_64.qcow2
Virt: invalid uri: only http, https and file uris are supported: fedora-25
Virt: Pulling of images failed
Virt: Failed to prepare provisioning
Provider(s) Virt failed to provision resources