diff --git a/include/crm/cib/internal.h b/include/crm/cib/internal.h index 6eaf1516d7d..fa8e2beb3a5 100644 --- a/include/crm/cib/internal.h +++ b/include/crm/cib/internal.h @@ -169,6 +169,7 @@ cib__client_triggers_refresh(const char *name) return (pcmk__parse_server(name) == pcmk_ipc_unknown) && !pcmk__str_any_of(name, "attrd_updater", + "cibadmin_status", "crm_attribute", "crm_node", "crm_resource", diff --git a/tools/cibadmin.c b/tools/cibadmin.c index fc20bdea950..25375d5102e 100644 --- a/tools/cibadmin.c +++ b/tools/cibadmin.c @@ -137,6 +137,7 @@ static struct { gboolean input_stdin; gboolean allow_create; gboolean force; + gboolean update_status; gboolean get_node_path; gboolean no_children; gboolean score_update; @@ -808,6 +809,11 @@ static GOptionEntry addl_entries[] = { "result", NULL }, + { "update-status", 'u', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, + &options.update_status, + "(Advanced) Apply CIB update without triggering a controller refresh", + NULL }, + // @COMPAT Deprecated since 3.0.0 { "local", 'l', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &options.local, "(deprecated)", NULL }, @@ -1088,7 +1094,8 @@ main(int argc, char **argv) * In cibadmin we explicitly output the XML portion without the prefixes. So * we default to LOG_CRIT. */ - pcmk__cli_init_logging("cibadmin", 0); + pcmk__cli_init_logging( + options.update_status? "cibadmin_status" : "cibadmin", 0); set_crm_log_level(LOG_CRIT); if (args->verbosity > 0) {