# Check if the container is ready.
# Eventually it will become ready after the first pebble-ready event.
check_container_ready(self.container)
-
- self._configure_service(self.container)
+ if not self.debug_mode.started:
+ self._configure_service(self.container)
# Update charm status
self._on_update_status()
except CharmError as e:
def _on_get_debug_mode_information_action(self, event: ActionEvent) -> None:
"""Handler for the get-debug-mode-information action event."""
if not self.debug_mode.started:
- event.fail("debug-mode has not started. Hint: juju config mon debug-mode=true")
+ event.fail(
+ "debug-mode has not started. Hint: juju config mon debug-mode=true"
+ )
return
- debug_info = {"command": self.debug_mode.command, "password": self.debug_mode.password}
+ debug_info = {
+ "command": self.debug_mode.command,
+ "password": self.debug_mode.password,
+ }
event.set_results(debug_info)
# ---------------------------------------------------------------------------
# Action events
self.on.get_debug_mode_information_action: self._on_get_debug_mode_information_action,
}
- for relation in [self.on[rel_name] for rel_name in ["mongodb", "prometheus", "keystone"]]:
+ for relation in [
+ self.on[rel_name] for rel_name in ["mongodb", "prometheus", "keystone"]
+ ]:
event_handler_mapping[relation.relation_changed] = self._on_config_changed
- event_handler_mapping[relation.relation_broken] = self._on_required_relation_broken
+ event_handler_mapping[
+ relation.relation_broken
+ ] = self._on_required_relation_broken
for event, handler in event_handler_mapping.items():
self.framework.observe(event, handler)
if missing_relations:
relations_str = ", ".join(missing_relations)
one_relation_missing = len(missing_relations) == 1
- error_msg = f'need {relations_str} relation{"" if one_relation_missing else "s"}'
+ error_msg = (
+ f'need {relations_str} relation{"" if one_relation_missing else "s"}'
+ )
logger.warning(error_msg)
raise CharmError(error_msg)
environment = {
# General configuration
"OSMMON_GLOBAL_LOGLEVEL": self.config["log-level"],
- "OSMMON_OPENSTACK_DEFAULT_GRANULARITY": self.config["openstack-default-granularity"],
+ "OSMMON_OPENSTACK_DEFAULT_GRANULARITY": self.config[
+ "openstack-default-granularity"
+ ],
"OSMMON_GLOBAL_REQUEST_TIMEOUT": self.config["global-request-timeout"],
"OSMMON_COLLECTOR_INTERVAL": self.config["collector-interval"],
"OSMMON_EVALUATOR_INTERVAL": self.config["evaluator-interval"],
+ "OSMMON_COLLECTOR_VM_INFRA_METRICS": self.config["vm-infra-metrics"],
# Kafka configuration
"OSMMON_MESSAGE_DRIVER": "kafka",
"OSMMON_MESSAGE_HOST": self.kafka.host,
"OSMMON_DATABASE_COMMONKEY": self.config["database-commonkey"],
# Prometheus/grafana configuration
"OSMMON_PROMETHEUS_URL": f"http://{self.prometheus_client.hostname}:{self.prometheus_client.port}",
+ "OSMMON_PROMETHEUS_USER": self.prometheus_client.user,
+ "OSMMON_PROMETHEUS_PASSWORD": self.prometheus_client.password,
"OSMMON_GRAFANA_URL": self.config["grafana-url"],
"OSMMON_GRAFANA_USER": self.config["grafana-user"],
"OSMMON_GRAFANA_PASSWORD": self.config["grafana-password"],
+ "OSMMON_KEYSTONE_ENABLED": self.config["keystone-enabled"],
+ "OSMMON_KEYSTONE_URL": self.keystone_client.host,
+ "OSMMON_KEYSTONE_DOMAIN_NAME": self.keystone_client.user_domain_name,
+ "OSMMON_KEYSTONE_SERVICE_PROJECT": self.keystone_client.service,
+ "OSMMON_KEYSTONE_SERVICE_USER": self.keystone_client.username,
+ "OSMMON_KEYSTONE_SERVICE_PASSWORD": self.keystone_client.password,
+ "OSMMON_KEYSTONE_SERVICE_PROJECT_DOMAIN_NAME": self.keystone_client.project_domain_name,
}
+ logger.info(f"{environment}")
if self.vca.data:
environment["OSMMON_VCA_HOST"] = self.vca.data.endpoints
- environment["OSMMON_VCA_SECRET"] = self.vca.secret
- environment["OSMMON_VCA_USER"] = self.vca.user
- environment["OSMMON_VCA_CACERT"] = self.vca.cacert
+ environment["OSMMON_VCA_SECRET"] = self.vca.data.secret
+ environment["OSMMON_VCA_USER"] = self.vca.data.user
+ environment["OSMMON_VCA_CACERT"] = self.vca.data.cacert
return {
"summary": "mon layer",
"description": "pebble config layer for mon",