|
22 | 22 | ************************************************************************/ |
23 | 23 |
|
24 | 24 | #include "NodeCmd.hh" |
25 | | -#include "mgm/proc/ProcInterface.hh" |
26 | | -#include "mgm/ofs/XrdMgmOfs.hh" |
| 25 | +#include "common/Constants.hh" |
27 | 26 | #include "mgm/config/IConfigEngine.hh" |
| 27 | +#include "mgm/ofs/XrdMgmOfs.hh" |
| 28 | +#include "mgm/proc/ProcInterface.hh" |
28 | 29 | #include "mq/MessagingRealm.hh" |
29 | 30 | #include "namespace/interface/IFsView.hh" |
30 | 31 |
|
@@ -413,6 +414,31 @@ void NodeCmd::ConfigSubcmd(const eos::console::NodeProto_ConfigProto& config, |
413 | 414 | reply.set_retc(EFAULT); |
414 | 415 | } |
415 | 416 | } |
| 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 | + } |
416 | 442 | } else { |
417 | 443 | reply.set_std_err("error: the specified key is not known - consult the " |
418 | 444 | "usage information of the command"); |
|
0 commit comments