diff options
| -rw-r--r-- | cli/src/cli-cmd-volume.c | 130 | ||||
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 203 | ||||
| -rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 22 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 121 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 74 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handshake.c | 26 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 8 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rpc-ops.c | 129 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-sm.c | 20 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-sm.h | 1 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 20 | 
11 files changed, 170 insertions, 584 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index 8d3ff557ab7..18d17b4546d 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -1152,50 +1152,6 @@ cli_cmd_volume_set_transport_cbk (struct cli_state *state,  }  int -cli_cmd_log_filename_cbk (struct cli_state *state, struct cli_cmd_word *word, -                          const char **words, int wordcount) -{ -        int                     ret = -1; -        rpc_clnt_procedure_t    *proc = NULL; -        call_frame_t            *frame = NULL; -        dict_t                  *options = NULL; -        int                     sent = 0; -        int                     parse_error = 0; - -        if (!((wordcount == 5) || (wordcount == 6))) { -                cli_usage_out (word->pattern); -                parse_error = 1; -                goto out; -        } - -        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LOG_FILENAME]; - -        frame = create_frame (THIS, THIS->ctx->pool); -        if (!frame) -                goto out; - -        ret = cli_cmd_log_filename_parse (words, wordcount, &options); -        if (ret) -                goto out; - -        if (proc->fn) { -                ret = proc->fn (frame, THIS, options); -        } - -out: -        if (options) -                dict_destroy (options); - -        if (ret) { -                cli_cmd_sent_status_get (&sent); -                if ((sent == 0) && (parse_error == 0)) -                        cli_out ("Volume log filename failed"); -        } - -        return ret; -} - -int  cli_cmd_volume_top_cbk (struct cli_state *state, struct cli_cmd_word *word,                            const char **words, int wordcount)  { @@ -1239,49 +1195,6 @@ out:  } -int -cli_cmd_log_locate_cbk (struct cli_state *state, struct cli_cmd_word *word, -                        const char **words, int wordcount) -{ -        int                     ret = -1; -        rpc_clnt_procedure_t    *proc = NULL; -        call_frame_t            *frame = NULL; -        dict_t                  *options = NULL; -        int                     sent = 0; -        int                     parse_error = 0; - -        if (!((wordcount == 4) || (wordcount == 5))) { -                cli_usage_out (word->pattern); -                parse_error = 1; -                goto out; -        } - -        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LOG_LOCATE]; - -        frame = create_frame (THIS, THIS->ctx->pool); -        if (!frame) -                goto out; - -        ret = cli_cmd_log_locate_parse (words, wordcount, &options); -        if (ret) -                goto out; - -        if (proc->fn) { -                ret = proc->fn (frame, THIS, options); -        } - -out: -        if (options) -                dict_destroy (options); - -        if (ret) { -                cli_cmd_sent_status_get (&sent); -                if ((sent == 0) && (parse_error == 0)) -                        cli_out ("getting log file location information failed"); -        } - -        return ret; -}  int  cli_cmd_log_rotate_cbk (struct cli_state *state, struct cli_cmd_word *word, @@ -1430,37 +1343,6 @@ out:  }  int -cli_cmd_log_level_cbk (struct cli_state *state, struct cli_cmd_word *word, -                       const char **words, int wordcount) -{ -        int                   ret         = -1; -        rpc_clnt_procedure_t *proc        = NULL; -        call_frame_t         *frame       = NULL; -        dict_t               *dict        = NULL; - -        if (wordcount != 6) { -          cli_usage_out (word->pattern); -          goto out; -        } - -        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LOG_LEVEL]; - -        frame = create_frame (THIS, THIS->ctx->pool); -        if (!frame) -          goto out; - -        ret = cli_cmd_log_level_parse (words, wordcount, &dict); -        if (ret) -          goto out; - -        if (proc->fn) -          ret = proc->fn (frame, THIS, dict); - - out: -        return ret; -} - -int  cli_cmd_volume_status_cbk (struct cli_state *state,                                struct cli_cmd_word *word,                                const char **words, int wordcount) @@ -1695,14 +1577,6 @@ struct cli_cmd volume_cmds[] = {            cli_cmd_volume_help_cbk,            "display help for the volume command"}, -        { "volume log filename <VOLNAME> [BRICK] <PATH>", -          cli_cmd_log_filename_cbk, -         "set the log file for corresponding volume/brick"}, - -        { "volume log locate <VOLNAME> [BRICK]", -          cli_cmd_log_locate_cbk, -         "locate the log file for corresponding volume/brick"}, -          { "volume log rotate <VOLNAME> [BRICK]",            cli_cmd_log_rotate_cbk,           "rotate the log file for corresponding volume/brick"}, @@ -1736,10 +1610,6 @@ struct cli_cmd volume_cmds[] = {             cli_cmd_volume_top_cbk,             "volume top operations"}, -        {"volume log level <VOLNAME> <XLATOR[*]> <LOGLEVEL>", -         cli_cmd_log_level_cbk, -         "log level for translator"}, -          { "volume status <VOLNAME>",            cli_cmd_volume_status_cbk,           "display status of specified volume"}, diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index bcaf0cef593..9007d373469 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -1470,66 +1470,6 @@ out:          return ret;  } -static int -gf_cli3_1_log_filename_cbk (struct rpc_req *req, struct iovec *iov, -                            int count, void *myframe) -{ -        gf_cli_rsp                      rsp   = {0,}; -        int                             ret   = -1; - -        if (-1 == req->rpc_status) { -                goto out; -        } - -        ret = xdr_to_generic (*iov, &rsp, (xdrproc_t)xdr_gf_cli_rsp); -        if (ret < 0) { -                gf_log ("", GF_LOG_ERROR, "error"); -                goto out; -        } - -        gf_log ("cli", GF_LOG_DEBUG, "Received resp to log filename"); - -        if (rsp.op_ret && strcmp (rsp.op_errstr, "")) -                cli_out ("%s", rsp.op_errstr); -        else -                cli_out ("log filename : %s", -                         (rsp.op_ret) ? "unsuccessful": "successful"); - -        ret = rsp.op_ret; - -out: -        cli_cmd_broadcast_response (ret); -        if (rsp.dict.dict_val) -                free (rsp.dict.dict_val); -        return ret; -} - -static int -gf_cli3_1_log_locate_cbk (struct rpc_req *req, struct iovec *iov, -                          int count, void *myframe) -{ -        gf1_cli_log_locate_rsp rsp   = {0,}; -        int                    ret   = -1; - -        if (-1 == req->rpc_status) { -                goto out; -        } - -        ret = xdr_to_generic (*iov, &rsp, (xdrproc_t)xdr_gf1_cli_log_locate_rsp); -        if (ret < 0) { -                gf_log ("", GF_LOG_ERROR, "error"); -                goto out; -        } - -        gf_log ("cli", GF_LOG_DEBUG, "Received resp to log locate"); -        cli_out ("log file location: %s", rsp.path); - -        ret = rsp.op_ret; - -out: -        cli_cmd_broadcast_response (ret); -        return ret; -}  static int  gf_cli3_1_log_rotate_cbk (struct rpc_req *req, struct iovec *iov, @@ -2690,144 +2630,6 @@ out:          return ret;  } -int32_t -gf_cli3_1_log_filename (call_frame_t *frame, xlator_t *this, -                        void *data) -{ -        gf_cli_req                req = {{0,}}; -        int                       ret = 0; -        dict_t                   *dict = NULL; - -        if (!frame || !this ||  !data) { -                ret = -1; -                goto out; -        } - -        dict = data; - -        ret = dict_allocate_and_serialize (dict, -                                           &req.dict.dict_val, -                                           (size_t *)&req.dict.dict_len); -        if (ret < 0) { -                gf_log (THIS->name, GF_LOG_ERROR, "failed to serialize dict"); -                goto out; -        } - -        ret = cli_cmd_submit (&req, frame, cli_rpc_prog, -                              GLUSTER_CLI_LOG_FILENAME, NULL, -                              this, gf_cli3_1_log_filename_cbk, -                              (xdrproc_t) xdr_gf_cli_req); - -out: -        gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret); - -        if (req.dict.dict_val) -                GF_FREE (req.dict.dict_val); - -        return ret; -} - -static int -gf_cli3_1_log_level_cbk (struct rpc_req *req, struct iovec *iov, -                         int count, void *myframe) -{ -        gf_cli_rsp            rsp = {0,}; -        int                   ret = -1; - -        if (req->rpc_status == -1) -                goto out; - -        ret = xdr_to_generic (*iov, &rsp, (xdrproc_t)xdr_gf_cli_rsp); -        if (ret < 0) { -                gf_log ("cli", GF_LOG_ERROR, "log level response error"); -                goto out; -        } - -        gf_log ("cli", GF_LOG_DEBUG, "Received response to log level cmd"); - -        if (rsp.op_ret && strcmp (rsp.op_errstr, "")) -                cli_out ("%s", rsp.op_errstr); -        else -                cli_out ("log level set: %s", (rsp.op_ret) ? "unsuccessful" : -                         "successful"); - -        ret = rsp.op_ret; - - out: -        cli_cmd_broadcast_response (ret); -        return ret; -} - -int32_t -gf_cli3_1_log_level (call_frame_t *frame, xlator_t *this, -                     void *data) -{ -        gf_cli_req             req  = {{0,}}; -        int                    ret  = 0; -        dict_t                *dict = NULL; - -        if (!frame || !this || !data) { -                ret = -1; -                goto out; -        } - -        dict = data; - -        ret = dict_allocate_and_serialize (dict, -                                           &req.dict.dict_val, -                                           (size_t *)&req.dict.dict_len); -        if (ret < 0) { -                gf_log (THIS->name, GF_LOG_ERROR, "failed to serialize dict"); -                goto out; -        } - -        ret = cli_cmd_submit (&req, frame, cli_rpc_prog, -                              GLUSTER_CLI_LOG_LEVEL, NULL, -                              this, gf_cli3_1_log_level_cbk, -                              (xdrproc_t) xdr_gf_cli_req); - - out: -        gf_log ("cli", GF_LOG_DEBUG, "Returning: %d", ret); - -        if (req.dict.dict_val) -                GF_FREE (req.dict.dict_val); -        return ret; -} - - -int32_t -gf_cli3_1_log_locate (call_frame_t *frame, xlator_t *this, -                      void *data) -{ -        gf1_cli_log_locate_req  req = {0,}; -        int                     ret = 0; -        dict_t                 *dict = NULL; - -        if (!frame || !this ||  !data) { -                ret = -1; -                goto out; -        } - -        dict = data; - -        ret = dict_get_str (dict, "volname", &req.volname); -        if (ret) -                goto out; - -        ret = dict_get_str (dict, "brick", &req.brick); -        if (ret) -                req.brick = ""; - -        ret = cli_cmd_submit (&req, frame, cli_rpc_prog, -                              GLUSTER_CLI_LOG_LOCATE, NULL, -                              this, gf_cli3_1_log_locate_cbk, -                              (xdrproc_t) xdr_gf1_cli_log_locate_req); - -out: -        gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret); - -        return ret; -}  int32_t  gf_cli3_1_log_rotate (call_frame_t *frame, xlator_t *this, @@ -4439,8 +4241,6 @@ struct rpc_clnt_procedure gluster_cli_actors[GLUSTER_CLI_MAXVALUE] = {          [GLUSTER_CLI_ADD_BRICK]        = {"ADD_BRICK", gf_cli3_1_add_brick},          [GLUSTER_CLI_REMOVE_BRICK]     = {"REMOVE_BRICK", gf_cli3_1_remove_brick},          [GLUSTER_CLI_REPLACE_BRICK]    = {"REPLACE_BRICK", gf_cli3_1_replace_brick}, -        [GLUSTER_CLI_LOG_FILENAME]     = {"LOG FILENAME", gf_cli3_1_log_filename}, -        [GLUSTER_CLI_LOG_LOCATE]       = {"LOG LOCATE", gf_cli3_1_log_locate},          [GLUSTER_CLI_LOG_ROTATE]       = {"LOG ROTATE", gf_cli3_1_log_rotate},          [GLUSTER_CLI_GETSPEC]          = {"GETSPEC", gf_cli3_1_getspec},          [GLUSTER_CLI_PMAP_PORTBYBRICK] = {"PMAP PORTBYBRICK", gf_cli3_1_pmap_b2p}, @@ -4451,7 +4251,6 @@ struct rpc_clnt_procedure gluster_cli_actors[GLUSTER_CLI_MAXVALUE] = {          [GLUSTER_CLI_PROFILE_VOLUME]   = {"PROFILE_VOLUME", gf_cli3_1_profile_volume},          [GLUSTER_CLI_QUOTA]            = {"QUOTA", gf_cli3_1_quota},          [GLUSTER_CLI_TOP_VOLUME]       = {"TOP_VOLUME", gf_cli3_1_top_volume}, -        [GLUSTER_CLI_LOG_LEVEL]        = {"VOLUME_LOGLEVEL", gf_cli3_1_log_level},          [GLUSTER_CLI_GETWD]            = {"GETWD", gf_cli3_1_getwd},          [GLUSTER_CLI_STATUS_VOLUME]    = {"STATUS_VOLUME", gf_cli3_1_status_volume},          [GLUSTER_CLI_MOUNT]            = {"MOUNT", gf_cli3_1_mount}, @@ -4464,6 +4263,6 @@ struct rpc_clnt_program cli_prog = {          .progname  = "Gluster CLI",          .prognum   = GLUSTER_CLI_PROGRAM,          .progver   = GLUSTER_CLI_VERSION, -        .numproc   = GLUSTER_CLI_PROCCNT, +        .numproc   = GLUSTER_CLI_MAXVALUE,          .proctable = gluster_cli_actors,  }; diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index adce060a6d2..3c8042312b1 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -742,13 +742,13 @@ glusterfs_handle_rpc_msg (rpcsvc_request_t *req)          xlator_t *this = THIS;          GF_ASSERT (this);          switch (req->procnum) { -        case GF_BRICK_TERMINATE: +        case GLUSTERD_BRICK_TERMINATE:                  ret = glusterfs_handle_terminate (req);                  break; -        case GF_BRICK_XLATOR_INFO: +        case GLUSTERD_BRICK_XLATOR_INFO:                  ret = glusterfs_handle_translator_info_get (req);                  break; -        case GF_BRICK_XLATOR_HEAL: +        case GLUSTERD_BRICK_XLATOR_HEAL:                  ret = glusterfs_handle_translator_heal (req);                  break;          default: @@ -803,18 +803,18 @@ rpc_clnt_prog_t clnt_handshake_prog = {  };  rpcsvc_actor_t glusterfs_actors[] = { -        [GF_BRICK_NULL]        = { "NULL",    GF_BRICK_NULL, glusterfs_handle_rpc_msg, NULL, NULL}, -        [GF_BRICK_TERMINATE] = { "TERMINATE", GF_BRICK_TERMINATE, glusterfs_handle_rpc_msg, NULL, NULL}, -        [GF_BRICK_XLATOR_INFO] = { "TRANSLATOR INFO", GF_BRICK_XLATOR_INFO, glusterfs_handle_rpc_msg, NULL, NULL}, -        [GF_BRICK_XLATOR_HEAL] = { "TRANSLATOR HEAL", GF_BRICK_XLATOR_HEAL, glusterfs_handle_rpc_msg, NULL, NULL} +        [GLUSTERD_BRICK_NULL]        = { "NULL",    GLUSTERD_BRICK_NULL, glusterfs_handle_rpc_msg, NULL, NULL}, +        [GLUSTERD_BRICK_TERMINATE] = { "TERMINATE", GLUSTERD_BRICK_TERMINATE, glusterfs_handle_rpc_msg, NULL, NULL}, +        [GLUSTERD_BRICK_XLATOR_INFO] = { "TRANSLATOR INFO", GLUSTERD_BRICK_XLATOR_INFO, glusterfs_handle_rpc_msg, NULL, NULL}, +        [GLUSTERD_BRICK_XLATOR_HEAL] = { "TRANSLATOR HEAL", GLUSTERD_BRICK_XLATOR_HEAL, glusterfs_handle_rpc_msg, NULL, NULL}  };  struct rpcsvc_program glusterfs_mop_prog = { -        .progname  = "GlusterFS Mops", -        .prognum   = GLUSTERFS_PROGRAM, -        .progver   = GLUSTERFS_VERSION, -        .numactors = GLUSTERFS_PROCCNT, +        .progname  = "Gluster Brick operations", +        .prognum   = GD_BRICK_PROGRAM, +        .progver   = GD_BRICK_VERSION,          .actors    = glusterfs_actors, +        .numactors = GLUSTERD_BRICK_MAXVALUE,  };  int diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index 5eea8b5286b..9b358f49730 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -75,46 +75,6 @@ enum gf_handshake_procnum {          GF_HNDSK_MAXVALUE,  }; -enum gf_mgmt_procnum_ { -        GD_MGMT_NULL,    /* 0 */ -        GD_MGMT_PROBE_QUERY, -        GD_MGMT_FRIEND_ADD, -        GD_MGMT_CLUSTER_LOCK, -        GD_MGMT_CLUSTER_UNLOCK, -        GD_MGMT_STAGE_OP, -        GD_MGMT_COMMIT_OP, -        GD_MGMT_FRIEND_REMOVE, -        GD_MGMT_FRIEND_UPDATE, -        GD_MGMT_CLI_PROBE, -        GD_MGMT_CLI_DEPROBE, -        GD_MGMT_CLI_LIST_FRIENDS, -        GD_MGMT_CLI_CREATE_VOLUME, -        GD_MGMT_CLI_GET_VOLUME, -        GD_MGMT_CLI_DELETE_VOLUME, -        GD_MGMT_CLI_START_VOLUME, -        GD_MGMT_CLI_STOP_VOLUME, -        GD_MGMT_CLI_RENAME_VOLUME, -        GD_MGMT_CLI_DEFRAG_VOLUME, -        GD_MGMT_CLI_SET_VOLUME, -        GD_MGMT_CLI_ADD_BRICK, -        GD_MGMT_CLI_REMOVE_BRICK, -        GD_MGMT_CLI_REPLACE_BRICK, -        GD_MGMT_CLI_LOG_FILENAME, -        GD_MGMT_CLI_LOG_LOCATE, -        GD_MGMT_CLI_LOG_ROTATE, -        GD_MGMT_CLI_SYNC_VOLUME, -        GD_MGMT_CLI_RESET_VOLUME, -        GD_MGMT_CLI_FSM_LOG, -        GD_MGMT_CLI_GSYNC_SET, -        GD_MGMT_CLI_PROFILE_VOLUME, -        GD_MGMT_BRICK_OP, -        GD_MGMT_CLI_LOG_LEVEL, -        GD_MGMT_CLI_STATUS_VOLUME, -        GD_MGMT_MAXVALUE, -}; - -typedef enum gf_mgmt_procnum_ gf_mgmt_procnum; -  enum gf_pmap_procnum {          GF_PMAP_NULL = 0,          GF_PMAP_PORTBYBRICK, @@ -159,19 +119,6 @@ enum gf_cbk_procnum {          GF_CBK_MAXVALUE,  }; -enum glusterd_mgmt_procnum { -        GLUSTERD_MGMT_NULL,    /* 0 */ -        GLUSTERD_MGMT_PROBE_QUERY, -        GLUSTERD_MGMT_FRIEND_ADD, -        GLUSTERD_MGMT_CLUSTER_LOCK, -        GLUSTERD_MGMT_CLUSTER_UNLOCK, -        GLUSTERD_MGMT_STAGE_OP, -        GLUSTERD_MGMT_COMMIT_OP, -        GLUSTERD_MGMT_FRIEND_REMOVE, -        GLUSTERD_MGMT_FRIEND_UPDATE, -        GLUSTERD_MGMT_MAXVALUE, -}; -  enum gluster_cli_procnum {          GLUSTER_CLI_NULL,    /* 0 */          GLUSTER_CLI_PROBE, @@ -189,8 +136,6 @@ enum gluster_cli_procnum {          GLUSTER_CLI_ADD_BRICK,          GLUSTER_CLI_REMOVE_BRICK,          GLUSTER_CLI_REPLACE_BRICK, -        GLUSTER_CLI_LOG_FILENAME, -        GLUSTER_CLI_LOG_LOCATE,          GLUSTER_CLI_LOG_ROTATE,          GLUSTER_CLI_GETSPEC,          GLUSTER_CLI_PMAP_PORTBYBRICK, @@ -202,7 +147,6 @@ enum gluster_cli_procnum {          GLUSTER_CLI_QUOTA,          GLUSTER_CLI_TOP_VOLUME,          GLUSTER_CLI_GETWD, -        GLUSTER_CLI_LOG_LEVEL,          GLUSTER_CLI_STATUS_VOLUME,          GLUSTER_CLI_MOUNT,          GLUSTER_CLI_UMOUNT, @@ -211,30 +155,32 @@ enum gluster_cli_procnum {          GLUSTER_CLI_MAXVALUE,  }; -enum gf_brick_procnum { -        GF_BRICK_NULL = 0, -        GF_BRICK_TERMINATE = 1, -        GF_BRICK_XLATOR_INFO = 2, -        GF_BRICK_XLATOR_HEAL = 3, -        GF_BRICK_MAX_VALUE +enum glusterd_mgmt_procnum { +        GLUSTERD_MGMT_NULL,    /* 0 */ +        GLUSTERD_MGMT_CLUSTER_LOCK, +        GLUSTERD_MGMT_CLUSTER_UNLOCK, +        GLUSTERD_MGMT_STAGE_OP, +        GLUSTERD_MGMT_COMMIT_OP, +        GLUSTERD_MGMT_MAXVALUE,  }; +enum glusterd_friend_procnum { +        GLUSTERD_FRIEND_NULL,    /* 0 */ +        GLUSTERD_PROBE_QUERY, +        GLUSTERD_FRIEND_ADD, +        GLUSTERD_FRIEND_REMOVE, +        GLUSTERD_FRIEND_UPDATE, +        GLUSTERD_FRIEND_MAXVALUE, +}; -#define GLUSTER3_1_FOP_PROGRAM   1298437 /* Completely random */ -#define GLUSTER3_1_FOP_VERSION   310 /* 3.1.0 */ -#define GLUSTER3_1_FOP_PROCCNT   GFS3_OP_MAXVALUE - -#define GLUSTERD1_MGMT_PROGRAM   1298433 /* Completely random */ -#define GLUSTERD1_MGMT_VERSION   1   /* 0.0.1 */ -#define GLUSTERD1_MGMT_PROCCNT   GD_MGMT_MAXVALUE - -#define GD_MGMT_PROGRAM          1238433 /* Completely random */ -#define GD_MGMT_VERSION          1   /* 0.0.1 */ -#define GD_MGMT_PROCCNT          GLUSTERD_MGMT_MAXVALUE - -#define GLUSTER_CLI_PROGRAM      1238463 /* Completely random */ -#define GLUSTER_CLI_VERSION      1   /* 0.0.1 */ -#define GLUSTER_CLI_PROCCNT      GLUSTER_CLI_MAXVALUE +enum glusterd_brick_procnum { +        GLUSTERD_BRICK_NULL,    /* 0 */ +        GLUSTERD_BRICK_TERMINATE, +        GLUSTERD_BRICK_XLATOR_INFO, +        GLUSTERD_BRICK_XLATOR_HEAL, +        GLUSTERD_BRICK_OP, +        GLUSTERD_BRICK_MAXVALUE, +};  #define GLUSTER_HNDSK_PROGRAM    14398633 /* Completely random */  #define GLUSTER_HNDSK_VERSION    1   /* 0.0.1 */ @@ -245,10 +191,21 @@ enum gf_brick_procnum {  #define GLUSTER_CBK_PROGRAM      52743234 /* Completely random */  #define GLUSTER_CBK_VERSION      1   /* 0.0.1 */ -#define GLUSTER_HNDSK_PROGRAM    14398633 /* Completely random */ -#define GLUSTER_HNDSK_VERSION    1   /* 0.0.1 */ +#define GLUSTER3_1_FOP_PROGRAM   1298437 /* Completely random */ +#define GLUSTER3_1_FOP_VERSION   310 /* 3.1.0 */ +#define GLUSTER3_1_FOP_PROCCNT   GFS3_OP_MAXVALUE + +/* Second version */ +#define GD_MGMT_PROGRAM          1238433 /* Completely random */ +#define GD_MGMT_VERSION          2   /* 0.0.2 */ + +#define GD_FRIEND_PROGRAM        1238437 /* Completely random */ +#define GD_FRIEND_VERSION        2  /* 0.0.2 */ + +#define GLUSTER_CLI_PROGRAM      1238463 /* Completely random */ +#define GLUSTER_CLI_VERSION      2   /* 0.0.1 */ + +#define GD_BRICK_PROGRAM         4867634 /*Completely random*/ +#define GD_BRICK_VERSION         2 -#define GLUSTERFS_PROGRAM       4867634 /*Completely random*/ -#define GLUSTERFS_VERSION       1 -#define GLUSTERFS_PROCCNT       GF_BRICK_MAX_VALUE  #endif /* !_PROTOCOL_COMMON_H */ diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 04d3525ae39..920bafa5b05 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -2764,10 +2764,6 @@ glusterd_null (rpcsvc_request_t *req)  rpcsvc_actor_t gd_svc_mgmt_actors[] = {          [GLUSTERD_MGMT_NULL]           = { "NULL", GLUSTERD_MGMT_NULL, glusterd_null, NULL, NULL}, -        [GLUSTERD_MGMT_PROBE_QUERY]    = { "PROBE_QUERY", GLUSTERD_MGMT_PROBE_QUERY, glusterd_handle_probe_query, NULL, NULL}, -        [GLUSTERD_MGMT_FRIEND_ADD]     = { "FRIEND_ADD", GLUSTERD_MGMT_FRIEND_ADD, glusterd_handle_incoming_friend_req, NULL, NULL}, -        [GLUSTERD_MGMT_FRIEND_REMOVE]  = { "FRIEND_REMOVE", GLUSTERD_MGMT_FRIEND_REMOVE, glusterd_handle_incoming_unfriend_req, NULL, NULL}, -        [GLUSTERD_MGMT_FRIEND_UPDATE]  = { "FRIEND_UPDATE", GLUSTERD_MGMT_FRIEND_UPDATE, glusterd_handle_friend_update, NULL, NULL},          [GLUSTERD_MGMT_CLUSTER_LOCK]   = { "CLUSTER_LOCK", GLUSTERD_MGMT_CLUSTER_LOCK, glusterd_handle_cluster_lock, NULL, NULL},          [GLUSTERD_MGMT_CLUSTER_UNLOCK] = { "CLUSTER_UNLOCK", GLUSTERD_MGMT_CLUSTER_UNLOCK, glusterd_handle_cluster_unlock, NULL, NULL},          [GLUSTERD_MGMT_STAGE_OP]       = { "STAGE_OP", GLUSTERD_MGMT_STAGE_OP, glusterd_handle_stage_op, NULL, NULL}, @@ -2778,10 +2774,28 @@ struct rpcsvc_program gd_svc_mgmt_prog = {          .progname  = "GlusterD svc mgmt",          .prognum   = GD_MGMT_PROGRAM,          .progver   = GD_MGMT_VERSION, -        .numactors = GD_MGMT_PROCCNT, +        .numactors = GLUSTERD_MGMT_MAXVALUE,          .actors    = gd_svc_mgmt_actors,  }; +rpcsvc_actor_t gd_svc_peer_actors[] = { +        [GLUSTERD_FRIEND_NULL]    = { "NULL", GLUSTERD_MGMT_NULL, glusterd_null, NULL, NULL}, +        [GLUSTERD_PROBE_QUERY]    = { "PROBE_QUERY", GLUSTERD_PROBE_QUERY, glusterd_handle_probe_query, NULL, NULL}, +        [GLUSTERD_FRIEND_ADD]     = { "FRIEND_ADD", GLUSTERD_FRIEND_ADD, glusterd_handle_incoming_friend_req, NULL, NULL}, +        [GLUSTERD_FRIEND_REMOVE]  = { "FRIEND_REMOVE", GLUSTERD_FRIEND_REMOVE, glusterd_handle_incoming_unfriend_req, NULL, NULL}, +        [GLUSTERD_FRIEND_UPDATE]  = { "FRIEND_UPDATE", GLUSTERD_FRIEND_UPDATE, glusterd_handle_friend_update, NULL, NULL}, +}; + +struct rpcsvc_program gd_svc_peer_prog = { +        .progname  = "GlusterD svc peer", +        .prognum   = GD_FRIEND_PROGRAM, +        .progver   = GD_FRIEND_VERSION, +        .numactors = GLUSTERD_FRIEND_MAXVALUE, +        .actors    = gd_svc_peer_actors, +}; + + +  rpcsvc_actor_t gd_svc_cli_actors[] = {          [GLUSTER_CLI_PROBE]         = { "CLI_PROBE", GLUSTER_CLI_PROBE, glusterd_handle_cli_probe, NULL, NULL},          [GLUSTER_CLI_CREATE_VOLUME] = { "CLI_CREATE_VOLUME", GLUSTER_CLI_CREATE_VOLUME, glusterd_handle_create_volume, NULL,NULL}, @@ -2795,8 +2809,6 @@ rpcsvc_actor_t gd_svc_cli_actors[] = {          [GLUSTER_CLI_ADD_BRICK]     = { "ADD_BRICK", GLUSTER_CLI_ADD_BRICK, glusterd_handle_add_brick, NULL, NULL},          [GLUSTER_CLI_REPLACE_BRICK] = { "REPLACE_BRICK", GLUSTER_CLI_REPLACE_BRICK, glusterd_handle_replace_brick, NULL, NULL},          [GLUSTER_CLI_REMOVE_BRICK]  = { "REMOVE_BRICK", GLUSTER_CLI_REMOVE_BRICK, glusterd_handle_remove_brick, NULL, NULL}, -        [GLUSTER_CLI_LOG_FILENAME]  = { "LOG FILENAME", GLUSTER_CLI_LOG_FILENAME, glusterd_handle_log_filename, NULL, NULL}, -        [GLUSTER_CLI_LOG_LOCATE]    = { "LOG LOCATE", GLUSTER_CLI_LOG_LOCATE, glusterd_handle_log_locate, NULL, NULL},          [GLUSTER_CLI_LOG_ROTATE]    = { "LOG FILENAME", GLUSTER_CLI_LOG_ROTATE, glusterd_handle_log_rotate, NULL, NULL},          [GLUSTER_CLI_SET_VOLUME]    = { "SET_VOLUME", GLUSTER_CLI_SET_VOLUME, glusterd_handle_set_volume, NULL, NULL},          [GLUSTER_CLI_SYNC_VOLUME]   = { "SYNC_VOLUME", GLUSTER_CLI_SYNC_VOLUME, glusterd_handle_sync_volume, NULL, NULL}, @@ -2805,7 +2817,6 @@ rpcsvc_actor_t gd_svc_cli_actors[] = {          [GLUSTER_CLI_GSYNC_SET]     = { "GSYNC_SET", GLUSTER_CLI_GSYNC_SET, glusterd_handle_gsync_set, NULL, NULL},          [GLUSTER_CLI_PROFILE_VOLUME] = { "STATS_VOLUME", GLUSTER_CLI_PROFILE_VOLUME, glusterd_handle_cli_profile_volume, NULL, NULL},          [GLUSTER_CLI_QUOTA]         = { "QUOTA", GLUSTER_CLI_QUOTA, glusterd_handle_quota, NULL, NULL}, -        [GLUSTER_CLI_LOG_LEVEL]     = {"LOG_LEVEL", GLUSTER_CLI_LOG_LEVEL, glusterd_handle_log_level, NULL, NULL},          [GLUSTER_CLI_GETWD]         = { "GETWD", GLUSTER_CLI_GETWD, glusterd_handle_getwd, NULL, NULL},          [GLUSTER_CLI_STATUS_VOLUME]  = {"STATUS_VOLUME", GLUSTER_CLI_STATUS_VOLUME, glusterd_handle_status_volume, NULL, NULL},          [GLUSTER_CLI_MOUNT]         = { "MOUNT", GLUSTER_CLI_MOUNT, glusterd_handle_mount, NULL, NULL}, @@ -2818,51 +2829,6 @@ struct rpcsvc_program gd_svc_cli_prog = {          .progname  = "GlusterD svc cli",          .prognum   = GLUSTER_CLI_PROGRAM,          .progver   = GLUSTER_CLI_VERSION, -        .numactors = GLUSTER_CLI_PROCCNT, +        .numactors = GLUSTER_CLI_MAXVALUE,          .actors    = gd_svc_cli_actors,  }; - -/* Keeping below programs for backword compatibility */ - -rpcsvc_actor_t glusterd1_mgmt_actors[] = { -        [GD_MGMT_NULL]        = { "NULL",       GD_MGMT_NULL, glusterd_null, NULL, NULL}, -        [GD_MGMT_PROBE_QUERY] = { "PROBE_QUERY", GD_MGMT_PROBE_QUERY, glusterd_handle_probe_query, NULL, NULL}, -        [GD_MGMT_FRIEND_ADD] = { "FRIEND_ADD", GD_MGMT_FRIEND_ADD, glusterd_handle_incoming_friend_req, NULL, NULL}, -        [GD_MGMT_FRIEND_REMOVE] = { "FRIEND_REMOVE", GD_MGMT_FRIEND_REMOVE, glusterd_handle_incoming_unfriend_req, NULL, NULL}, -        [GD_MGMT_FRIEND_UPDATE] = { "FRIEND_UPDATE", GD_MGMT_FRIEND_UPDATE, glusterd_handle_friend_update, NULL, NULL}, -        [GD_MGMT_CLUSTER_LOCK] = { "CLUSTER_LOCK", GD_MGMT_CLUSTER_LOCK, glusterd_handle_cluster_lock, NULL, NULL}, -        [GD_MGMT_CLUSTER_UNLOCK] = { "CLUSTER_UNLOCK", GD_MGMT_CLUSTER_UNLOCK, glusterd_handle_cluster_unlock, NULL, NULL}, -        [GD_MGMT_STAGE_OP] = { "STAGE_OP", GD_MGMT_STAGE_OP, glusterd_handle_stage_op, NULL, NULL}, -        [GD_MGMT_COMMIT_OP] = { "COMMIT_OP", GD_MGMT_COMMIT_OP, glusterd_handle_commit_op, NULL, NULL}, -        [GD_MGMT_CLI_PROBE] = { "CLI_PROBE", GD_MGMT_CLI_PROBE, glusterd_handle_cli_probe, NULL, NULL}, -        [GD_MGMT_CLI_CREATE_VOLUME] = { "CLI_CREATE_VOLUME", GD_MGMT_CLI_CREATE_VOLUME, glusterd_handle_create_volume, NULL,NULL}, -        [GD_MGMT_CLI_DEFRAG_VOLUME] = { "CLI_DEFRAG_VOLUME", GD_MGMT_CLI_DEFRAG_VOLUME, glusterd_handle_defrag_volume, NULL,NULL}, -        [GD_MGMT_CLI_DEPROBE] = { "FRIEND_REMOVE", GD_MGMT_CLI_DEPROBE, glusterd_handle_cli_deprobe, NULL, NULL}, -        [GD_MGMT_CLI_LIST_FRIENDS] = { "LIST_FRIENDS", GD_MGMT_CLI_LIST_FRIENDS, glusterd_handle_cli_list_friends, NULL, NULL}, -        [GD_MGMT_CLI_START_VOLUME] = { "START_VOLUME", GD_MGMT_CLI_START_VOLUME, glusterd_handle_cli_start_volume, NULL, NULL}, -        [GD_MGMT_CLI_STOP_VOLUME] = { "STOP_VOLUME", GD_MGMT_CLI_STOP_VOLUME, glusterd_handle_cli_stop_volume, NULL, NULL}, -        [GD_MGMT_CLI_DELETE_VOLUME] = { "DELETE_VOLUME", GD_MGMT_CLI_DELETE_VOLUME, glusterd_handle_cli_delete_volume, NULL, NULL}, -        [GD_MGMT_CLI_GET_VOLUME] = { "GET_VOLUME", GD_MGMT_CLI_GET_VOLUME, glusterd_handle_cli_get_volume, NULL, NULL}, -        [GD_MGMT_CLI_ADD_BRICK] = { "ADD_BRICK", GD_MGMT_CLI_ADD_BRICK, glusterd_handle_add_brick, NULL, NULL}, -        [GD_MGMT_CLI_REPLACE_BRICK] = { "REPLACE_BRICK", GD_MGMT_CLI_REPLACE_BRICK, glusterd_handle_replace_brick, NULL, NULL}, -        [GD_MGMT_CLI_REMOVE_BRICK] = { "REMOVE_BRICK", GD_MGMT_CLI_REMOVE_BRICK, glusterd_handle_remove_brick, NULL, NULL}, -        [GD_MGMT_CLI_LOG_FILENAME] = { "LOG FILENAME", GD_MGMT_CLI_LOG_FILENAME, glusterd_handle_log_filename, NULL, NULL}, -        [GD_MGMT_CLI_LOG_LOCATE] = { "LOG LOCATE", GD_MGMT_CLI_LOG_LOCATE, glusterd_handle_log_locate, NULL, NULL}, -        [GD_MGMT_CLI_LOG_ROTATE] = { "LOG FILENAME", GD_MGMT_CLI_LOG_ROTATE, glusterd_handle_log_rotate, NULL, NULL}, -        [GD_MGMT_CLI_SET_VOLUME] = { "SET_VOLUME", GD_MGMT_CLI_SET_VOLUME, glusterd_handle_set_volume, NULL, NULL}, -        [GD_MGMT_CLI_SYNC_VOLUME] = { "SYNC_VOLUME", GD_MGMT_CLI_SYNC_VOLUME, glusterd_handle_sync_volume, NULL, NULL}, -        [GD_MGMT_CLI_RESET_VOLUME] = { "RESET_VOLUME", GD_MGMT_CLI_RESET_VOLUME, glusterd_handle_reset_volume, NULL, NULL}, -        [GD_MGMT_CLI_FSM_LOG] = { "FSM_LOG", GD_MGMT_CLI_FSM_LOG, glusterd_handle_fsm_log, NULL, NULL}, -        [GD_MGMT_CLI_GSYNC_SET] = {"GSYNC_SET", GD_MGMT_CLI_GSYNC_SET, glusterd_handle_gsync_set, NULL, NULL}, -        [GD_MGMT_CLI_PROFILE_VOLUME] = { "STATS_VOLUME", GD_MGMT_CLI_PROFILE_VOLUME, glusterd_handle_cli_profile_volume, NULL, NULL}, -        [GD_MGMT_CLI_LOG_LEVEL] = {"LOG_LEVEL", GD_MGMT_CLI_LOG_LEVEL, glusterd_handle_log_level, NULL, NULL}, -        [GD_MGMT_CLI_STATUS_VOLUME] = {"STATUS_VOLUME", GD_MGMT_CLI_STATUS_VOLUME, glusterd_handle_status_volume, NULL, NULL} -}; - -struct rpcsvc_program glusterd1_mop_prog = { -        .progname  = "GlusterD0.0.1", -        .prognum   = GLUSTERD1_MGMT_PROGRAM, -        .progver   = GLUSTERD1_MGMT_VERSION, -        .numactors = GLUSTERD1_MGMT_PROCCNT, -        .actors    = glusterd1_mgmt_actors, -}; diff --git a/xlators/mgmt/glusterd/src/glusterd-handshake.c b/xlators/mgmt/glusterd/src/glusterd-handshake.c index 8331a91f669..269c6015a17 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handshake.c +++ b/xlators/mgmt/glusterd/src/glusterd-handshake.c @@ -36,8 +36,8 @@  #include "protocol-common.h"  #include "rpcsvc.h" -extern struct rpc_clnt_program glusterd3_1_mgmt_prog; -extern struct rpc_clnt_program gd_clnt_mgmt_prog; +extern struct rpc_clnt_program gd_peer_prog; +extern struct rpc_clnt_program gd_mgmt_prog;  typedef ssize_t (*gfs_serialize_t) (struct iovec outmsg, void *data); @@ -279,16 +279,14 @@ glusterd_set_clnt_mgmt_program (glusterd_peerinfo_t *peerinfo,          while (trav) {                  /* Select 'programs' */ -                if ((gd_clnt_mgmt_prog.prognum == trav->prognum) && -                    (gd_clnt_mgmt_prog.progver == trav->progver)) { -                        peerinfo->mgmt = &gd_clnt_mgmt_prog; +                if ((gd_mgmt_prog.prognum == trav->prognum) && +                    (gd_mgmt_prog.progver == trav->progver)) { +                        peerinfo->mgmt = &gd_mgmt_prog;                          ret = 0; -                        /* Break here, as this gets higher priority */ -                        break;                  } -                if ((glusterd3_1_mgmt_prog.prognum == trav->prognum) && -                    (glusterd3_1_mgmt_prog.progver == trav->progver)) { -                        peerinfo->mgmt = &glusterd3_1_mgmt_prog; +                if ((gd_peer_prog.prognum == trav->prognum) && +                    (gd_peer_prog.progver == trav->progver)) { +                        peerinfo->peer = &gd_peer_prog;                          ret = 0;                  }                  if (ret) { @@ -300,12 +298,18 @@ glusterd_set_clnt_mgmt_program (glusterd_peerinfo_t *peerinfo,                  trav = trav->next;          } -        if (!ret && peerinfo->mgmt) { +        if (peerinfo->mgmt) {                  gf_log ("", GF_LOG_INFO,                          "Using Program %s, Num (%d), Version (%d)",                          peerinfo->mgmt->progname, peerinfo->mgmt->prognum,                          peerinfo->mgmt->progver);          } +        if (peerinfo->peer) { +                gf_log ("", GF_LOG_INFO, +                        "Using Program %s, Num (%d), Version (%d)", +                        peerinfo->peer->progname, peerinfo->peer->prognum, +                        peerinfo->peer->progver); +        }  out:          return ret; diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index 4e780c84374..f933bbc37f7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -165,7 +165,7 @@ glusterd_brick_op_build_payload (glusterd_op_t op, glusterd_brickinfo_t *brickin                          gf_log ("", GF_LOG_ERROR, "Out of Memory");                          goto out;                  } -                brick_req->op = GF_BRICK_TERMINATE; +                brick_req->op = GLUSTERD_BRICK_TERMINATE;                  brick_req->name = "";          break;          case GD_OP_PROFILE_VOLUME: @@ -177,7 +177,7 @@ glusterd_brick_op_build_payload (glusterd_op_t op, glusterd_brickinfo_t *brickin                          goto out;                  } -                brick_req->op = GF_BRICK_XLATOR_INFO; +                brick_req->op = GLUSTERD_BRICK_XLATOR_INFO;                  brick_req->name = brickinfo->path;                  break; @@ -188,7 +188,7 @@ glusterd_brick_op_build_payload (glusterd_op_t op, glusterd_brickinfo_t *brickin                  if (!brick_req)                          goto out; -                brick_req->op = GF_BRICK_XLATOR_HEAL; +                brick_req->op = GLUSTERD_BRICK_XLATOR_HEAL;                  brick_req->name = "";          }                  break; @@ -2839,7 +2839,7 @@ glusterd_op_ac_send_brick_op (glusterd_op_sm_event_t *event, void *ctx)                          goto out;          } -        proc = &priv->gfs_mgmt->proctable[GD_MGMT_BRICK_OP]; +        proc = &priv->gfs_mgmt->proctable[GLUSTERD_BRICK_OP];          if (proc->fn) {                  ret = proc->fn (NULL, this, req_ctx);                  if (ret) diff --git a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c index 92be21f9f0f..f6b0908ae9b 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c @@ -45,9 +45,6 @@  extern glusterd_op_info_t opinfo;  int32_t -glusterd3_1_brick_op (call_frame_t *frame, xlator_t *this, -                      void *data); -int32_t  glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,                                 int32_t op_errno, rpcsvc_request_t *req,                                 void *op_ctx, char *op_errstr) @@ -1294,8 +1291,8 @@ glusterd3_1_probe (call_frame_t *frame, xlator_t *this,          req.hostname = gf_strdup (hostname);          req.port = port; -        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->mgmt, -                                       GD_MGMT_PROBE_QUERY, +        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->peer, +                                       GLUSTERD_PROBE_QUERY,                                         NULL, this, glusterd3_1_probe_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_probe_req); @@ -1344,8 +1341,8 @@ glusterd3_1_friend_add (call_frame_t *frame, xlator_t *this,          if (ret)                  goto out; -        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->mgmt, -                                       GD_MGMT_FRIEND_ADD, +        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->peer, +                                       GLUSTERD_FRIEND_ADD,                                         NULL, this, glusterd3_1_friend_add_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_friend_req); @@ -1386,8 +1383,8 @@ glusterd3_1_friend_remove (call_frame_t *frame, xlator_t *this,          uuid_copy (req.uuid, priv->uuid);          req.hostname = peerinfo->hostname;          req.port = peerinfo->port; -        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->mgmt, -                                       GD_MGMT_FRIEND_REMOVE, NULL, +        ret = glusterd_submit_request (peerinfo->rpc, &req, frame, peerinfo->peer, +                                       GLUSTERD_FRIEND_REMOVE, NULL,                                         this, glusterd3_1_friend_remove_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_friend_req); @@ -1432,8 +1429,8 @@ glusterd3_1_friend_update (call_frame_t *frame, xlator_t *this,          dummy_frame = create_frame (this, this->ctx->pool);          ret = glusterd_submit_request (peerinfo->rpc, &req, dummy_frame, -                                       peerinfo->mgmt, -                                       GD_MGMT_FRIEND_UPDATE, NULL, +                                       peerinfo->peer, +                                       GLUSTERD_FRIEND_UPDATE, NULL,                                         this, glusterd3_1_friend_update_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_friend_update); @@ -1470,7 +1467,7 @@ glusterd3_1_cluster_lock (call_frame_t *frame, xlator_t *this,                  goto out;          ret = glusterd_submit_request (peerinfo->rpc, &req, dummy_frame, -                                       peerinfo->mgmt, GD_MGMT_CLUSTER_LOCK, +                                       peerinfo->mgmt, GLUSTERD_MGMT_CLUSTER_LOCK,                                         NULL,                                         this, glusterd3_1_cluster_lock_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_cluster_lock_req); @@ -1504,7 +1501,7 @@ glusterd3_1_cluster_unlock (call_frame_t *frame, xlator_t *this,                  goto out;          ret = glusterd_submit_request (peerinfo->rpc, &req, dummy_frame, -                                       peerinfo->mgmt, GD_MGMT_CLUSTER_UNLOCK, +                                       peerinfo->mgmt, GLUSTERD_MGMT_CLUSTER_UNLOCK,                                         NULL,                                         this, glusterd3_1_cluster_unlock_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_cluster_unlock_req); @@ -1563,7 +1560,7 @@ glusterd3_1_stage_op (call_frame_t *frame, xlator_t *this,                  goto out;          ret = glusterd_submit_request (peerinfo->rpc, &req, dummy_frame, -                                       peerinfo->mgmt, GD_MGMT_STAGE_OP, +                                       peerinfo->mgmt, GLUSTERD_MGMT_STAGE_OP,                                         NULL,                                         this, glusterd3_1_stage_op_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_stage_op_req); @@ -1625,7 +1622,7 @@ glusterd3_1_commit_op (call_frame_t *frame, xlator_t *this,                  goto out;          ret = glusterd_submit_request (peerinfo->rpc, &req, dummy_frame, -                                       peerinfo->mgmt, GD_MGMT_COMMIT_OP, +                                       peerinfo->mgmt, GLUSTERD_MGMT_COMMIT_OP,                                         NULL,                                         this, glusterd3_1_commit_op_cbk,                                         (xdrproc_t)xdr_gd1_mgmt_commit_op_req); @@ -1718,60 +1715,6 @@ out:          return ret;  } - -struct rpc_clnt_procedure glusterd3_1_clnt_mgmt_actors[GD_MGMT_MAXVALUE] = { -        [GD_MGMT_NULL]        = {"NULL", NULL }, -        [GD_MGMT_PROBE_QUERY]  = { "PROBE_QUERY",  glusterd3_1_probe}, -        [GD_MGMT_FRIEND_ADD]  = { "FRIEND_ADD",  glusterd3_1_friend_add }, -        [GD_MGMT_CLUSTER_LOCK] = {"CLUSTER_LOCK", glusterd3_1_cluster_lock}, -        [GD_MGMT_CLUSTER_UNLOCK] = {"CLUSTER_UNLOCK", glusterd3_1_cluster_unlock}, -        [GD_MGMT_STAGE_OP] = {"STAGE_OP", glusterd3_1_stage_op}, -        [GD_MGMT_COMMIT_OP] = {"COMMIT_OP", glusterd3_1_commit_op}, -        [GD_MGMT_FRIEND_REMOVE]  = { "FRIEND_REMOVE",  glusterd3_1_friend_remove}, -        [GD_MGMT_FRIEND_UPDATE]  = { "FRIEND_UPDATE",  glusterd3_1_friend_update}, -}; - -struct rpc_clnt_procedure glusterd3_1_fs_mgmt_actors[GD_MGMT_MAXVALUE] = { -        [GD_MGMT_NULL]        = {"NULL", NULL }, -        [GD_MGMT_BRICK_OP] = {"BRICK_OP", glusterd3_1_brick_op}, -}; - -struct rpc_clnt_program glusterd3_1_mgmt_prog = { -        .progname  = "Mgmt 3.1", -        .prognum   = GLUSTERD1_MGMT_PROGRAM, -        .progver   = GLUSTERD1_MGMT_VERSION, -        .proctable = glusterd3_1_clnt_mgmt_actors, -        .numproc   = GLUSTERD1_MGMT_PROCCNT, -}; - -struct rpc_clnt_procedure gd_clnt_mgmt_actors[GLUSTERD_MGMT_MAXVALUE] = { -        [GLUSTERD_MGMT_NULL]           = {"NULL", NULL }, -        [GLUSTERD_MGMT_PROBE_QUERY]    = {"PROBE_QUERY", glusterd3_1_probe}, -        [GLUSTERD_MGMT_FRIEND_ADD]     = {"FRIEND_ADD", glusterd3_1_friend_add}, -        [GLUSTERD_MGMT_CLUSTER_LOCK]   = {"CLUSTER_LOCK", glusterd3_1_cluster_lock}, -        [GLUSTERD_MGMT_CLUSTER_UNLOCK] = {"CLUSTER_UNLOCK", glusterd3_1_cluster_unlock}, -        [GLUSTERD_MGMT_STAGE_OP]       = {"STAGE_OP", glusterd3_1_stage_op}, -        [GLUSTERD_MGMT_COMMIT_OP]      = {"COMMIT_OP", glusterd3_1_commit_op}, -        [GLUSTERD_MGMT_FRIEND_REMOVE]  = {"FRIEND_REMOVE", glusterd3_1_friend_remove}, -        [GLUSTERD_MGMT_FRIEND_UPDATE]  = {"FRIEND_UPDATE", glusterd3_1_friend_update}, -}; - -struct rpc_clnt_program gd_clnt_mgmt_prog = { -        .progname  = "glusterd clnt mgmt", -        .prognum   = GD_MGMT_PROGRAM, -        .progver   = GD_MGMT_VERSION, -        .numproc   = GD_MGMT_PROCCNT, -        .proctable = gd_clnt_mgmt_actors, -}; - -struct rpc_clnt_program glusterd_glusterfs_3_1_mgmt_prog = { -        .progname  = "GlusterFS Mops", -        .prognum   = GLUSTERFS_PROGRAM, -        .progver   = GLUSTERFS_VERSION, -        .proctable = glusterd3_1_fs_mgmt_actors, -        .numproc   = GLUSTERFS_PROCCNT, -}; -  int32_t  glusterd3_1_brick_op (call_frame_t *frame, xlator_t *this,                        void *data) @@ -1828,7 +1771,7 @@ glusterd3_1_brick_op (call_frame_t *frame, xlator_t *this,                  }                  ret = glusterd_submit_request (rpc, req, dummy_frame, -                                               &glusterd_glusterfs_3_1_mgmt_prog, +                                               priv->gfs_mgmt,                                                 req->op, NULL,                                                 this, glusterd3_1_brick_op_cbk,                                                 (xdrproc_t)xdr_gd1_mgmt_brick_op_req); @@ -1854,3 +1797,49 @@ out:          gf_log ("glusterd", GF_LOG_DEBUG, "Returning %d", ret);          return ret;  } + +struct rpc_clnt_procedure gd_brick_actors[GLUSTERD_BRICK_MAXVALUE] = { +        [GLUSTERD_BRICK_NULL] = {"NULL", NULL }, +        [GLUSTERD_BRICK_OP]   = {"BRICK_OP", glusterd3_1_brick_op}, +}; + +struct rpc_clnt_procedure gd_peer_actors[GLUSTERD_FRIEND_MAXVALUE] = { +        [GLUSTERD_FRIEND_NULL]   = {"NULL", NULL }, +        [GLUSTERD_PROBE_QUERY]   = {"PROBE_QUERY", glusterd3_1_probe}, +        [GLUSTERD_FRIEND_ADD]    = {"FRIEND_ADD", glusterd3_1_friend_add}, +        [GLUSTERD_FRIEND_REMOVE] = {"FRIEND_REMOVE", glusterd3_1_friend_remove}, +        [GLUSTERD_FRIEND_UPDATE] = {"FRIEND_UPDATE", glusterd3_1_friend_update}, +}; + +struct rpc_clnt_procedure gd_mgmt_actors[GLUSTERD_MGMT_MAXVALUE] = { +        [GLUSTERD_MGMT_NULL]           = {"NULL", NULL }, +        [GLUSTERD_MGMT_CLUSTER_LOCK]   = {"CLUSTER_LOCK", glusterd3_1_cluster_lock}, +        [GLUSTERD_MGMT_CLUSTER_UNLOCK] = {"CLUSTER_UNLOCK", glusterd3_1_cluster_unlock}, +        [GLUSTERD_MGMT_STAGE_OP]       = {"STAGE_OP", glusterd3_1_stage_op}, +        [GLUSTERD_MGMT_COMMIT_OP]      = {"COMMIT_OP", glusterd3_1_commit_op}, +}; + +struct rpc_clnt_program gd_mgmt_prog = { +        .progname  = "glusterd mgmt", +        .prognum   = GD_MGMT_PROGRAM, +        .progver   = GD_MGMT_VERSION, +        .proctable = gd_mgmt_actors, +        .numproc   = GLUSTERD_MGMT_MAXVALUE, +}; + +struct rpc_clnt_program gd_brick_prog = { +        .progname  = "brick operations", +        .prognum   = GD_BRICK_PROGRAM, +        .progver   = GD_BRICK_VERSION, +        .proctable = gd_brick_actors, +        .numproc   = GLUSTERD_BRICK_MAXVALUE, +}; + +struct rpc_clnt_program gd_peer_prog = { +        .progname  = "Peer mgmt", +        .prognum   = GD_FRIEND_PROGRAM, +        .progver   = GD_FRIEND_VERSION, +        .proctable = gd_peer_actors, +        .numproc   = GLUSTERD_FRIEND_MAXVALUE, +}; + diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.c b/xlators/mgmt/glusterd/src/glusterd-sm.c index af054c9aebd..2518ee0d496 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-sm.c @@ -168,7 +168,7 @@ glusterd_broadcast_friend_delete (char *hostname, uuid_t uuid)                  goto out;          list_for_each_entry (peerinfo, &priv->peers, uuid_list) { -                if (!peerinfo->connected || !peerinfo->mgmt) +                if (!peerinfo->connected || !peerinfo->peer)                          continue;                  ret = dict_set_static_ptr (friends, "peerinfo", peerinfo); @@ -177,7 +177,7 @@ glusterd_broadcast_friend_delete (char *hostname, uuid_t uuid)                          goto out;                  } -                proc = &peerinfo->mgmt->proctable[GLUSTERD_MGMT_FRIEND_UPDATE]; +                proc = &peerinfo->peer->proctable[GLUSTERD_FRIEND_UPDATE];                  if (proc->fn) {                          ret = proc->fn (NULL, this, friends);                  } @@ -286,9 +286,9 @@ glusterd_ac_friend_add (glusterd_friend_sm_event_t *event, void *ctx)          GF_ASSERT (conf); -        if (!peerinfo->mgmt) +        if (!peerinfo->peer)                  goto out; -        proc = &peerinfo->mgmt->proctable[GLUSTERD_MGMT_FRIEND_ADD]; +        proc = &peerinfo->peer->proctable[GLUSTERD_FRIEND_ADD];          if (proc->fn) {                  frame = create_frame (this, this->ctx->pool);                  if (!frame) { @@ -335,9 +335,9 @@ glusterd_ac_friend_probe (glusterd_friend_sm_event_t *event, void *ctx)                  goto out;          } -        if (!peerinfo->mgmt) +        if (!peerinfo->peer)                  goto out; -        proc = &peerinfo->mgmt->proctable[GLUSTERD_MGMT_PROBE_QUERY]; +        proc = &peerinfo->peer->proctable[GLUSTERD_PROBE_QUERY];          if (proc->fn) {                  frame = create_frame (this, this->ctx->pool);                  if (!frame) { @@ -426,9 +426,9 @@ glusterd_ac_send_friend_remove_req (glusterd_friend_sm_event_t *event,                  goto out;          } -        if (!peerinfo->mgmt) +        if (!peerinfo->peer)                  goto out; -        proc = &peerinfo->mgmt->proctable[GLUSTERD_MGMT_FRIEND_REMOVE]; +        proc = &peerinfo->peer->proctable[GLUSTERD_FRIEND_REMOVE];          if (proc->fn) {                  frame = create_frame (this, this->ctx->pool);                  if (!frame) { @@ -497,7 +497,7 @@ glusterd_ac_send_friend_update (glusterd_friend_sm_event_t *event, void *ctx)                  goto out;          list_for_each_entry (peerinfo, &priv->peers, uuid_list) { -                if (!peerinfo->connected || !peerinfo->mgmt) +                if (!peerinfo->connected || !peerinfo->peer)                          continue;                  ret = dict_set_static_ptr (friends, "peerinfo", peerinfo); @@ -506,7 +506,7 @@ glusterd_ac_send_friend_update (glusterd_friend_sm_event_t *event, void *ctx)                          goto out;                  } -                proc = &peerinfo->mgmt->proctable[GLUSTERD_MGMT_FRIEND_UPDATE]; +                proc = &peerinfo->peer->proctable[GLUSTERD_FRIEND_UPDATE];                  if (proc->fn) {                          ret = proc->fn (NULL, this, friends);                  } diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.h b/xlators/mgmt/glusterd/src/glusterd-sm.h index 465ac0105db..7baaf023602 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.h +++ b/xlators/mgmt/glusterd/src/glusterd-sm.h @@ -97,6 +97,7 @@ struct glusterd_peerinfo_ {          struct list_head                op_peers_list;          struct rpc_clnt                 *rpc;          rpc_clnt_prog_t                 *mgmt; +        rpc_clnt_prog_t                 *peer;          int                             connected;          glusterd_store_handle_t         *shandle;          glusterd_sm_tr_log_t            sm_log; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index 83bbd1b2238..b7e155314c3 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -51,13 +51,13 @@  #include "glusterd-mountbroker.h"  static uuid_t glusterd_uuid; -extern struct rpcsvc_program glusterd1_mop_prog; -extern struct rpcsvc_program gd_svc_mgmt_prog; -extern struct rpcsvc_program gd_svc_cli_prog;  extern struct rpcsvc_program gluster_handshake_prog;  extern struct rpcsvc_program gluster_pmap_prog;  extern glusterd_op_info_t opinfo; -extern struct rpc_clnt_program glusterd_glusterfs_3_1_mgmt_prog; +extern struct rpcsvc_program gd_svc_mgmt_prog; +extern struct rpcsvc_program gd_svc_peer_prog; +extern struct rpcsvc_program gd_svc_cli_prog; +extern struct rpc_clnt_program gd_brick_prog;  rpcsvc_cbk_program_t glusterd_cbk_prog = {          .progname  = "Gluster Callback", @@ -892,27 +892,27 @@ init (xlator_t *this)                  goto out;          } -        ret = glusterd_program_register (this, rpc, &glusterd1_mop_prog); +        ret = glusterd_program_register (this, rpc, &gd_svc_peer_prog);          if (ret) {                  goto out;          }          ret = glusterd_program_register (this, rpc, &gd_svc_cli_prog);          if (ret) { -                rpcsvc_program_unregister (rpc, &glusterd1_mop_prog); +                rpcsvc_program_unregister (rpc, &gd_svc_peer_prog);                  goto out;          }          ret = glusterd_program_register (this, rpc, &gd_svc_mgmt_prog);          if (ret) { -                rpcsvc_program_unregister (rpc, &glusterd1_mop_prog); +                rpcsvc_program_unregister (rpc, &gd_svc_peer_prog);                  rpcsvc_program_unregister (rpc, &gd_svc_cli_prog);                  goto out;          }          ret = glusterd_program_register (this, rpc, &gluster_pmap_prog);          if (ret) { -                rpcsvc_program_unregister (rpc, &glusterd1_mop_prog); +                rpcsvc_program_unregister (rpc, &gd_svc_peer_prog);                  rpcsvc_program_unregister (rpc, &gd_svc_cli_prog);                  rpcsvc_program_unregister (rpc, &gd_svc_mgmt_prog);                  goto out; @@ -920,7 +920,7 @@ init (xlator_t *this)          ret = glusterd_program_register (this, rpc, &gluster_handshake_prog);          if (ret) { -                rpcsvc_program_unregister (rpc, &glusterd1_mop_prog); +                rpcsvc_program_unregister (rpc, &gd_svc_peer_prog);                  rpcsvc_program_unregister (rpc, &gluster_pmap_prog);                  rpcsvc_program_unregister (rpc, &gd_svc_cli_prog);                  rpcsvc_program_unregister (rpc, &gd_svc_mgmt_prog); @@ -938,7 +938,7 @@ init (xlator_t *this)          INIT_LIST_HEAD (&conf->volumes);          pthread_mutex_init (&conf->mutex, NULL);          conf->rpc = rpc; -        conf->gfs_mgmt = &glusterd_glusterfs_3_1_mgmt_prog; +        conf->gfs_mgmt = &gd_brick_prog;          strncpy (conf->workdir, dirname, PATH_MAX);          INIT_LIST_HEAD (&conf->xprt_list);  | 
