projects
/
osm
/
devops.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Refactoring NBI Charm to use Operator Framework
[osm/devops.git]
/
installers
/
charm
/
ro-k8s
/
reactive
/
ro.py
diff --git
a/installers/charm/ro-k8s/reactive/ro.py
b/installers/charm/ro-k8s/reactive/ro.py
index
afd7f45
..
8f91b4b
100644
(file)
--- a/
installers/charm/ro-k8s/reactive/ro.py
+++ b/
installers/charm/ro-k8s/reactive/ro.py
@@
-34,6
+34,7
@@
def restart():
@when_not("mysql.available")
@when_not("ro-k8s.configured")
@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")
def waiting_for_mysql():
layer.status.waiting("Waiting for mysql to be ready")
@@
-46,22
+47,29
@@
def configure():
try:
mysql = endpoint_from_flag("mysql.available")
try:
mysql = endpoint_from_flag("mysql.available")
- 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")
+ 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")
except Exception as e:
layer.status.blocked("k8s spec failed to deploy: {}".format(e))
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")
@when("ro-k8s.configured")
def set_ro_active():
layer.status.active("ready")
@@
-106,7
+114,6
@@
def make_pod_spec(
data = {
"name": md.get("name"),
data = {
"name": md.get("name"),
- "docker_image": cfg.get("image"),
"mysql_host": mysql_host,
"mysql_port": mysql_port,
"mysql_user": mysql_user,
"mysql_host": mysql_host,
"mysql_port": mysql_port,
"mysql_user": mysql_user,