From a23df12260193a82cfde9c5e671fd00656cdb07c Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 14 Dec 2025 14:42:50 +0000 Subject: [PATCH] Fix modify-osd for the case when OSD config is deleted from etcd --- src/cmd/cli_modify_osd.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/cmd/cli_modify_osd.cpp b/src/cmd/cli_modify_osd.cpp index 0cd3ca77..9a4d1767 100644 --- a/src/cmd/cli_modify_osd.cpp +++ b/src/cmd/cli_modify_osd.cpp @@ -120,12 +120,23 @@ resume_1: else osd_cfg.erase("noout"); } - compare.push_back(json11::Json::object { - { "target", "MOD" }, - { "key", base64_encode(parent->cli->st_cli.etcd_prefix+"/config/osd/"+std::to_string(osd_num)) }, - { "result", "LESS" }, - { "mod_revision", osd_cfg_mod_rev+1 }, - }); + if (osd_cfg_mod_rev) + { + compare.push_back(json11::Json::object { + { "target", "MOD" }, + { "key", base64_encode(parent->cli->st_cli.etcd_prefix+"/config/osd/"+std::to_string(osd_num)) }, + { "result", "LESS" }, + { "mod_revision", osd_cfg_mod_rev+1 }, + }); + } + else + { + compare.push_back(json11::Json::object { + { "target", "VERSION" }, + { "key", base64_encode(parent->cli->st_cli.etcd_prefix+"/config/osd/"+std::to_string(osd_num)) }, + { "version", 0 }, + }); + } if (!osd_cfg.size()) { success.push_back(json11::Json::object {