Skip to content

Expected relations_ to be a Sequence, received: <class 'dict'> #413

@lourot

Description

@lourot

With the latest release of libjuju (2.8.0) we (OpenStack) are hitting this error in all our Zaza tests:

2020-05-13 09:24:57 [INFO] ======================================================================
2020-05-13 09:24:57 [INFO] ERROR: setUpClass (zaza.openstack.charm_tests.barbican_vault.tests.BarbicanVaultUnsealVault)
2020-05-13 09:24:57 [INFO] ----------------------------------------------------------------------
2020-05-13 09:24:57 [INFO] Traceback (most recent call last):
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/openstack/charm_tests/barbican_vault/tests.py", line 27, in setUpClass
2020-05-13 09:24:57 [INFO]     super(BarbicanVaultUnsealVault, cls).setUpClass()
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/openstack/charm_tests/vault/tests.py", line 98, in setUpClass
2020-05-13 09:24:57 [INFO]     super(UnsealVault, cls).setUpClass()
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/openstack/charm_tests/vault/tests.py", line 44, in setUpClass
2020-05-13 09:24:57 [INFO]     "vault", model_name=cls.model_name)
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/__init__.py", line 48, in _wrapper
2020-05-13 09:24:57 [INFO]     return run(_run_it())
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/__init__.py", line 36, in run
2020-05-13 09:24:57 [INFO]     return task.result()
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/__init__.py", line 47, in _run_it
2020-05-13 09:24:57 [INFO]     return await f(*args, **kwargs)
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/zaza/model.py", line 482, in async_get_lead_unit_name
2020-05-13 09:24:57 [INFO]     is_leader = await unit.is_leader_from_status()
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/unit.py", line 264, in is_leader_from_status
2020-05-13 09:24:57 [INFO]     status = await client_facade.FullStatus(patterns=None)
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/facade.py", line 504, in wrapper
2020-05-13 09:24:57 [INFO]     result = cls.from_json(reply['response'])
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/facade.py", line 639, in from_json
2020-05-13 09:24:57 [INFO]     return cls(**d)
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/_definitions.py", line 9101, in __init__
2020-05-13 09:24:57 [INFO]     applications_ = {k: ApplicationStatus.from_json(v) for k, v in (applications or dict()).items()}
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/_definitions.py", line 9101, in <dictcomp>
2020-05-13 09:24:57 [INFO]     applications_ = {k: ApplicationStatus.from_json(v) for k, v in (applications or dict()).items()}
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/facade.py", line 639, in from_json
2020-05-13 09:24:57 [INFO]     return cls(**d)
2020-05-13 09:24:57 [INFO]   File "/home/ubuntu/barbican-vault/charm-barbican-vault/src/.tox/func-smoke/lib/python3.6/site-packages/juju/client/_definitions.py", line 2716, in __init__
2020-05-13 09:24:57 [INFO]     raise Exception("Expected relations_ to be a Sequence, received: {}".format(type(relations_)))
2020-05-13 09:24:57 [INFO] Exception: Expected relations_ to be a Sequence, received: <class 'dict'>
2020-05-13 09:24:57 [INFO] ----------------------------------------------------------------------
2020-05-13 09:24:57 [INFO] Ran 0 tests in 0.316s
2020-05-13 09:24:57 [INFO] FAILED
2020-05-13 09:24:57 [INFO]  (errors=1)

This is hitting us both with juju 2.7.6 and 2.8-rc1. Going back to libjuju 2.7.1 seems to solve the issue.

We suspect #412 broke it.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions