Code review comment for ~pjdc/prometheus-mongodb-exporter-charm/+git/prometheus-mongodb-exporter-charm:no-needless-blocked

Revision history for this message
Stuart Bishop (stub) wrote :

The maybe_block_on_mongodb_uri() handler may end up running before the is_mongodb_uri_usable() handler, causing a spurious blocked state.

Instead, I'd just do:

@when('config.default.mongodb_uri') # default is empty string
def block_on_no_uri():
    blocked('mongodb_uri must be set')

@when('config.changed.mongodb_uri')
def local_or_remote():
    l = mongodb_uri_is_juju_db()
    reactive.toggle_flag('prometheus-mongodb-exporter.monitor-juju-db', l)
    reactive.toggle_flag('prometheus-mongodb-exporter.monitor-remote-db', not l)

@when('prometheus-mongodb-exporter.monitor-juju-db')
@when_not('leadership.is_leader', 'leadership.set.mongodb_uri')
def wait_on_leader():
    waiting('Waiting for leader to provide mongodb credentials')

@when('prometheus-mongodb-exporter.monitor-juju-db')
@when('leadership.is_leader')
@when_not('leadership.set.mongodb_uri')
def create_juju_db_user():
    [ ... existing code ... ]

review: Needs Fixing

« Back to merge proposal