openstack integrator edge v25 errors on upgrade

Bug #1841768 reported by Ed Stewart
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Openstack Integrator Charm
Fix Released
High
Cory Johns

Bug Description

We are testing kubernetes edge charms as part of the external cloud provider work. Specifically we are testing the autodetection of octavia which is in openstack-integrator charm version 25 (and perhaps earlier).

We upgraded a openstack-integrator charm from version 22 to version 25, we hit two errors.

1. write_text needs converting to bytes:

unit-openstack-integrator-0: 11:15:38 ERROR unit.openstack-integrator/0.juju-log Hook error:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/__init__.py", line 73, in main
    bus.dispatch(restricted=restricted_mode)
  File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 390, in dispatch
    _invoke(other_handlers)
  File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 359, in _invoke
    handler.invoke()
  File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 181, in invoke
    self._action(*args)
  File "/var/lib/juju/agents/unit-openstack-integrator-0/charm/reactive/openstack.py", line 73, in handle_requests
    has_octavia = layer.openstack.detect_octavia()
  File "lib/charms/layer/openstack.py", line 107, in detect_octavia
    catalog = {s['Name'] for s in _openstack('catalog', 'list')}
  File "lib/charms/layer/openstack.py", line 221, in _openstack
    output = _run_with_creds('openstack', *args, '--format=yaml')
  File "lib/charms/layer/openstack.py", line 208, in _run_with_creds
    CA_CERT_FILE.write_text(ca_cert + '\n')
TypeError: can't concat str to bytes

This can be fixed with changing this line to: CA_CERT_FILE.write_text(ca_cert.decode('utf-8') + '\n')

2. After this is fixed, the octavia autodetection still fails with:

unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm b'openstackclients rocky from James Page refreshed\n'
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm Traceback (most recent call last):
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/charm/hooks/upgrade-charm", line 22, in <module>
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm main()
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/__init__.py", line 73, in main
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm bus.dispatch(restricted=restricted_mode)
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 390, in dispatch
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm _invoke(other_handlers)
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 359, in _invoke
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm handler.invoke()
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 181, in invoke
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm self._action(*args)
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/var/lib/juju/agents/unit-openstack-integrator-0/charm/reactive/openstack.py", line 73, in handle_requests
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm has_octavia = layer.openstack.detect_octavia()
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "lib/charms/layer/openstack.py", line 107, in detect_octavia
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm catalog = {s['Name'] for s in _openstack('catalog', 'list')}
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "lib/charms/layer/openstack.py", line 221, in _openstack
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm output = _run_with_creds('openstack', *args, '--format=yaml')
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "lib/charms/layer/openstack.py", line 216, in _run_with_creds
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm stderr=subprocess.PIPE)
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm File "/usr/lib/python3.6/subprocess.py", line 438, in run
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm output=stdout, stderr=stderr)
unit-openstack-integrator-0: 11:50:58 DEBUG unit.openstack-integrator/0.upgrade-charm subprocess.CalledProcessError: Command '('openstack', 'catalog', 'list', '--format=yaml')' returned non-zero exit status 1.
unit-openstack-integrator-0: 11:50:58 ERROR juju.worker.uniter.operation hook "upgrade-charm" failed: exit status 1

openstack integrator charm version: 25
using configuration for credentials (invidiual fields set rather than the credentials field or juju trust)

Tags: atos
Changed in charm-openstack-integrator:
status: New → Triaged
assignee: nobody → Cory Johns (johnsca)
importance: Undecided → High
milestone: none → 1.15+ck2
Revision history for this message
Cory Johns (johnsca) wrote :

Fix for TypeError added to https://github.com/juju-solutions/charm-openstack-integrator/pull/20 which also fixes the CalledProcessError. Working on testing.

Changed in charm-openstack-integrator:
status: Triaged → In Progress
Changed in charm-openstack-integrator:
status: In Progress → Fix Committed
Revision history for this message
Cory Johns (johnsca) wrote :

Released in cs:~containers/openstack-integrator-26 (now in stable)

Changed in charm-openstack-integrator:
status: Fix Committed → Fix Released
Changed in charm-openstack-integrator:
milestone: 1.15+ck2 → none
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.