Fix juju status in OSM Charms

Change-Id: Iab33813f81c394f2444fb9407b4fab4b70929c90
Signed-off-by: David Garcia <david.garcia@canonical.com>
diff --git a/installers/charm/ro-k8s/reactive/ro.py b/installers/charm/ro-k8s/reactive/ro.py
index afd7f45..8ad6f98 100644
--- a/installers/charm/ro-k8s/reactive/ro.py
+++ b/installers/charm/ro-k8s/reactive/ro.py
@@ -34,6 +34,7 @@
 
 @when_not("mysql.available")
 @when_not("ro-k8s.configured")
+@when("leadership.is_leader")
 def waiting_for_mysql():
     layer.status.waiting("Waiting for mysql to be ready")
 
@@ -46,22 +47,29 @@
     try:
         mysql = endpoint_from_flag("mysql.available")
 
-        spec = make_pod_spec(
-            mysql.host(),
-            mysql.port(),
-            mysql.user(),
-            mysql.password(),
-            mysql.root_password(),
-        )
+        if mysql.host() is not None:
+            spec = make_pod_spec(
+                mysql.host(),
+                mysql.port(),
+                mysql.user(),
+                mysql.password(),
+                mysql.root_password(),
+            )
 
-        log("set pod spec:\n{}".format(spec))
-        pod_spec_set(spec)
-        layer.status.active("creating container")
-        set_flag("ro-k8s.configured")
+            log("set pod spec:\n{}".format(spec))
+            pod_spec_set(spec)
+            layer.status.active("creating container")
+            set_flag("ro-k8s.configured")
     except Exception as e:
         layer.status.blocked("k8s spec failed to deploy: {}".format(e))
 
 
+@when("mysql.available")
+@when_not("leadership.is_leader")
+def non_leaders_active():
+    layer.status.active("ready")
+
+
 @when("ro-k8s.configured")
 def set_ro_active():
     layer.status.active("ready")