tengu-team / interface-arangodb

GNU Affero General Public License v3.0
0 stars 1 forks source link

Requires relation failes when calling relation_data #1

Closed xannz closed 6 years ago

xannz commented 6 years ago

Calling relation_data() in requires.py produces the following error

2018-04-23 06:48:44 DEBUG update-status Traceback (most recent call last):
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/charm/hooks/update-status", line 19, in <module>
2018-04-23 06:48:44 DEBUG update-status     main()
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/.venv/lib/python3.5/site-packages/charms/reactive/__init__.py", line 72, in main
2018-04-23 06:48:44 DEBUG update-status     bus.dispatch(restricted=restricted_mode)
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 375, in dispatch
2018-04-23 06:48:44 DEBUG update-status     _invoke(other_handlers)
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 351, in _invoke
2018-04-23 06:48:44 DEBUG update-status     handler.invoke()
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/.venv/lib/python3.5/site-packages/charms/reactive/bus.py", line 173, in invoke
2018-04-23 06:48:44 DEBUG update-status     self._action(*args)
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/charm/reactive/arango-upstream.py", line 11, in configure
2018-04-23 06:48:44 DEBUG update-status     context = db.relation_data()
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/charm/hooks/relations/arangodb/requires.py", line 52, in relation_data
2018-04-23 06:48:44 DEBUG update-status     conv = self.conversation()
2018-04-23 06:48:44 DEBUG update-status   File "/var/lib/juju/agents/unit-arango-upstream-13/.venv/lib/python3.5/site-packages/charms/reactive/relations.py", line 430, in conversation
2018-04-23 06:48:44 DEBUG update-status     raise ValueError('Unable to determine default scope: no current hook or global scope')
2018-04-23 06:48:44 DEBUG update-status ValueError: Unable to determine default scope: no current hook or global scope
2018-04-23 06:48:44 ERROR juju.worker.uniter.operation runhook.go:113 hook "update-status" failed: exit status 1

This is because of https://github.com/tengu-team/interface-arangodb/blob/master/requires.py#L52 where self.conversation is called instead of self.conversations. This should return all Arangodb units.

sebastienpattyn93 commented 6 years ago

should the method return a list then with the information of every unit? something like:

data = []
for conv in self.conversations()
   data.append({'host': conv.get_remote('host'),
                'port' : conv.get_remote('port'),
                'username': conv.get_remote('username'),
                'password' : conv.get_remote('password')})
return(data)
xannz commented 6 years ago

Yes, that is a good solution.

sebastienpattyn93 commented 6 years ago

commit https://github.com/tengu-team/interface-arangodb/commit/67a176ecd273dd932242d62c224cd2aa6b9eb734 should now fix this issue.