diff options
author | Csaba Henk <csaba@gluster.com> | 2010-10-02 18:44:16 +0000 |
---|---|---|
committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-10-02 22:19:14 -0700 |
commit | c0c419a3572307e71026144b8907a33b464f6066 (patch) | |
tree | 62259e8be3fc5a3d0a63108d2bb83e15bd64a70f | |
parent | ff7f17da9e1817c6d02da3e98163fce834b429f6 (diff) |
volgen: add a precise getter function which considers default values as well
Signed-off-by: Csaba Henk <csaba@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1750 (clean up volgen)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1750
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 31 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.h | 2 |
2 files changed, 33 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index f83cdefe8..619e32920 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -413,6 +413,37 @@ volgen_graph_set_options (glusterfs_graph_t *graph, dict_t *dict) } static int +optget_option_handler (glusterfs_graph_t *graph, struct volopt_map_entry2 *vme2, + void *param) +{ + struct volopt_map_entry2 *vme2x = param; + + if (strcmp (vme2->key, vme2x->key) == 0) + vme2x->value = vme2->value; + + return 0; +} + +/* This getter considers defaults also. */ +int +glusterd_volinfo_get (glusterd_volinfo_t *volinfo, char *key, char **value) +{ + struct volopt_map_entry2 vme2 = {0,}; + int ret = 0; + + vme2.key = key; + + ret = volgen_graph_set_options_generic (NULL, volinfo->dict, &vme2, + &optget_option_handler); + if (ret) + return -1; + + *value = vme2.value; + + return 0; +} + +static int volgen_graph_merge_sub (glusterfs_graph_t *dgraph, glusterfs_graph_t *sgraph) { xlator_t *trav = NULL; diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.h b/xlators/mgmt/glusterd/src/glusterd-volgen.h index 3e877fd7b..fe706ef33 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.h +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.h @@ -46,4 +46,6 @@ int glusterd_create_nfs_volfile (); int glusterd_delete_volfile (glusterd_volinfo_t *volinfo, glusterd_brickinfo_t *brickinfo); +int glusterd_volinfo_get (glusterd_volinfo_t *volinfo, char *key, char **value); + #endif |