Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression in libjuju 3 ; API changes in (at least) running commands on a unit #545

Closed
ChrisMacNaughton opened this issue Aug 10, 2022 · 0 comments · Fixed by #608
Closed

Comments

@ChrisMacNaughton
Copy link
Collaborator

2022-08-10 21:04:26 [INFO] Image architecture set to amd64 2022-08-10 21:04:26 [WARNING] unknown facade EnvironUpgrader 2022-08-10 21:04:26 [WARNING] unexpected facade EnvironUpgrader found, unable to decipher version to use 2022-08-10 21:04:30 [INFO] async -> sync. cleaning up pending tasks: len: 7 Traceback (most recent call last): File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/bin/functest-configure", line 8, in sys.exit(main()) File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/charm_lifecycle/configure.py", line 97, in main
configure(model_name, funcs)
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/charm_lifecycle/configure.py", line 58, in configure
run_configure_list(functions)
File "/usr/lib/python3.6/contextlib.py", line 52, in inner
return func(*args, **kwds)
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/charm_lifecycle/configure.py", line 44, in run_configure_list
utils.get_class(func)()
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/openstack/charm_tests/glance/setup.py", line 167, in add_lts_image
properties=properties)
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/openstack/charm_tests/glance/setup.py", line 83, in add_image
glance_client = glance_client or _get_default_glance_client()
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/openstack/charm_tests/glance/setup.py", line 41, in _get_default_glance_client
keystone_session = openstack_utils.get_overcloud_keystone_session()
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/openstack/utilities/openstack.py", line 535, in get_overcloud_keystone_session
get_overcloud_auth(model_name=model_name),
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/openstack/utilities/openstack.py", line 2129, in get_overcloud_auth
model_name=model_name)
File "/home/ubuntu/charms/charm-ceph-fs/.tox/func-target/lib/python3.6/site-packages/zaza/utilities/juju.py", line 442, in leader_get
raise model.CommandRunFailed(cmd, result)
zaza.model.CommandRunFailed: Command leader-get --format=yaml admin_passwd failed with code None, output None and error None

jujubot added a commit to juju/python-libjuju that referenced this issue Aug 11, 2022
#706

#### Description

This change attempts to fix the `Unit.run_actions` issue where the resulting object is different based on the used Facade (which is based on whether the `2.9` or `3.0` juju client is being used). With this change both ways will return the same type of object as a result of running the action on the unit. It's also a continuation/possible-regression-fix of #698.

Also adding the `EnvironUpgrader` facade that's introduced in `Juju 3.0`, so we shouldn't get the "unexpected facade" warning anymore.

Also updating the clients with the latest schema from juju 3.0. In particuılar the Application facade version is bumped up `13` -> `14`.

With this #705 should be fixed too. 

#### QA Steps

QA steps for this is sort of a simulation of one of the real world libjuju uses in a function on [mongodb-operator](https://github.com/canonical/mongodb-operator/blob/8796be02e10b84f990da0426ad1cff5922dc506a/tests/integration/helpers.py#L39).

Get a controller on a k8s cloud (I did it on `microk8s`). The following then should work fine.
Full QA should be done with 2 separate controllers (at least that's what I did): one bootstrapped with `juju 2.9` and another with `juju 3.0`.

```python
async def _get_password():
 model = Model()
 await model.connect()
 await model.deploy('zinc-k8s')
 await model.wait_for_idle(status="active")

 unit = model.applications['zinc-k8s'].units[0]
 action = await unit.run_action("get-admin-password")
 action = await action.wait()
 print(action.results["admin-password"])
 await model.disconnect()
```

#### Notes & Discussion

This is also related (and most likely a fix) to:
* openstack-charmers/zaza#545
* openstack-charmers/zaza#546
* https://github.com/canonical/mongodb-operator/runs/7761747331?check_suite_focus=true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant