Skip to content

Commit 81bc858

Browse files
committed
MGM: Whitelist the new cbox_forbid_rw_sync option that can be set per node
1 parent 101c041 commit 81bc858

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

mgm/proc/admin/NodeCmd.cc

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
************************************************************************/
2323

2424
#include "NodeCmd.hh"
25-
#include "mgm/proc/ProcInterface.hh"
26-
#include "mgm/ofs/XrdMgmOfs.hh"
25+
#include "common/Constants.hh"
2726
#include "mgm/config/IConfigEngine.hh"
27+
#include "mgm/ofs/XrdMgmOfs.hh"
28+
#include "mgm/proc/ProcInterface.hh"
2829
#include "mq/MessagingRealm.hh"
2930
#include "namespace/interface/IFsView.hh"
3031

@@ -413,6 +414,31 @@ void NodeCmd::ConfigSubcmd(const eos::console::NodeProto_ConfigProto& config,
413414
reply.set_retc(EFAULT);
414415
}
415416
}
417+
} else if (config.node_key() == eos::common::FST_CBOX_FORBID_RW_SYNC) {
418+
if ((config.node_value() != "true") && (config.node_value() != "false") &&
419+
(config.node_value() != "remove")) {
420+
reply.set_std_err("error: cbox_forbid_rw_sync value can be either"
421+
" \"true\", \"false\" or \"remove\"");
422+
reply.set_retc(EINVAL);
423+
} else {
424+
if (config.node_value() == "remove") {
425+
if (!node->DeleteConfigMember(config.node_key())) {
426+
reply.set_std_err("error: failed to remove configuration or already done");
427+
reply.set_retc(EINVAL);
428+
} else {
429+
reply.set_std_err("info: configuration successfully removed");
430+
reply.set_retc(0);
431+
}
432+
} else {
433+
if (!node->SetConfigMember(config.node_key(), config.node_value())) {
434+
reply.set_std_err("error: cannot set node config value");
435+
reply.set_retc(EIO);
436+
} else {
437+
reply.set_std_out("success: configuration updated");
438+
reply.set_retc(0);
439+
}
440+
}
441+
}
416442
} else {
417443
reply.set_std_err("error: the specified key is not known - consult the "
418444
"usage information of the command");

0 commit comments

Comments
 (0)