def update_status()

in bigtop-packages/src/charm/hadoop/layer-hadoop-slave/reactive/hadoop_status.py [0:0]


def update_status():
    hdfs_rel = is_state('namenode.joined')
    yarn_rel = is_state('resourcemanager.joined')
    hdfs_ready = is_state('namenode.ready')
    yarn_ready = is_state('resourcemanager.ready')

    if not (hdfs_rel or yarn_rel):
        status_set('blocked',
                   'missing required namenode and/or resourcemanager relation')
    elif hdfs_rel and not hdfs_ready:
        status_set('waiting', 'waiting for hdfs to become ready')
    elif yarn_rel and not yarn_ready:
        status_set('waiting', 'waiting for yarn to become ready')
    else:
        ready = []
        if hdfs_ready:
            ready.append('datanode')
        if yarn_ready:
            ready.append('nodemanager')
        status_set('active', 'ready ({})'.format(' & '.join(ready)))