def config_changed(): utils.update_nrpe_config() # Charm doesn't support changing of some parameters. if config.changed("dpdk"): raise Exception("Configuration parameter dpdk couldn't be changed") if config.changed("l3mh-cidr"): raise Exception( "Configuration parameter l3mh-cidr couldn't be changed") # Charm doesn't support changing container runtime (check for empty value after upgrade). if config.changed("container_runtime") and config.previous( "container_runtime"): raise Exception( "Configuration parameter container_runtime couldn't be changed") if not config["dpdk"] and (config.changed("kernel-hugepages-1g") or config.changed("kernel-hugepages-2m")): utils.prepare_hugepages_kernel_mode() common_utils.container_engine().config_changed() utils.pull_images() utils.update_charm_status() # leave it as latest - in case of exception in previous steps # config.changed doesn't work sometimes... if config.get("saved-image-tag") != config["image-tag"]: utils.update_ziu("image-tag") config["saved-image-tag"] = config["image-tag"] config.save()
def contrail_controller_changed(): data = relation_get() log("RelData: " + str(data)) def _update_config(key, data_key): if data_key in data: config[key] = data[data_key] else: config.pop(key, None) _update_config("analytics_servers", "analytics-server") _update_config("analyticsdb_enabled", "analyticsdb_enabled") _update_config("auth_info", "auth-info") _update_config("orchestrator_info", "orchestrator-info") _update_config("controller_ips", "controller_ips") _update_config("controller_data_ips", "controller_data_ips") _update_config("issu_controller_ips", "issu_controller_ips") _update_config("issu_controller_data_ips", "issu_controller_data_ips") _update_config("issu_analytics_ips", "issu_analytics_ips") maintenance = None if "maintenance" in data: maintenance = "issu" if "ziu" in data or "ziu_done" in data: maintenance = "ziu" if maintenance: config["maintenance"] = maintenance else: config.pop("maintenance", None) info = common_utils.json_loads(data.get("agents-info"), dict()) k8s_info = info.get("k8s_info") if k8s_info: ip = unit_private_ip() for cluster in k8s_info: kubernetes_workers = k8s_info[cluster].get("kubernetes_workers", []) if kubernetes_workers and ip in kubernetes_workers: config["pod_subnets"] = k8s_info[cluster].get("pod_subnets") break if "controller_data_ips" in data: settings = {"vhost-address": utils.get_vhost_ip()} for rid in relation_ids("agent-cluster"): relation_set(relation_id=rid, relation_settings=settings) utils.update_ziu("controller-changed") utils.update_charm_status()
def config_changed(): utils.update_nrpe_config() # Charm doesn't support changing of some parameters. if config.changed("dpdk"): raise Exception("Configuration parameter dpdk couldn't be changed") if not config["dpdk"]: utils.prepare_hugepages_kernel_mode() docker_utils.config_changed() utils.update_charm_status() # leave it as latest - in case of exception in previous steps # config.changed doesn't work sometimes... if config.get("saved-image-tag") != config["image-tag"]: utils.update_ziu("image-tag") config["saved-image-tag"] = config["image-tag"] config.save()
def contrail_controller_changed(): data = relation_get() log("RelData: " + str(data)) def _update_config(key, data_key): if data_key in data: config[key] = data[data_key] else: config.pop(key, None) _update_config("analytics_servers", "analytics-server") _update_config("auth_info", "auth-info") _update_config("orchestrator_info", "orchestrator-info") _update_config("controller_ips", "controller_ips") _update_config("controller_data_ips", "controller_data_ips") _update_config("issu_controller_ips", "issu_controller_ips") _update_config("issu_controller_data_ips", "issu_controller_data_ips") _update_config("issu_analytics_ips", "issu_analytics_ips") if "controller_data_ips" in data: settings = {"vhost-address": utils.get_vhost_ip()} for rid in relation_ids("agent-cluster"): relation_set(relation_id=rid, relation_settings=settings) maintenance = None if "maintenance" in data: maintenance = "issu" if "ziu" in data or "ziu_done" in data: maintenance = "ziu" if maintenance: config["maintenance"] = maintenance else: config.pop("maintenance", None) config.save() utils.update_ziu("controller-changed") utils.update_charm_status()
def upgrade(): utils.stop_agent() utils.update_charm_status_for_upgrade() utils.update_ziu("upgrade")
def update_status(): utils.update_ziu("update-status") utils.update_charm_status()
def update_status(): utils.update_ziu("update-status") utils.compile_kernel_modules() utils.update_charm_status()