docker-registry hook fail nrpe-external-master-relation-joined

Bug #1994437 reported by Andy Wu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Docker Registry Charm
New
Undecided
Unassigned

Bug Description

when adding relation between docker-registry and nrpe charm, docker-registry failed with error
hook failed: "nrpe-external-master-relation-joined"

The debug log shows

Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-docker-registry-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-docker-registry-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 390, in dispatch
    _invoke(other_handlers)
  File "/var/lib/juju/agents/unit-docker-registry-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
    handler.invoke()
  File "/var/lib/juju/agents/unit-docker-registry-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
    self._action(*args)
  File "/var/lib/juju/agents/unit-docker-registry-0/charm/reactive/docker_registry.py", line 376, in setup_nagios
    nagios.add_check(['/usr/lib/nagios/plugins/check_http',
  File "/var/lib/juju/agents/unit-docker-registry-0/charm/hooks/relations/nrpe-external-master/provides.py", line 21, in add_check
    unit = unit.replace('/', '-')
AttributeError: 'NoneType' object has no attribute 'replace'

In docker-registry code line 376 setup_nagios function has following content

    check_args = {}
    if charm_config.get('nagios_context'):
        check_args['context'] = charm_config['nagios_context']
    if charm_config.get('nagios_servicegroups'):
        check_args['servicegroups'] = charm_config['nagios_servicegroups']
    nagios.add_check(['/usr/lib/nagios/plugins/check_http',
                      '-I', '127.0.0.1', '-p', str(charm_config.get('registry-port')),
                      '-e', " 200 OK", '-u', '/'],
                     name="check_http",
                     description="Verify docker-registry is responding",
                     **check_args)

The check_args dict doesn't contain the unit argument that nagios.add_check is expecting , cause the hook fail

    # line 21 in var/lib/juju/agents/unit-docker-registry-0/charm/hooks/relations/nrpe-external-master/provides.py

    def add_check(self, args, name=None, description=None, context=None,
                  servicegroups=None, unit=None):
        unit = unit.replace('/', '-')

Charm version:
docker-registry 1.24/stable , rev 24
nrpe : latest/stable rev 96

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.