X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Flcm-k8s%2Freactive%2Flcm.py;h=87b6b2c2a5459c8729948d7419742999e1f3e556;hb=aac52e0ac6d5364e48d2c25b00d6a1435b7e0d6a;hp=85ec9c5b0cd311b09108eeaafa8298c785c8fff2;hpb=47cd3b277310d5d6fef0067f220e849bebff35b4;p=osm%2Fdevops.git diff --git a/installers/charm/lcm-k8s/reactive/lcm.py b/installers/charm/lcm-k8s/reactive/lcm.py index 85ec9c5b..87b6b2c2 100644 --- a/installers/charm/lcm-k8s/reactive/lcm.py +++ b/installers/charm/lcm-k8s/reactive/lcm.py @@ -11,16 +11,22 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from charms.layer.caas_base import pod_spec_set -from charms.reactive import endpoint_from_flag -from charms.reactive import when, when_not, hook -from charms.reactive.flags import set_flag, clear_flag +import logging +import yaml + from charmhelpers.core.hookenv import ( log, metadata, config, ) from charms import layer +from charms.layer.caas_base import pod_spec_set +from charms.reactive import endpoint_from_flag +from charms.reactive import when, when_not, hook +from charms.reactive.flags import set_flag, clear_flag + + +logger = logging.getLogger(__name__) @hook("upgrade-charm") @@ -37,18 +43,21 @@ def restart(): @when_not("kafka.ready") @when_not("lcm-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("lcm-k8s.configured") +@when("leadership.is_leader") def waiting_for_mongo(): layer.status.waiting("Waiting for mongo to be ready") @when_not("ro.ready") @when_not("lcm-k8s.configured") +@when("leadership.is_leader") def waiting_for_ro(): layer.status.waiting("Waiting for ro to be ready") @@ -96,7 +105,14 @@ def configure(): layer.status.blocked("k8s spec failed to deploy: {}".format(e)) +@when("kafka.ready", "mongo.ready", "ro.ready") +@when_not("leadership.is_leader") +def non_leaders_active(): + layer.status.active("ready") + + @when("lcm-k8s.configured") +@when("leadership.is_leader") def set_lcm_active(): layer.status.active("ready") @@ -122,7 +138,6 @@ def make_pod_spec(ro_host, ro_port, kafka_host, kafka_port, mongo_uri): data = { "name": md.get("name"), - "docker_image": cfg.get("image"), "ro_host": ro_host, "ro_port": ro_port, "kafka_host": kafka_host, @@ -130,5 +145,8 @@ def make_pod_spec(ro_host, ro_port, kafka_host, kafka_port, mongo_uri): "mongo_uri": mongo_uri, } data.update(cfg) - - return pod_spec_template % data + logs = pod_spec_template % data + spec = yaml.safe_load(pod_spec_template % data) + if "vca_apiproxy" in cfg and cfg["vca_apiproxy"] != "": + spec["containers"][0]["config"]["OSMLCM_VCA_APIPROXY"] = cfg["vca_apiproxy"] + return spec