Comment 18 for bug 1924780

Revision history for this message
Alvaro Uria (aluria) wrote : Re: easyrsa install hook fails on public address not found

Today, using cs:~containers/easyrsa (which uses cs:~containers/easyrsa-408), I hit this bug:

unit-easyrsa-0: 09:32:41 INFO unit.easyrsa/0.juju-log Reactive main running for hook install
unit-easyrsa-0: 09:32:41 INFO unit.easyrsa/0.juju-log Initializing Leadership Layer (is leader)
unit-easyrsa-0: 09:32:41 INFO unit.easyrsa/0.juju-log Invoking reactive handler: reactive/easyrsa.py:32:install
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Invoking reactive handler: hooks/relations/tls-certificates/provides.py:63:broken:client
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Invoking reactive handler: reactive/easyrsa.py:91:set_easyrsa_version
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Invoking reactive handler: reactive/easyrsa.py:98:configure_easyrsa
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Configuring OpenSSL to copy extensions.
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Configuring X509 server extensions with clientAuth.
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Updating /var/lib/juju/agents/unit-easyrsa-0/charm/EasyRSA/x509-types/server
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Invoking reactive handler: reactive/easyrsa.py:156:create_certificate_authority
unit-easyrsa-0: 09:32:42 INFO unit.easyrsa/0.juju-log Creating new CA
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install ERROR public address not found
unit-easyrsa-0: 09:32:42 ERROR unit.easyrsa/0.juju-log Hook error:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/__init__.py", line 74, in main
    bus.dispatch(restricted=restricted_mode)
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 390, in dispatch
    _invoke(other_handlers)
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 359, in _invoke
    handler.invoke()
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 181, in invoke
    self._action(*args)
  File "/var/lib/juju/agents/unit-easyrsa-0/charm/reactive/easyrsa.py", line 201, in create_certificate_authority
    cn = hookenv.unit_public_ip()
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 877, in unit_public_ip
    return unit_get('public-address')
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 93, in wrapper
    res = func(*args, **kwargs)
  File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 870, in unit_get
    return json.loads(subprocess.check_output(_args).decode('UTF-8'))
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['unit-get', '--format=json', 'public-address']' returned non-zero exit status 1.

unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install Traceback (most recent call last):
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/charm/hooks/install", line 22, in <module>
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install main()
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/__init__.py", line 74, in main
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install bus.dispatch(restricted=restricted_mode)
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 390, in dispatch
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install _invoke(other_handlers)
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 359, in _invoke
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install handler.invoke()
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charms/reactive/bus.py", line 181, in invoke
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install self._action(*args)
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/charm/reactive/easyrsa.py", line 201, in create_certificate_authority
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install cn = hookenv.unit_public_ip()
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 877, in unit_public_ip
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install return unit_get('public-address')
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 93, in wrapper
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install res = func(*args, **kwargs)
unit-easyrsa-0: 09:32:42 WARNING unit.easyrsa/0.install File "/var/lib/juju/agents/unit-easyrsa-0/.venv/lib/python3.6/site-packages/charmhelpers/core/hookenv.py", line 870, in unit_get

The above is part of func tests, which failed. I ran the same command manually, after a while:
$ juju run -m zaza-baa4c64d43db -u easyrsa/0 -- unit-get --format=json public-address
"10.5.2.87"

I also ran "juju resolve" which also worked fine (but too late for the func tests).