Prepare installer and pods for Rel TWELVE
[osm/devops.git] / installers / charm / nbi-k8s / reactive / nbi.py
index edcdd4c..50187ad 100644 (file)
@@ -46,23 +46,38 @@ def clear_keystone_ready():
 
 @when_not("kafka.ready")
 @when_not("nbi-k8s.configured")
+@when("leadership.is_leader")
 def waiting_for_kafka():
     layer.status.waiting("Waiting for kafka to be ready")
 
 
 @when_not("mongo.ready")
 @when_not("nbi-k8s.configured")
+@when("leadership.is_leader")
 def waiting_for_mongo():
     layer.status.waiting("Waiting for mongo to be ready")
 
 
 @when_not("endpoint.prometheus.available")
 @when_not("nbi-k8s.configured")
+@when("leadership.is_leader")
 def waiting_for_prometheus():
     layer.status.waiting("Waiting for prometheus to be ready")
 
 
 @when_not("keystone.ready")
+@when("leadership.is_leader")
+@when_not("nbi-k8s.configured")
+def waiting_for_keystone():
+    auth_backend = config().get("auth-backend")
+    if auth_backend == "keystone":
+        layer.status.waiting("Waiting for Keystone to be ready")
+    else:
+        set_flag("keystone.ready")
+
+
+@when_not("keystone.ready")
+@when("leadership.is_leader")
 @when_not("nbi-k8s.configured")
 def waiting_for_keystone():
     auth_backend = config().get("auth-backend")
@@ -162,6 +177,12 @@ def configure():
         log("Error: {}".format(traceback.format_exc()))
 
 
+@when("kafka.ready", "mongo.ready", "endpoint.prometheus.available")
+@when_not("leadership.is_leader")
+def non_leaders_active():
+    layer.status.active("ready")
+
+
 @when("nbi-k8s.configured")
 def set_nbi_active():
     layer.status.active("ready")
@@ -201,7 +222,6 @@ def make_pod_spec(kafka_host, kafka_port, mongo_uri, prometheus_uri):
     prometheus_host, prometheus_port = parse_hostport(prometheus_uri)
     data = {
         "name": md.get("name"),
-        "docker_image": cfg.get("image"),
         "mongo_uri": mongo_uri,
         "kafka_host": "{}".format(kafka_host),
         "kafka_port": "{}".format(kafka_port),