cli: Fixes related to get brick-replace to work.
Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1187 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1187
This commit is contained in:
parent
667b2496c3
commit
f803fae036
@ -1176,8 +1176,6 @@ gf_cli3_1_replace_brick (call_frame_t *frame, xlator_t *this,
|
||||
gf1_cli_replace_brick_req req = {0,};
|
||||
int ret = 0;
|
||||
dict_t *dict = NULL;
|
||||
char *src_brick = NULL;
|
||||
char *dst_brick = NULL;
|
||||
|
||||
if (!frame || !this || !data) {
|
||||
ret = -1;
|
||||
@ -1197,21 +1195,6 @@ gf_cli3_1_replace_brick (call_frame_t *frame, xlator_t *this,
|
||||
goto out;
|
||||
|
||||
if (GF_REPLACE_OP_START == req.op) {
|
||||
ret = dict_get_str (dict, "src-brick", &src_brick);
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
req.src_brick.src_brick_len = strlen (src_brick);
|
||||
req.src_brick.src_brick_val = src_brick;
|
||||
|
||||
ret = dict_get_str (dict, "src-brick", &dst_brick);
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
req.dst_brick.dst_brick_len = strlen (dst_brick);
|
||||
req.dst_brick.dst_brick_val = dst_brick;
|
||||
}
|
||||
|
||||
ret = cli_submit_request (&req, frame, cli_rpc_prog,
|
||||
@ -1222,12 +1205,12 @@ gf_cli3_1_replace_brick (call_frame_t *frame, xlator_t *this,
|
||||
out:
|
||||
gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret);
|
||||
|
||||
if (req.src_brick.src_brick_val) {
|
||||
GF_FREE (req.src_brick.src_brick_val);
|
||||
if (req.bricks.bricks_val) {
|
||||
GF_FREE (req.bricks.bricks_val);
|
||||
}
|
||||
|
||||
if (req.dst_brick.dst_brick_val) {
|
||||
GF_FREE (req.dst_brick.dst_brick_val);
|
||||
if (req.bricks.bricks_val) {
|
||||
GF_FREE (req.bricks.bricks_val);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -56,14 +56,54 @@ bool_t
|
||||
xdr_gf1_cli_probe_rsp (XDR *xdrs, gf1_cli_probe_rsp *objp)
|
||||
{
|
||||
|
||||
register int32_t *buf;
|
||||
|
||||
if (xdrs->x_op == XDR_ENCODE) {
|
||||
buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
|
||||
if (buf == NULL) {
|
||||
if (!xdr_int (xdrs, &objp->op_ret))
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->op_errno))
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->port))
|
||||
return FALSE;
|
||||
|
||||
} else {
|
||||
IXDR_PUT_LONG(buf, objp->op_ret);
|
||||
IXDR_PUT_LONG(buf, objp->op_errno);
|
||||
IXDR_PUT_LONG(buf, objp->port);
|
||||
}
|
||||
if (!xdr_string (xdrs, &objp->hostname, ~0))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
} else if (xdrs->x_op == XDR_DECODE) {
|
||||
buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
|
||||
if (buf == NULL) {
|
||||
if (!xdr_int (xdrs, &objp->op_ret))
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->op_errno))
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->port))
|
||||
return FALSE;
|
||||
|
||||
} else {
|
||||
objp->op_ret = IXDR_GET_LONG(buf);
|
||||
objp->op_errno = IXDR_GET_LONG(buf);
|
||||
objp->port = IXDR_GET_LONG(buf);
|
||||
}
|
||||
if (!xdr_string (xdrs, &objp->hostname, ~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->hostname, ~0))
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->port))
|
||||
return FALSE;
|
||||
if (!xdr_string (xdrs, &objp->hostname, ~0))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -274,6 +314,8 @@ xdr_gf1_cli_defrag_vol_rsp (XDR *xdrs, gf1_cli_defrag_vol_rsp *objp)
|
||||
return FALSE;
|
||||
if (!xdr_int (xdrs, &objp->op_errno))
|
||||
return FALSE;
|
||||
if (!xdr_string (xdrs, &objp->volname, ~0))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -341,9 +383,7 @@ xdr_gf1_cli_replace_brick_req (XDR *xdrs, gf1_cli_replace_brick_req *objp)
|
||||
return FALSE;
|
||||
if (!xdr_gf1_cli_replace_op (xdrs, &objp->op))
|
||||
return FALSE;
|
||||
if (!xdr_bytes (xdrs, (char **)&objp->src_brick.src_brick_val, (u_int *) &objp->src_brick.src_brick_len, ~0))
|
||||
return FALSE;
|
||||
if (!xdr_bytes (xdrs, (char **)&objp->dst_brick.dst_brick_val, (u_int *) &objp->dst_brick.dst_brick_len, ~0))
|
||||
if (!xdr_bytes (xdrs, (char **)&objp->bricks.bricks_val, (u_int *) &objp->bricks.bricks_len, ~0))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -43,21 +43,21 @@ typedef enum gf1_cli_get_volume gf1_cli_get_volume;
|
||||
|
||||
struct gf1_cli_probe_req {
|
||||
char *hostname;
|
||||
int port;
|
||||
int port;
|
||||
};
|
||||
typedef struct gf1_cli_probe_req gf1_cli_probe_req;
|
||||
|
||||
struct gf1_cli_probe_rsp {
|
||||
int op_ret;
|
||||
int op_errno;
|
||||
int port;
|
||||
char *hostname;
|
||||
int port;
|
||||
};
|
||||
typedef struct gf1_cli_probe_rsp gf1_cli_probe_rsp;
|
||||
|
||||
struct gf1_cli_deprobe_req {
|
||||
char *hostname;
|
||||
int port;
|
||||
int port;
|
||||
};
|
||||
typedef struct gf1_cli_deprobe_req gf1_cli_deprobe_req;
|
||||
|
||||
@ -181,6 +181,7 @@ typedef struct gf1_cli_defrag_vol_req gf1_cli_defrag_vol_req;
|
||||
struct gf1_cli_defrag_vol_rsp {
|
||||
int op_ret;
|
||||
int op_errno;
|
||||
char *volname;
|
||||
};
|
||||
typedef struct gf1_cli_defrag_vol_rsp gf1_cli_defrag_vol_rsp;
|
||||
|
||||
@ -224,13 +225,9 @@ struct gf1_cli_replace_brick_req {
|
||||
char *volname;
|
||||
gf1_cli_replace_op op;
|
||||
struct {
|
||||
u_int src_brick_len;
|
||||
char *src_brick_val;
|
||||
} src_brick;
|
||||
struct {
|
||||
u_int dst_brick_len;
|
||||
char *dst_brick_val;
|
||||
} dst_brick;
|
||||
u_int bricks_len;
|
||||
char *bricks_val;
|
||||
} bricks;
|
||||
};
|
||||
typedef struct gf1_cli_replace_brick_req gf1_cli_replace_brick_req;
|
||||
|
||||
|
@ -23,16 +23,19 @@ enum gf1_cli_get_volume {
|
||||
|
||||
struct gf1_cli_probe_req {
|
||||
string hostname<>;
|
||||
int port;
|
||||
} ;
|
||||
|
||||
struct gf1_cli_probe_rsp {
|
||||
int op_ret;
|
||||
int op_errno;
|
||||
int port;
|
||||
string hostname<>;
|
||||
} ;
|
||||
|
||||
struct gf1_cli_deprobe_req {
|
||||
string hostname<>;
|
||||
int port;
|
||||
} ;
|
||||
|
||||
struct gf1_cli_deprobe_rsp {
|
||||
@ -160,8 +163,7 @@ struct gf1_cli_get_vol_rsp {
|
||||
struct gf1_cli_replace_brick_req {
|
||||
string volname<>;
|
||||
gf1_cli_replace_op op;
|
||||
opaque src_brick<>;
|
||||
opaque dst_brick<>;
|
||||
opaque bricks<>;
|
||||
} ;
|
||||
|
||||
struct gf1_cli_replace_brick_rsp {
|
||||
|
Loading…
x
Reference in New Issue
Block a user