neoave / mrack

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

mrack fails with traceback on OpenStack provisioning if credentials are not sourced #74

Closed pvoborni closed 3 years ago

pvoborni commented 3 years ago

Steps to reproduce:

  1. prepare mrack env (e.g. conf file pointing to prov. config, metadatam, db)
  2. omit e.g. . config/opestack-credentials.sh
  3. mrack up

Current behavior:

It fails with traceback.

Expected behavior:

Mrack prints nice error message saying that it doesn't have credentials for provisioning with OpenStack and hinting that it is done via sourcing.

Additional info

Traceback (most recent call last):
  File "/home/pvoborni/.local/bin/mrack", line 21, in <module>
    run.run()
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/run.py", line 257, in handle
    raise exc
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/run.py", line 244, in handle
    rc = func(*args, **kwargs)
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/run.py", line 267, in run
    mrackcli(obj={})
  File "/usr/lib/python3.9/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/run.py", line 60, in wrapper
    return loop.run_until_complete(f(*args, **kwargs))
  File "/usr/lib64/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/run.py", line 159, in up
    await up_action.init(ctx.obj[PROV_CONFIG], ctx.obj[METADATA], provider, ctx.obj[DB])
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/actions/up.py", line 58, in init
    transformer = await self._get_transformer(provider_name)
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/actions/up.py", line 67, in _get_transformer
    await transformer.init(self._config, self._metadata)
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/transformers/transformer.py", line 44, in init
    await self.init_provider()
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/transformers/openstack.py", line 35, in init_provider
    await self._provider.init(image_names=self.config["images"].values())
  File "/home/pvoborni/.local/lib/python3.9/site-packages/mrack/providers/openstack.py", line 89, in init
    self.session = AuthPassword()
  File "/home/pvoborni/.local/lib/python3.9/site-packages/asyncopenstackclient/auth.py", line 66, in __init__
    self._auth_endpoint = self.os_auth_url + '/auth/tokens'
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Tiboris commented 3 years ago

Solved here https://github.com/neoave/mrack/pull/85, closing