Closed Tiboris closed 2 years ago
I updated abbra/mrack
COPR with this patch and it breaks for me in a different place. I am using the provisioning config @Tiboris pointed me to.
$ /usr/bin/mrack -c ~/.mrack/mrack.conf up -p podman -m ~/todo/fedora-systemd/master-client.yaml
Podman: Initializing provider
Podman: Init duration 0:00:00.000007
Provisioning started
Podman: Created requirement(s): [
{
"domain": "testrealm.test",
"hostname": "master.testrealm.test",
"image": "fedora-35",
"name": "master.testrealm.test"
},
{
"domain": "testrealm.test",
"hostname": "client.testrealm.test",
"image": "fedora-35",
"name": "client.testrealm.test"
}
]
Podman: Preparing provider resources
Podman: Preparing network(s) {'mrack-testrealm-test'}
Podman: Pulling missing images {'fedora-35'}
Podman: Pulling image 'fedora-35'. This may take a while...
Podman: Pull of image 'fedora-35' failed
Podman: Pulling of missing images failed
Podman: Validating hosts definitions
Podman: Host definitions valid
Podman: Checking available resources
Podman: Resource availability: OK
Podman: Issuing provisioning of 2 host(s)
Podman: Creating container for host: master.testrealm.test
Podman: Creating container for host: client.testrealm.test
Podman: Provisioning issued
Podman: Waiting for all hosts to be active
An unexpected exception occurred while provisioning
'str' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 201, in handle
ret_code = func(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 225, in run
mrackcli(obj={}) # pylint: disable=no-value-for-parameter,unexpected-keyword-arg
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 "/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 106, in provision
raise results
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 298, in provision_hosts
success_hosts, error_hosts, _missing_reqs = await self.strategy_abort(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 353, in strategy_abort
return await self._provision_base(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 219, in _provision_base
host_id=response.args[SPECS].get("host_id"),
AttributeError: 'str' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/bin/mrack", line 23, in <module>
run.run()
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 214, in handle
raise exc
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 201, in handle
ret_code = func(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 225, in run
mrackcli(obj={}) # pylint: disable=no-value-for-parameter,unexpected-keyword-arg
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 "/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 106, in provision
raise results
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 298, in provision_hosts
success_hosts, error_hosts, _missing_reqs = await self.strategy_abort(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 353, in strategy_abort
return await self._provision_base(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 219, in _provision_base
host_id=response.args[SPECS].get("host_id"),
AttributeError: 'str' object has no attribute 'get'
I thought this might be because I have used an image reference that is undefined (provisioning-config.yaml only has fedora-33
, not something newer) but the same issue repeatable with a proper reference as well:
$ /usr/bin/mrack -c ~/.mrack/mrack.conf up -p podman -m ~/todo/fedora-systemd/master-client.yaml
Podman: Initializing provider
Podman: Init duration 0:00:00.000007
Provisioning started
Podman: Created requirement(s): [
{
"domain": "testrealm.test",
"hostname": "master.testrealm.test",
"image": "quay.io/neoave/snappeas:fedora-33",
"name": "master.testrealm.test"
},
{
"domain": "testrealm.test",
"hostname": "client.testrealm.test",
"image": "quay.io/neoave/snappeas:fedora-33",
"name": "client.testrealm.test"
}
]
Podman: Preparing provider resources
Podman: Preparing network(s) {'mrack-testrealm-test'}
Podman: Pulling missing images {'quay.io/neoave/snappeas:fedora-33'}
Podman: Pulling image 'quay.io/neoave/snappeas:fedora-33'. This may take a while...
Podman: Pull of image 'quay.io/neoave/snappeas:fedora-33' succeeded
Podman: All required images present
Podman: Validating hosts definitions
Podman: Host definitions valid
Podman: Checking available resources
Podman: Resource availability: OK
Podman: Issuing provisioning of 2 host(s)
Podman: Creating container for host: master.testrealm.test
Podman: Creating container for host: client.testrealm.test
Podman: Provisioning issued
Podman: Waiting for all hosts to be active
An unexpected exception occurred while provisioning
'str' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 201, in handle
ret_code = func(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 225, in run
mrackcli(obj={}) # pylint: disable=no-value-for-parameter,unexpected-keyword-arg
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 "/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 106, in provision
raise results
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 298, in provision_hosts
success_hosts, error_hosts, _missing_reqs = await self.strategy_abort(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 353, in strategy_abort
return await self._provision_base(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 219, in _provision_base
host_id=response.args[SPECS].get("host_id"),
AttributeError: 'str' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/bin/mrack", line 23, in <module>
run.run()
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 214, in handle
raise exc
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 201, in handle
ret_code = func(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/mrack/run.py", line 225, in run
mrackcli(obj={}) # pylint: disable=no-value-for-parameter,unexpected-keyword-arg
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 "/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 106, in provision
raise results
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 298, in provision_hosts
success_hosts, error_hosts, _missing_reqs = await self.strategy_abort(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 353, in strategy_abort
return await self._provision_base(reqs)
File "/usr/lib/python3.9/site-packages/mrack/providers/provider.py", line 219, in _provision_base
host_id=response.args[SPECS].get("host_id"),
AttributeError: 'str' object has no attribute 'get'
Hello @abbra thanks to your inputs i found several issues in the code i am trying to fix in above fix
commits.
Could you please try if this works for you?
I spoke with Alexander and it helped to solve some of his issues, thus merging.
Now there is a possibility to specify extra post provisioning commands with using 'extra_commands' section in podman config. podman: extra_commands:
Fixes: https://github.com/neoave/mrack/issues/142
Signed-off-by: Tibor Dudlák tdudlak@redhat.com