From ea198170bacf5735eaca22306011a24c1ea65532 Mon Sep 17 00:00:00 2001 From: Michal Arbet Date: Mon, 16 Sep 2024 16:33:43 +0200 Subject: [PATCH] Fix state checking via kolla_set_configs Kolla checks the status of its configurations using kolla_set_configs --check. However, this doesn't work for the command block in the config.json file. This means that if only the command value changes, but not the config_files block, which is common practice in Kolla-Ansible btw, the container will not report the changes. This is undesirable and important to fix, especially considering the planned rework of notifiers in Kolla-Ansible [1]. [1] https://review.opendev.org/c/openstack/kolla-ansible/+/773243/14 Closes-Bug: #2080861 Change-Id: I2a290da38ea34b05ce3da8fb8b39b6252bf2da47 --- docker/base/set_configs.py | 14 ++++++++++++++ .../notes/bug-2080861-a46761ea9e7bbf91.yaml | 6 ++++++ 2 files changed, 20 insertions(+) create mode 100644 releasenotes/notes/bug-2080861-a46761ea9e7bbf91.yaml diff --git a/docker/base/set_configs.py b/docker/base/set_configs.py index 640e3e2d2e..82e2e45890 100644 --- a/docker/base/set_configs.py +++ b/docker/base/set_configs.py @@ -57,6 +57,10 @@ class ConfigFileBadState(ExitingException): pass +class ConfigFileCommandDiffers(ExitingException): + pass + + class ConfigFile(object): def __init__(self, source, dest, owner=None, perm=None, optional=False, @@ -414,6 +418,15 @@ def execute_config_strategy(config): raise InvalidConfig('KOLLA_CONFIG_STRATEGY is not set properly') +def execute_command_check(config): + cmd = config.get('command') + with open("/run_command", "r") as f: + cmd_running = f.read() + if cmd != cmd_running: + msg = "Running command differs. " + cmd + " != " + cmd_running + raise ConfigFileCommandDiffers(msg) + + def execute_config_check(config): for data in config.get('config_files', []): config_file = ConfigFile(**data) @@ -431,6 +444,7 @@ def main(): config = load_config() if args.check: + execute_command_check(config) execute_config_check(config) else: execute_config_strategy(config) diff --git a/releasenotes/notes/bug-2080861-a46761ea9e7bbf91.yaml b/releasenotes/notes/bug-2080861-a46761ea9e7bbf91.yaml new file mode 100644 index 0000000000..213fb3666d --- /dev/null +++ b/releasenotes/notes/bug-2080861-a46761ea9e7bbf91.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed an issue where ``kolla_set_configs --check`` failed to detect + changes in the ``command`` block of ``config.json`` file. + `LP#2080861 `__