leader_get import error in .reactive/kubernetes_master_worker_base.py

Bug #1831550 reported by Thomas Cuthbert
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Kubernetes Control Plane Charm
Fix Released
Critical
George Kraft
Kubernetes Worker Charm
Fix Released
Critical
George Kraft

Bug Description

The kubernetes master and worker charm both have an import error bug that impacts charm upgrades.
# contents of reactive/kubernetes_master_worker_base.py

from charms import leadership
[...]

@when_any('kubernetes-master.snaps.installed',
          'kubernetes-worker.snaps.installed')
@when('snap.refresh.set')
@when('leadership.is_leader')
def process_snapd_timer():
    ''' Set the snapd refresh timer on the leader so all cluster members
    (present and future) will refresh near the same time. '''
    # Get the current snapd refresh timer; we know layer-snap has set this
    # when the 'snap.refresh.set' flag is present.
    timer = snap.get(
        snapname='core', key='refresh.timer').decode('utf-8').strip()
    if not timer:
        # The core snap timer is empty. This likely means a subordinate timer
        # reset ours. Try to set it back to a previously leader-set value,
        # falling back to config if needed. Luckily, this should only happen
        # during subordinate install, so this should remain stable afterward.
        timer = leader_get('snapd_refresh') or hookenv.config('snapd_refresh')
        snap.set_refresh_timer(timer)

        # Ensure we have the timer known by snapd (it may differ from config).
        timer = snap.get(
            snapname='core', key='refresh.timer').decode('utf-8').strip()

    # The first time through, data_changed will be true. Subsequent calls
    # should only update leader data if something changed.
    if data_changed('snapd_refresh', timer):
        hookenv.log('setting leader snapd_refresh timer to: {}'.format(timer))
        leadership.leader_set({'snapd_refresh': timer})

# Juju logs
$ grep leader_get /var/log/juju/unit-kubernetes-worker-24.log
    timer = leader_get('snapd_refresh') or hookenv.config('snapd_refresh')
NameError: name 'leader_get' is not defined
2019-06-03 13:55:47 DEBUG upgrade-charm timer = leader_get('snapd_refresh') or hookenv.config('snapd_refresh')
2019-06-03 13:55:47 DEBUG upgrade-charm NameError: name 'leader_get' is not defined
    timer = leader_get('snapd_refresh') or hookenv.config('snapd_refresh')

description: updated
description: updated
Revision history for this message
James Troup (elmo) wrote :

Subscribing Field Critical

Revision history for this message
Konstantinos Tsakalozos (kos.tsakalozos) wrote :
George Kraft (cynerva)
Changed in charm-kubernetes-master:
assignee: nobody → George Kraft (cynerva)
Changed in charm-kubernetes-worker:
assignee: nobody → George Kraft (cynerva)
Changed in charm-kubernetes-master:
importance: Undecided → Critical
Changed in charm-kubernetes-worker:
importance: Undecided → Critical
Changed in charm-kubernetes-master:
status: New → In Progress
Changed in charm-kubernetes-worker:
status: New → In Progress
Revision history for this message
George Kraft (cynerva) wrote :
Changed in charm-kubernetes-master:
status: In Progress → Fix Committed
Changed in charm-kubernetes-worker:
status: In Progress → Fix Committed
Revision history for this message
George Kraft (cynerva) wrote :

Fix is available in candidate channels:
cs:~containers/kubernetes-master-684
cs:~containers/kubernetes-worker-541

Revision history for this message
George Kraft (cynerva) wrote :

Fix has been released to stable with these charm revisions:
cs:~containers/kubernetes-master-684
cs:~containers/kubernetes-worker-541

Changed in charm-kubernetes-master:
status: Fix Committed → Fix Released
Changed in charm-kubernetes-worker:
status: Fix Committed → Fix Released
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.