diff options
| -rw-r--r-- | cli/src/cli-xml-output.c | 10 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 32 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 15 | 
3 files changed, 57 insertions, 0 deletions
diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index 21ca1ae7fb7..fcb061fcce3 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -237,6 +237,7 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,          int             ret = -1;          char            *hostname = NULL;          char            *path = NULL; +        char            *uuid = NULL;          int             port = 0;          int             status = 0;          int             pid = 0; @@ -264,6 +265,15 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,          XML_RET_CHECK_AND_GOTO (ret, out);          memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "brick%d.peerid", brick_index); +        ret = dict_get_str (dict, key, &uuid); +        if (ret) +                goto out; +        ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *)"peerid", +                                               "%s", uuid); +        XML_RET_CHECK_AND_GOTO (ret, out); + +        memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "brick%d.status", brick_index);          ret = dict_get_int32 (dict, key, &status);          if (ret) diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index e4ff10dad22..c0a30724a91 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -3110,6 +3110,38 @@ glusterd_op_modify_op_ctx (glusterd_op_t op, void *ctx)                  count = brick_index_max + other_count + 1; +                /* add 'brick%d.peerid' into op_ctx with value of 'brick%d.path'. +                   nfs/sshd like services have this additional uuid */ +                { +                        char  key[1024]; +                        char *uuid_str = NULL; +                        char *uuid = NULL; +                        int   i; + +                        for (i = brick_index_max + 1; i < count; i++) { +                                memset (key, 0, sizeof (key)); +                                snprintf (key, sizeof (key), "brick%d.path", i); +                                ret = dict_get_str (op_ctx, key, &uuid_str); +                                if (!ret) { +                                        memset (key, 0, sizeof (key)); +                                        snprintf (key, sizeof (key), +                                                  "brick%d.peerid", i); +                                        uuid = gf_strdup (uuid_str); +                                        if (!uuid) { +                                                gf_log (this->name, GF_LOG_DEBUG, +                                                        "unable to create dup of" +                                                        " uuid_str"); +                                                continue; +                                        } +                                        ret = dict_set_dynstr (op_ctx, key, +                                                               uuid); +                                        if (ret != 0) { +                                                GF_FREE (uuid); +                                        } +                                } +                        } +                } +                  ret = glusterd_op_volume_dict_uuid_to_hostname (op_ctx,                                                                  "brick%d.path",                                                                  0, count); diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index de17c3dbf1f..53b3937d462 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -4648,6 +4648,7 @@ glusterd_add_brick_to_dict (glusterd_volinfo_t *volinfo,          int             ret                   = -1;          int32_t         pid                   = -1;          int32_t         brick_online          = -1; +        char           *peer_id_str           = NULL;          char            key[1024]             = {0};          char            base_key[1024]        = {0};          char            pidfile[PATH_MAX]     = {0}; @@ -4678,6 +4679,20 @@ glusterd_add_brick_to_dict (glusterd_volinfo_t *volinfo,          if (ret)                  goto out; +        /* add peer uuid */ +        peer_id_str = gf_strdup (uuid_utoa (brickinfo->uuid)); +        if (!peer_id_str) { +                ret = -1; +                goto out; +        } +        memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "%s.peerid", base_key); +        ret = dict_set_dynstr (dict, key, peer_id_str); +        if (ret) { +                GF_FREE (peer_id_str); +                goto out; +        } +          memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "%s.port", base_key);          ret = dict_set_int32 (dict, key, brickinfo->port);  | 
