charm-helpers icon indicating copy to clipboard operation
charm-helpers copied to clipboard

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

Open exceptorr opened this issue 5 years ago • 0 comments

ubuntu@OrangeBox84:~/fce-demo$ cat global-bundle-openstack-series.txt
cloud:bionic-ussuri
  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 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:

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?

exceptorr avatar Aug 16 '20 12:08 exceptorr