diff options
| author | shishir gowda <sgowda@redhat.com> | 2013-09-03 16:30:33 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2013-09-03 21:39:42 -0700 | 
| commit | 98df12f040d95d6a26047f03988b120984f7439e (patch) | |
| tree | 95a4db37d3f0fff9ac2eb957c91c3a987cee56b7 | |
| parent | 2c15621d26fda5ba21e375d803baa5d8e09e6260 (diff) | |
mgmt/glusterd: Regenerate client volfiles during upgrade
Change-Id: I1442bc1d115a9c6ecf139a0ca9da74d07e0fe928
BUG: 1003855
Signed-off-by: shishir gowda <sgowda@redhat.com>
Reviewed-on: http://review.gluster.org/5764
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 33 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.h | 2 | 
3 files changed, 30 insertions, 7 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index bde5b9b52..2d7c0d67d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -5604,17 +5604,38 @@ out:  }  int32_t -glusterd_recreate_bricks (glusterd_conf_t *conf) +glusterd_recreate_volfiles (glusterd_conf_t *conf)  {          glusterd_volinfo_t      *volinfo = NULL;          int                      ret = 0; +        int                      op_ret = 0;          GF_ASSERT (conf);          list_for_each_entry (volinfo, &conf->volumes, vol_list) {                  ret = generate_brick_volfiles (volinfo); +                if (ret) { +                        gf_log ("glusterd", GF_LOG_ERROR, "Failed to " +                                "regenerate brick volfiles for %s", +                                volinfo->volname); +                        op_ret = ret; +                } +                ret = generate_client_volfiles (volinfo, GF_CLIENT_TRUSTED); +                if (ret) { +                        gf_log ("glusterd", GF_LOG_ERROR, "Failed to " +                                "regenerate trusted client volfiles for %s", +                                volinfo->volname); +                        op_ret = ret; +                } +                ret = generate_client_volfiles (volinfo, GF_CLIENT_OTHER); +                if (ret) { +                        gf_log ("glusterd", GF_LOG_ERROR, "Failed to " +                                "regenerate client volfiles for %s", +                                volinfo->volname); +                        op_ret = ret; +                }          } -        return ret; +        return op_ret;  }  int32_t @@ -5624,7 +5645,7 @@ glusterd_handle_upgrade_downgrade (dict_t *options, glusterd_conf_t *conf)          char            *type                           = NULL;          gf_boolean_t     upgrade                        = _gf_false;          gf_boolean_t     downgrade                      = _gf_false; -        gf_boolean_t     regenerate_brick_volfiles      = _gf_false; +        gf_boolean_t     regenerate_volfiles            = _gf_false;          gf_boolean_t     terminate                      = _gf_false;          ret = dict_get_str (options, "upgrade", &type); @@ -5637,7 +5658,7 @@ glusterd_handle_upgrade_downgrade (dict_t *options, glusterd_conf_t *conf)                          goto out;                  }                  if (_gf_true == upgrade) -                        regenerate_brick_volfiles = _gf_true; +                        regenerate_volfiles = _gf_true;          }          ret = dict_get_str (options, "downgrade", &type); @@ -5662,8 +5683,8 @@ glusterd_handle_upgrade_downgrade (dict_t *options, glusterd_conf_t *conf)                  ret = 0;          else                  terminate = _gf_true; -        if (regenerate_brick_volfiles) { -                ret = glusterd_recreate_bricks (conf); +        if (regenerate_volfiles) { +                ret = glusterd_recreate_volfiles (conf);          }  out:          if (terminate && (ret == 0)) diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 61ca52dc0..fb91c3de4 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -3228,7 +3228,7 @@ enumerate_transport_reqs (gf_transport_type type, char **types)          }  } -static int +int  generate_client_volfiles (glusterd_volinfo_t *volinfo,                            glusterd_client_type_t client_type)  { diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.h b/xlators/mgmt/glusterd/src/glusterd-volgen.h index 4ff899f4a..ad3e9bd88 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.h +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.h @@ -135,6 +135,8 @@ glusterd_check_voloption_flags (char *key, int32_t flags);  gf_boolean_t  glusterd_is_valid_volfpath (char *volname, char *brick);  int generate_brick_volfiles (glusterd_volinfo_t *volinfo); +int generate_client_volfiles (glusterd_volinfo_t *volinfo, +                              glusterd_client_type_t client_type);  int glusterd_get_volopt_content (dict_t *dict, gf_boolean_t xml_out);  char*  glusterd_get_trans_type_rb (gf_transport_type ttype);  | 
