diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.h')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index 419ab48323a..914d7977b51 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -32,6 +32,39 @@ volinfo->volname, brickid);\ } while (0) +#define ALL_VOLUME_OPTION_CHECK(volname, get_opt, key, ret, op_errstr, label) \ + do { \ + gf_boolean_t _all = !strcmp ("all", volname); \ + gf_boolean_t _is_valid_opt = _gf_false; \ + int32_t i = 0; \ + \ + if (strcmp (key, "all") == 0 && !get_opt) { \ + ret = -1; \ + *op_errstr = gf_strdup ("Not a valid option to set"); \ + } \ + \ + for (i = 0; valid_all_vol_opts[i].option; i++) { \ + if (!strcmp (key, "all") || \ + !strcmp (key, valid_all_vol_opts[i].option)) { \ + _is_valid_opt = _gf_true; \ + break; \ + } \ + } \ + \ + if (_all && !_is_valid_opt) { \ + ret = -1; \ + *op_errstr = gf_strdup ("Not a valid option for all " \ + "volumes"); \ + goto label; \ + } else if (!_all && _is_valid_opt) { \ + ret = -1; \ + *op_errstr = gf_strdup ("Not a valid option for " \ + "single volume"); \ + goto label; \ + } \ + } while (0) \ + + struct glusterd_lock_ { uuid_t owner; time_t timestamp; @@ -624,6 +657,9 @@ int glusterd_get_volopt_content (dict_t *dict, gf_boolean_t xml_out); int +glusterd_get_global_options_for_all_vols (dict_t *dict, char **op_errstr); + +int glusterd_get_default_val_for_volopt (dict_t *dict, gf_boolean_t all_opts, char *key, char *orig_key, dict_t *vol_dict, char **err_str); |
