From 970b22e377e20408df8646cdc61a968b55c145b1 Mon Sep 17 00:00:00 2001 From: Pranith K Date: Thu, 10 Mar 2011 02:19:20 +0000 Subject: rpc/xdr: Add gluster profile and brick op structures Signed-off-by: Pranith Kumar K Signed-off-by: Vijay Bellur BUG: 1965 (need a cmd to get io-stat details) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1965 --- rpc/xdr/src/cli1-xdr.c | 90 ++++++++++++++++++++++++++++++++------------- rpc/xdr/src/cli1-xdr.h | 84 +++++++++++++++++++++++++++++------------- rpc/xdr/src/cli1-xdr.x | 19 ++++++++++ rpc/xdr/src/cli1.c | 28 ++++++++++++++ rpc/xdr/src/cli1.h | 12 ++++++ rpc/xdr/src/glusterd1-xdr.c | 30 ++++++++++++++- rpc/xdr/src/glusterd1-xdr.h | 31 ++++++++++++++-- rpc/xdr/src/glusterd1-xdr.x | 13 +++++++ rpc/xdr/src/glusterd1.c | 28 ++++++++++++++ rpc/xdr/src/glusterd1.h | 13 +++++++ 10 files changed, 292 insertions(+), 56 deletions(-) (limited to 'rpc') diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c index d9640f5b070..8e9395a52bb 100644 --- a/rpc/xdr/src/cli1-xdr.c +++ b/rpc/xdr/src/cli1-xdr.c @@ -23,7 +23,7 @@ * It was generated using rpcgen. */ -#include "cli1.h" +#include "cli1-xdr.h" #include "compat.h" bool_t @@ -83,9 +83,19 @@ xdr_gf1_cli_op_flags (XDR *xdrs, gf1_cli_op_flags *objp) bool_t xdr_gf1_cli_gsync_set (XDR *xdrs, gf1_cli_gsync_set *objp) { - if (!xdr_enum (xdrs, (enum_t *) objp)) - return FALSE; - return TRUE; + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_stats_op (XDR *xdrs, gf1_cli_stats_op *objp) +{ + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; } bool_t @@ -674,31 +684,59 @@ xdr_gf1_cli_fsm_log_rsp (XDR *xdrs, gf1_cli_fsm_log_rsp *objp) bool_t xdr_gf1_cli_gsync_set_req (XDR *xdrs, gf1_cli_gsync_set_req *objp) { - if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0)) - return FALSE; - return TRUE; + + if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0)) + return FALSE; + return TRUE; } bool_t xdr_gf1_cli_gsync_set_rsp (XDR *xdrs, gf1_cli_gsync_set_rsp *objp) { - if (!xdr_int (xdrs, &objp->op_ret)) - return FALSE; - if (!xdr_int (xdrs, &objp->op_errno)) - return FALSE; - if (!xdr_string (xdrs, &objp->op_errstr, ~0)) - return FALSE; - if (!xdr_int (xdrs, &objp->type)) - return FALSE; - if (!xdr_int (xdrs, &objp->config_type)) - return FALSE; - if (!xdr_string (xdrs, &objp->op_name, ~0)) - return FALSE; - if (!xdr_string (xdrs, &objp->master, ~0)) - return FALSE; - if (!xdr_string (xdrs, &objp->slave, ~0)) - return FALSE; - if (!xdr_string (xdrs, &objp->gsync_prefix, ~0)) - return FALSE; - return TRUE; + + if (!xdr_int (xdrs, &objp->op_ret)) + return FALSE; + if (!xdr_int (xdrs, &objp->op_errno)) + return FALSE; + if (!xdr_string (xdrs, &objp->op_errstr, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->type)) + return FALSE; + if (!xdr_int (xdrs, &objp->config_type)) + return FALSE; + if (!xdr_string (xdrs, &objp->op_name, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->master, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->slave, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->gsync_prefix, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_stats_volume_req (XDR *xdrs, gf1_cli_stats_volume_req *objp) +{ + + if (!xdr_string (xdrs, &objp->volname, ~0)) + return FALSE; + if (!xdr_gf1_cli_stats_op (xdrs, &objp->op)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_stats_volume_rsp (XDR *xdrs, gf1_cli_stats_volume_rsp *objp) +{ + + if (!xdr_int (xdrs, &objp->op_ret)) + return FALSE; + if (!xdr_int (xdrs, &objp->op_errno)) + return FALSE; + if (!xdr_string (xdrs, &objp->op_errstr, ~0)) + return FALSE; + if (!xdr_bytes (xdrs, (char **)&objp->stats_info.stats_info_val, (u_int *) &objp->stats_info.stats_info_len, ~0)) + return FALSE; + return TRUE; } diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 2e37e1bc2bc..0ca38b36b20 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -23,8 +23,8 @@ * It was generated using rpcgen. */ -#ifndef _CLI1_H_RPCGEN -#define _CLI1_H_RPCGEN +#ifndef _CLI1_XDR_H_RPCGEN +#define _CLI1_XDR_H_RPCGEN #include #include "xdr-common.h" @@ -75,17 +75,25 @@ enum gf1_cli_op_flags { typedef enum gf1_cli_op_flags gf1_cli_op_flags; enum gf1_cli_gsync_set { - GF_GSYNC_OPTION_TYPE_NONE = 0, - GF_GSYNC_OPTION_TYPE_START = 1, - GF_GSYNC_OPTION_TYPE_STOP = 2, - GF_GSYNC_OPTION_TYPE_CONFIGURE = 3, - GF_GSYNC_OPTION_TYPE_CONFIG_SET = 4, - GF_GSYNC_OPTION_TYPE_CONFIG_DEL = 5, - GF_GSYNC_OPTION_TYPE_CONFIG_GET = 6, - GF_GSYNC_OPTION_TYPE_CONFIG_GET_ALL = 7, + GF_GSYNC_OPTION_TYPE_NONE = 0, + GF_GSYNC_OPTION_TYPE_START = 1, + GF_GSYNC_OPTION_TYPE_STOP = 2, + GF_GSYNC_OPTION_TYPE_CONFIGURE = 3, + GF_GSYNC_OPTION_TYPE_CONFIG_SET = 4, + GF_GSYNC_OPTION_TYPE_CONFIG_DEL = 5, + GF_GSYNC_OPTION_TYPE_CONFIG_GET = 6, + GF_GSYNC_OPTION_TYPE_CONFIG_GET_ALL = 7, }; typedef enum gf1_cli_gsync_set gf1_cli_gsync_set; +enum gf1_cli_stats_op { + GF_CLI_STATS_NONE = 0, + GF_CLI_STATS_START = 1, + GF_CLI_STATS_STOP = 2, + GF_CLI_STATS_INFO = 3, +}; +typedef enum gf1_cli_stats_op gf1_cli_stats_op; + struct gf1_cli_probe_req { char *hostname; int port; @@ -415,36 +423,54 @@ struct gf1_cli_fsm_log_rsp { typedef struct gf1_cli_fsm_log_rsp gf1_cli_fsm_log_rsp; struct gf1_cli_gsync_set_req { - struct { - u_int dict_len; - char *dict_val; - } dict; + struct { + u_int dict_len; + char *dict_val; + } dict; }; typedef struct gf1_cli_gsync_set_req gf1_cli_gsync_set_req; struct gf1_cli_gsync_set_rsp { - int op_ret; - int op_errno; - char *op_errstr; - int type; - int config_type; - char *op_name; - char *master; - char *slave; - char *gsync_prefix; + int op_ret; + int op_errno; + char *op_errstr; + int type; + int config_type; + char *op_name; + char *master; + char *slave; + char *gsync_prefix; }; typedef struct gf1_cli_gsync_set_rsp gf1_cli_gsync_set_rsp; +struct gf1_cli_stats_volume_req { + char *volname; + gf1_cli_stats_op op; +}; +typedef struct gf1_cli_stats_volume_req gf1_cli_stats_volume_req; + +struct gf1_cli_stats_volume_rsp { + int op_ret; + int op_errno; + char *op_errstr; + struct { + u_int stats_info_len; + char *stats_info_val; + } stats_info; +}; +typedef struct gf1_cli_stats_volume_rsp gf1_cli_stats_volume_rsp; + /* the xdr functions */ #if defined(__STDC__) || defined(__cplusplus) extern bool_t xdr_gf1_cluster_type (XDR *, gf1_cluster_type*); extern bool_t xdr_gf1_cli_replace_op (XDR *, gf1_cli_replace_op*); -extern bool_t xdr_gf1_cli_gsync_set (XDR *, gf1_cli_gsync_set*); extern bool_t xdr_gf1_cli_friends_list (XDR *, gf1_cli_friends_list*); extern bool_t xdr_gf1_cli_get_volume (XDR *, gf1_cli_get_volume*); extern bool_t xdr_gf1_cli_sync_volume (XDR *, gf1_cli_sync_volume*); extern bool_t xdr_gf1_cli_op_flags (XDR *, gf1_cli_op_flags*); +extern bool_t xdr_gf1_cli_gsync_set (XDR *, gf1_cli_gsync_set*); +extern bool_t xdr_gf1_cli_stats_op (XDR *, gf1_cli_stats_op*); extern bool_t xdr_gf1_cli_probe_req (XDR *, gf1_cli_probe_req*); extern bool_t xdr_gf1_cli_probe_rsp (XDR *, gf1_cli_probe_rsp*); extern bool_t xdr_gf1_cli_deprobe_req (XDR *, gf1_cli_deprobe_req*); @@ -488,15 +514,18 @@ extern bool_t xdr_gf1_cli_fsm_log_req (XDR *, gf1_cli_fsm_log_req*); extern bool_t xdr_gf1_cli_fsm_log_rsp (XDR *, gf1_cli_fsm_log_rsp*); extern bool_t xdr_gf1_cli_gsync_set_req (XDR *, gf1_cli_gsync_set_req*); extern bool_t xdr_gf1_cli_gsync_set_rsp (XDR *, gf1_cli_gsync_set_rsp*); +extern bool_t xdr_gf1_cli_stats_volume_req (XDR *, gf1_cli_stats_volume_req*); +extern bool_t xdr_gf1_cli_stats_volume_rsp (XDR *, gf1_cli_stats_volume_rsp*); #else /* K&R C */ extern bool_t xdr_gf1_cluster_type (); extern bool_t xdr_gf1_cli_replace_op (); -extern bool_t xdr_gf1_cli_gsync_set (); extern bool_t xdr_gf1_cli_friends_list (); extern bool_t xdr_gf1_cli_get_volume (); extern bool_t xdr_gf1_cli_sync_volume (); extern bool_t xdr_gf1_cli_op_flags (); +extern bool_t xdr_gf1_cli_gsync_set (); +extern bool_t xdr_gf1_cli_stats_op (); extern bool_t xdr_gf1_cli_probe_req (); extern bool_t xdr_gf1_cli_probe_rsp (); extern bool_t xdr_gf1_cli_deprobe_req (); @@ -540,10 +569,13 @@ extern bool_t xdr_gf1_cli_fsm_log_req (); extern bool_t xdr_gf1_cli_fsm_log_rsp (); extern bool_t xdr_gf1_cli_gsync_set_req (); extern bool_t xdr_gf1_cli_gsync_set_rsp (); +extern bool_t xdr_gf1_cli_stats_volume_req (); +extern bool_t xdr_gf1_cli_stats_volume_rsp (); + #endif /* K&R C */ #ifdef __cplusplus } #endif -#endif /* !_CLI1_H_RPCGEN */ +#endif /* !_CLI1-XDR_H_RPCGEN */ diff --git a/rpc/xdr/src/cli1-xdr.x b/rpc/xdr/src/cli1-xdr.x index c5bd82965b7..61d0b8425ed 100644 --- a/rpc/xdr/src/cli1-xdr.x +++ b/rpc/xdr/src/cli1-xdr.x @@ -43,6 +43,13 @@ enum gf1_cli_gsync_set { GF_GSYNC_OPTION_TYPE_CONFIG_GET_ALL }; +enum gf1_cli_stats_op { + GF_CLI_STATS_NONE = 0, + GF_CLI_STATS_START = 1, + GF_CLI_STATS_STOP = 2, + GF_CLI_STATS_INFO = 3 +}; + struct gf1_cli_probe_req { string hostname<>; int port; @@ -318,3 +325,15 @@ struct gf1_cli_gsync_set_rsp { string slave<>; string gsync_prefix<>; }; + +struct gf1_cli_stats_volume_req { + string volname<>; + gf1_cli_stats_op op; +}; + +struct gf1_cli_stats_volume_rsp { + int op_ret; + int op_errno; + string op_errstr<>; + opaque stats_info<>; +}; diff --git a/rpc/xdr/src/cli1.c b/rpc/xdr/src/cli1.c index db678267803..df77c6f7af0 100644 --- a/rpc/xdr/src/cli1.c +++ b/rpc/xdr/src/cli1.c @@ -654,3 +654,31 @@ gf_xdr_from_cli_fsm_log_rsp (struct iovec outmsg, void *args) return xdr_serialize_generic (outmsg, (void *)args, (xdrproc_t)xdr_gf1_cli_fsm_log_rsp); } + +ssize_t +gf_xdr_to_cli_stats_volume_req (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_stats_volume_req); +} + +ssize_t +gf_xdr_from_cli_stats_volume_req (struct iovec outmsg, void *args) +{ + return xdr_serialize_generic (outmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_stats_volume_req); +} + +ssize_t +gf_xdr_to_cli_stats_volume_rsp (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_stats_volume_rsp); +} + +ssize_t +gf_xdr_from_cli_stats_volume_rsp (struct iovec outmsg, void *args) +{ + return xdr_serialize_generic (outmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_stats_volume_rsp); +} diff --git a/rpc/xdr/src/cli1.h b/rpc/xdr/src/cli1.h index 96b511bfeed..c22c38749dc 100644 --- a/rpc/xdr/src/cli1.h +++ b/rpc/xdr/src/cli1.h @@ -291,4 +291,16 @@ gf_xdr_to_cli_fsm_log_rsp (struct iovec inmsg, void *args); ssize_t gf_xdr_from_cli_fsm_log_rsp (struct iovec outmsg, void *args); + +ssize_t +gf_xdr_to_cli_stats_volume_req (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_from_cli_stats_volume_req (struct iovec outmsg, void *args); + +ssize_t +gf_xdr_to_cli_stats_volume_rsp (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_from_cli_stats_volume_rsp (struct iovec outmsg, void *args); #endif /* !_CLI1_H */ diff --git a/rpc/xdr/src/glusterd1-xdr.c b/rpc/xdr/src/glusterd1-xdr.c index 9f7cd222a28..93cdad767a1 100644 --- a/rpc/xdr/src/glusterd1-xdr.c +++ b/rpc/xdr/src/glusterd1-xdr.c @@ -22,7 +22,7 @@ * It was generated using rpcgen. */ -#include "glusterd1.h" +#include "glusterd1-xdr.h" #include "compat.h" bool_t @@ -377,3 +377,31 @@ xdr_gd1_mgmt_friend_update_rsp (XDR *xdrs, gd1_mgmt_friend_update_rsp *objp) return FALSE; return TRUE; } + +bool_t +xdr_gd1_mgmt_brick_op_req (XDR *xdrs, gd1_mgmt_brick_op_req *objp) +{ + + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->op)) + return FALSE; + if (!xdr_bytes (xdrs, (char **)&objp->input.input_val, (u_int *) &objp->input.input_len, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gd1_mgmt_brick_op_rsp (XDR *xdrs, gd1_mgmt_brick_op_rsp *objp) +{ + + if (!xdr_int (xdrs, &objp->op_ret)) + return FALSE; + if (!xdr_int (xdrs, &objp->op_errno)) + return FALSE; + if (!xdr_bytes (xdrs, (char **)&objp->output.output_val, (u_int *) &objp->output.output_len, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->op_errstr, ~0)) + return FALSE; + return TRUE; +} diff --git a/rpc/xdr/src/glusterd1-xdr.h b/rpc/xdr/src/glusterd1-xdr.h index ca57059d829..45f860b86e5 100644 --- a/rpc/xdr/src/glusterd1-xdr.h +++ b/rpc/xdr/src/glusterd1-xdr.h @@ -23,8 +23,8 @@ * It was generated using rpcgen. */ -#ifndef _GLUSTERD1_H_RPCGEN -#define _GLUSTERD1_H_RPCGEN +#ifndef _GLUSTERD1_XDR_H_RPCGEN +#define _GLUSTERD1_XDR_H_RPCGEN #include @@ -181,6 +181,27 @@ struct gd1_mgmt_friend_update_rsp { }; typedef struct gd1_mgmt_friend_update_rsp gd1_mgmt_friend_update_rsp; +struct gd1_mgmt_brick_op_req { + char *name; + int op; + struct { + u_int input_len; + char *input_val; + } input; +}; +typedef struct gd1_mgmt_brick_op_req gd1_mgmt_brick_op_req; + +struct gd1_mgmt_brick_op_rsp { + int op_ret; + int op_errno; + struct { + u_int output_len; + char *output_val; + } output; + char *op_errstr; +}; +typedef struct gd1_mgmt_brick_op_rsp gd1_mgmt_brick_op_rsp; + /* the xdr functions */ #if defined(__STDC__) || defined(__cplusplus) @@ -201,6 +222,8 @@ extern bool_t xdr_gd1_mgmt_commit_op_req (XDR *, gd1_mgmt_commit_op_req*); extern bool_t xdr_gd1_mgmt_commit_op_rsp (XDR *, gd1_mgmt_commit_op_rsp*); extern bool_t xdr_gd1_mgmt_friend_update (XDR *, gd1_mgmt_friend_update*); extern bool_t xdr_gd1_mgmt_friend_update_rsp (XDR *, gd1_mgmt_friend_update_rsp*); +extern bool_t xdr_gd1_mgmt_brick_op_req (XDR *, gd1_mgmt_brick_op_req*); +extern bool_t xdr_gd1_mgmt_brick_op_rsp (XDR *, gd1_mgmt_brick_op_rsp*); #else /* K&R C */ extern bool_t xdr_glusterd_volume_status (); @@ -220,6 +243,8 @@ extern bool_t xdr_gd1_mgmt_commit_op_req (); extern bool_t xdr_gd1_mgmt_commit_op_rsp (); extern bool_t xdr_gd1_mgmt_friend_update (); extern bool_t xdr_gd1_mgmt_friend_update_rsp (); +extern bool_t xdr_gd1_mgmt_brick_op_req (); +extern bool_t xdr_gd1_mgmt_brick_op_rsp (); #endif /* K&R C */ @@ -227,4 +252,4 @@ extern bool_t xdr_gd1_mgmt_friend_update_rsp (); } #endif -#endif /* !_GLUSTERD1_H_RPCGEN */ +#endif /* !_GLUSTERD1-XDR_H_RPCGEN */ diff --git a/rpc/xdr/src/glusterd1-xdr.x b/rpc/xdr/src/glusterd1-xdr.x index ff436729c28..c30c71e021a 100644 --- a/rpc/xdr/src/glusterd1-xdr.x +++ b/rpc/xdr/src/glusterd1-xdr.x @@ -111,3 +111,16 @@ struct gd1_mgmt_friend_update_rsp { int op_ret; int op_errno; } ; + +struct gd1_mgmt_brick_op_req { + string name<>; + int op; + opaque input<>; +} ; + +struct gd1_mgmt_brick_op_rsp { + int op_ret; + int op_errno; + opaque output<>; + string op_errstr<>; +} ; diff --git a/rpc/xdr/src/glusterd1.c b/rpc/xdr/src/glusterd1.c index b71ddd16ddf..84cc93d1aec 100644 --- a/rpc/xdr/src/glusterd1.c +++ b/rpc/xdr/src/glusterd1.c @@ -232,3 +232,31 @@ gd_xdr_from_mgmt_commit_op_req (struct iovec outmsg, void *req) return xdr_serialize_generic (outmsg, (void *)req, (xdrproc_t)xdr_gd1_mgmt_commit_op_req); } + +ssize_t +gd_xdr_to_mgmt_brick_op_req (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gd1_mgmt_brick_op_req); +} + +ssize_t +gd_xdr_from_mgmt_brick_op_req (struct iovec outmsg, void *req) +{ + return xdr_serialize_generic (outmsg, (void *)req, + (xdrproc_t)xdr_gd1_mgmt_brick_op_req); +} + +ssize_t +gd_xdr_to_mgmt_brick_op_rsp (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gd1_mgmt_brick_op_rsp); +} + +ssize_t +gd_xdr_serialize_mgmt_brick_op_rsp (struct iovec outmsg, void *rsp) +{ + return xdr_serialize_generic (outmsg, (void *)rsp, + (xdrproc_t)xdr_gd1_mgmt_brick_op_rsp); +} diff --git a/rpc/xdr/src/glusterd1.h b/rpc/xdr/src/glusterd1.h index 39493c47622..5c43e580241 100644 --- a/rpc/xdr/src/glusterd1.h +++ b/rpc/xdr/src/glusterd1.h @@ -109,4 +109,17 @@ gd_xdr_serialize_mgmt_friend_update_rsp (struct iovec outmsg, void *rsp); ssize_t gd_xdr_to_mgmt_friend_update_rsp (struct iovec inmsg, void *args); + +ssize_t +gd_xdr_to_mgmt_brick_op_req (struct iovec inmsg, void *args); + +ssize_t +gd_xdr_from_mgmt_brick_op_req (struct iovec outmsg, void *req); + +ssize_t +gd_xdr_to_mgmt_brick_op_rsp (struct iovec inmsg, void *args); + +ssize_t +gd_xdr_serialize_mgmt_brick_op_rsp (struct iovec outmsg, void *rsp); + #endif /* !_MSG_GD_XDR_H */ -- cgit