When get_installed_channel function is called for a snap that is installed via a snap resource,
the following error will happen (example with Graylog charm).
This is easily reproducible with the following bundle.
https://pastebin.ubuntu.com/p/Ny3fsS3Mfg/
2021-07-28 07:19:20 INFO unit.graylog/0.juju-log server.go:314 Get channel for snap graylog
2021-07-28 07:20:00 ERROR unit.graylog/0.juju-log server.go:314 Hook error:
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-graylog-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-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 390, in dispatch
_invoke(other_handlers)
File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
handler.invoke()
File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
self._action(*args)
File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 129, in refresh_graylog
report_status()
File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 333, in report_status
channel_change_status = get_channel_change_status()
File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/graylog/snap_change.py", line 46, in get_channel_change_status
cur_channel = snap.get_installed_channel(SNAP_NAME)
File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/snap.py", line 303, in get_installed_channel
return subprocess.check_output(cmd).decode("utf-8", errors="replace").partition("tracking:")[-1].split()[0]
IndexError: list index out of range
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 Traceback (most recent call last):
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/hooks/install", line 22, in <module>
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 main()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/__init__.py", line 74, in main
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 bus.dispatch(restricted=restricted_mode)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 390, in dispatch
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 _invoke(other_handlers)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 handler.invoke()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 self._action(*args)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 129, in refresh_graylog
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 report_status()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 333, in report_status
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 channel_change_status = get_channel_change_status()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/graylog/snap_change.py", line 46, in get_channel_change_status
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 cur_channel = snap.get_installed_channel(SNAP_NAME)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/snap.py", line 303, in get_installed_channel
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 return subprocess.check_output(cmd).decode("utf-8", errors="replace").partition("tracking:")[-1].split()[0]
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 IndexError: list index out of range
2021-07-28 07:20:00 ERROR juju.worker.uniter.operation runhook.go:139 hook "install" (via explicit, bespoke hook script) failed: exit status 1
https:/ /git.launchpad. net/layer- snap/commit/ ?id=d935a04