relation-get permission denied

Bug #1936284 reported by Linda Guo
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Grafana Charm
Fix Released
Undecided
Linda Guo

Bug Description

when grafana has multiple dashboards relations, relation-get would return 'permission denied' if it's running against the wrong relation ID.

$ juju run -u grafana/0 "relation-ids dashboards"
dashboards:197
dashboards:198
dashboards:206

$ juju run -u grafana/0 'relation-get --format=json -r dashboards:197 dashboard rabbitmq-server/0'
ERROR permission denied

----------------------------------

2021-07-15 01:02:58 INFO juju-log dashboards:201: Invoking reactive handler: reactive/grafana.py:1187:dashboards_joined
2021-07-15 01:02:58 INFO juju-log dashboards:201: hook dashboards-relation-joined triggered
2021-07-15 01:02:58 WARNING dashboards-relation-joined ERROR permission denied
2021-07-15 01:02:58 ERROR juju-log dashboards:201: Hook error:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charms/reactive/__init__.py", line 74, in main
    bus.dispatch(restricted=restricted_mode)
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 379, in dispatch
    _invoke(hook_handlers)
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
    handler.invoke()
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
    self._action(*args)
  File "/var/lib/juju/agents/unit-grafana-0/charm/reactive/grafana.py", line 1198, in dashboards_joined
    dashboard_str = hookenv.relation_get(
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charmhelpers/core/hookenv.py", line 93, in wrapper
    res = func(*args, **kwargs)
  File "/var/lib/juju/agents/unit-grafana-0/.venv/lib/python3.8/site-packages/charmhelpers/core/hookenv.py", line 486, in relation_get
    return json.loads(subprocess.check_output(_args).decode('UTF-8'))
  File "/usr/lib/python3.8/subprocess.py", line 411, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.8/subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['relation-get', '--format=json', '-r', 'dashboards:197', 'dashboard', 'remote-6190afcfdf1541ae89ca692b0e1b57ba/4']' returned non-zero exit status 1.

Related branches

Revision history for this message
Linda Guo (lihuiguo) wrote :

In dashboards_joined, it should get relation ID from hookenv.relation_id instead of loop through all relations.

description: updated
description: updated
Changed in charm-grafana:
status: New → In Progress
assignee: nobody → Linda Guo (lihuiguo)
Linda Guo (lihuiguo)
summary: - relation-get ERROR permission denied
+ relation-get permission denied
description: updated
Linda Guo (lihuiguo)
Changed in charm-grafana:
status: In Progress → Fix Committed
Celia Wang (ziyiwang)
Changed in charm-grafana:
status: Fix Committed → Fix Released
milestone: none → 21.07
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.