openstack-origin can be parsed incorrectly if given using include-file:// in the bundle

Bug #1891803 reported by Vladimir Grevtsev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Charm Helpers
New
Undecided
Unassigned

Bug Description

ubuntu@OrangeBox84:~/fce-demo$ cat global-bundle-openstack-series.txt
cloud:bionic-ussuri

ubuntu@OrangeBox84:~/fce-demo$ egrep 'global-bundle|openstack-origin' bundle_openstack_minimum_dvr.yaml
  openstack-origin: &openstack-origin include-file://global-bundle-openstack-series.txt
      source: *openstack-origin
      source: *openstack-origin
      source: *openstack-origin
      openstack-origin: *openstack-origin
      openstack-origin: *openstack-origin
      openstack-origin: *openstack-origin
      source: *openstack-origin
      openstack-origin: *openstack-origin
      openstack-origin: *openstack-origin
      openstack-origin: *openstack-origin
      openstack-origin: *openstack-origin
      source: *openstack-origin

The following config gives an install hook failure for every application:

unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install Traceback (most recent call last):
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install File "/var/lib/juju/agents/unit-no
va-compute-kvm-0/charm/hooks/charmhelpers/core/strutils.py", line 92, in __init__
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install self.index = self._list.index(it
em)
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install ValueError: tuple.index(x): x not in
 tuple
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install During handling of the above excepti
on, another exception occurred:
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install Traceback (most recent call last):
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install File "/var/lib/juju/agents/unit-no
va-compute-kvm-0/charm/hooks/install.real", line 146, in <module>
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install CONFIGS = register_configs()
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install File "/var/lib/juju/agents/unit-no
va-compute-kvm-0/charm/hooks/nova_compute_utils.py", line 434, in register_configs
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install for cfg, d in resource_map().ite
ms():
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install File "/var/lib/juju/agents/unit-no
va-compute-kvm-0/charm/hooks/nova_compute_utils.py", line 355, in resource_map
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install cmp_os_release = CompareOpenStac
kReleases(os_release('nova-common'))
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install File "/var/lib/juju/agents/unit-no
va-compute-kvm-0/charm/hooks/charmhelpers/core/strutils.py", line 95, in __init__
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install .format(item, self._list))
unit-nova-compute-kvm-0: 12:27:13 DEBUG unit.nova-compute-kvm/0.install KeyError: "Item 'ussuri\n' is not in
 list '('diablo', 'essex', 'folsom', 'grizzly', 'havana', 'icehouse', 'juno', 'kilo', 'liberty', 'mitaka', '
newton', 'ocata', 'pike', 'queens', 'rocky', 'stein', 'train', 'ussuri', 'victoria')'"
unit-nova-compute-kvm-0: 12:27:13 ERROR juju.worker.uniter.operation hook "install" failed: exit status 1

This is because an editor (Vim in my case) has added EOL literal automatically by default:

ubuntu@OrangeBox84:~/fce-demo$ hexdump -C global-bundle-openstack-series.txt
00000000 63 6c 6f 75 64 3a 62 69 6f 6e 69 63 2d 75 73 73 |cloud:bionic-uss|
00000010 75 72 69 0a |uri.|
00000014

Probably, we could handle this case by, for example, invoking a .strip() when doing such comparisons?

Revision history for this message
Vladimir Grevtsev (vlgrevtsev) wrote :

Cross-posting to https://github.com/juju/charm-helpers/issues/505 as not sure where it should have been originally reported :)

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.