3.2.7-2, BZ 837684, f17 only (fix for compiling with gcc-4.7.x)
This commit is contained in:
parent
c5c3674d92
commit
1d07d5e41f
474
glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch
Normal file
474
glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch
Normal file
@ -0,0 +1,474 @@
|
||||
--- xlators/mgmt/glusterd/src/glusterd-rpc-ops.c
|
||||
+++ xlators/mgmt/glusterd/src/glusterd-rpc-ops.c
|
||||
@@ -51,9 +51,26 @@ 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)
|
||||
{
|
||||
- int32_t ret = -1;
|
||||
- gd_serialize_t sfunc = NULL;
|
||||
- void *cli_rsp = NULL;
|
||||
+ union {
|
||||
+ gf1_cli_create_vol_rsp createv_rsp;
|
||||
+ gf1_cli_start_vol_rsp startv_rsp;
|
||||
+ gf1_cli_stop_vol_rsp stopv_rsp;
|
||||
+ gf1_cli_delete_vol_rsp delv_rsp;
|
||||
+ gf1_cli_defrag_vol_rsp defragv_rsp;
|
||||
+ gf1_cli_set_vol_rsp setv_rsp;
|
||||
+ gf1_cli_reset_vol_rsp resetv_rsp;
|
||||
+ gf1_cli_sync_volume_rsp syncv_rsp;
|
||||
+ gf1_cli_stats_volume_rsp statsv_rsp;
|
||||
+ gf1_cli_add_brick_rsp addb_rsp;
|
||||
+ gf1_cli_remove_brick_rsp rmb_rsp;
|
||||
+ gf1_cli_replace_brick_rsp replb_rsp;
|
||||
+ gf1_cli_log_filename_rsp logfn_rsp;
|
||||
+ gf1_cli_log_rotate_rsp logrot_rsp;
|
||||
+ gf1_cli_gsync_set_rsp gsyncs_rsp;
|
||||
+ gf1_cli_quota_rsp quota_rsp;
|
||||
+ } cli_rsp;
|
||||
+ int32_t ret = -1;
|
||||
+ gd_serialize_t sfunc = NULL;
|
||||
dict_t *ctx = NULL;
|
||||
char *free_ptr = NULL;
|
||||
glusterd_conf_t *conf = NULL;
|
||||
@@ -67,145 +84,103 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
switch (op) {
|
||||
case GD_OP_CREATE_VOLUME:
|
||||
{
|
||||
- gf1_cli_create_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.createv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.createv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.createv_rsp.volname = "";
|
||||
+ cli_rsp.createv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_create_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_START_VOLUME:
|
||||
{
|
||||
- gf1_cli_start_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.startv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.startv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.startv_rsp.volname = "";
|
||||
+ cli_rsp.startv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_start_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_STOP_VOLUME:
|
||||
{
|
||||
- gf1_cli_stop_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.stopv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.stopv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.stopv_rsp.volname = "";
|
||||
+ cli_rsp.stopv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_stop_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_DELETE_VOLUME:
|
||||
{
|
||||
- gf1_cli_delete_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.delv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.delv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.delv_rsp.volname = "";
|
||||
+ cli_rsp.delv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_delete_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_DEFRAG_VOLUME:
|
||||
{
|
||||
- gf1_cli_defrag_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- //rsp.volname = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.defragv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.defragv_rsp.op_errno = op_errno;
|
||||
+ //cli_rsp.defragv_rsp.volname = "";
|
||||
sfunc = gf_xdr_serialize_cli_defrag_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_ADD_BRICK:
|
||||
{
|
||||
- gf1_cli_add_brick_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.addb_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.addb_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.addb_rsp.volname = "";
|
||||
+ cli_rsp.addb_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_add_brick_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_REMOVE_BRICK:
|
||||
{
|
||||
- gf1_cli_remove_brick_rsp rsp = {0,};
|
||||
ctx = op_ctx;
|
||||
if (ctx &&
|
||||
- dict_get_str (ctx, "errstr", &rsp.op_errstr))
|
||||
- rsp.op_errstr = "";
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ dict_get_str (ctx, "errstr", &cli_rsp.rmb_rsp.op_errstr))
|
||||
+ cli_rsp.rmb_rsp.op_errstr = "";
|
||||
+ cli_rsp.rmb_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.rmb_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.rmb_rsp.volname = "";
|
||||
sfunc = gf_xdr_serialize_cli_remove_brick_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_REPLACE_BRICK:
|
||||
{
|
||||
- gf1_cli_replace_brick_rsp rsp = {0,};
|
||||
ctx = op_ctx;
|
||||
if (ctx &&
|
||||
- dict_get_str (ctx, "status-reply", &rsp.status))
|
||||
- rsp.status = "";
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- rsp.volname = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ dict_get_str (ctx, "status-reply", &cli_rsp.replb_rsp.status))
|
||||
+ cli_rsp.replb_rsp.status = "";
|
||||
+ cli_rsp.replb_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.replb_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.replb_rsp.volname = "";
|
||||
+ cli_rsp.replb_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_replace_brick_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_SET_VOLUME:
|
||||
{
|
||||
- gf1_cli_set_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
ctx = op_ctx;
|
||||
-
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
if (ctx) {
|
||||
ret = dict_allocate_and_serialize (ctx,
|
||||
- &rsp.dict.dict_val,
|
||||
- (size_t*)&rsp.dict.dict_len);
|
||||
+ &cli_rsp.setv_rsp.dict.dict_val,
|
||||
+ (size_t*)&cli_rsp.setv_rsp.dict.dict_len);
|
||||
if (ret == 0)
|
||||
- free_ptr = rsp.dict.dict_val;
|
||||
+ free_ptr = cli_rsp.setv_rsp.dict.dict_val;
|
||||
}
|
||||
-
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.setv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.setv_rsp.volname = "";
|
||||
+ cli_rsp.setv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_set_vol_rsp;
|
||||
break;
|
||||
}
|
||||
@@ -213,55 +188,35 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
case GD_OP_RESET_VOLUME:
|
||||
{
|
||||
gf_log ("", GF_LOG_DEBUG, "Return value to CLI");
|
||||
- gf1_cli_reset_vol_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = 1;
|
||||
- rsp.volname = "";
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "Error while resetting options";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.resetv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.resetv_rsp.op_errno = 1;
|
||||
+ cli_rsp.resetv_rsp.volname = "";
|
||||
+ cli_rsp.resetv_rsp.op_errstr = op_errstr ? op_errstr : "Error while resetting options";
|
||||
sfunc = gf_xdr_serialize_cli_reset_vol_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
case GD_OP_LOG_FILENAME:
|
||||
{
|
||||
- gf1_cli_log_filename_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- if (op_errstr)
|
||||
- rsp.errstr = op_errstr;
|
||||
- else
|
||||
- rsp.errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.logfn_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.logfn_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.logfn_rsp.errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_log_filename_rsp;
|
||||
break;
|
||||
}
|
||||
case GD_OP_LOG_ROTATE:
|
||||
{
|
||||
- gf1_cli_log_rotate_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- if (op_errstr)
|
||||
- rsp.errstr = op_errstr;
|
||||
- else
|
||||
- rsp.errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.logrot_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.logrot_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.logrot_rsp.errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_serialize_cli_log_rotate_rsp;
|
||||
break;
|
||||
}
|
||||
case GD_OP_SYNC_VOLUME:
|
||||
{
|
||||
- gf1_cli_sync_volume_rsp rsp = {0,};
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
- cli_rsp = &rsp;
|
||||
+ cli_rsp.syncv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.syncv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.syncv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
sfunc = gf_xdr_from_cli_sync_volume_rsp;
|
||||
break;
|
||||
}
|
||||
@@ -273,72 +228,56 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
char *slave = NULL;
|
||||
char *op_name = NULL;
|
||||
char *subop = NULL;
|
||||
- gf1_cli_gsync_set_rsp rsp = {0,};
|
||||
|
||||
+ cli_rsp.gsyncs_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.gsyncs_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.gsyncs_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
+ cli_rsp.gsyncs_rsp.op_name = "";
|
||||
+ cli_rsp.gsyncs_rsp.subop = "";
|
||||
+ cli_rsp.gsyncs_rsp.master = "";
|
||||
+ cli_rsp.gsyncs_rsp.slave = "";
|
||||
+ cli_rsp.gsyncs_rsp.glusterd_workdir = conf->workdir;
|
||||
+ cli_rsp.gsyncs_rsp.gsync_prefix = GSYNCD_PREFIX;
|
||||
ctx = op_ctx;
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.op_errstr = "";
|
||||
- rsp.op_name = "";
|
||||
- rsp.subop = "";
|
||||
- rsp.master = "";
|
||||
- rsp.slave = "";
|
||||
- rsp.glusterd_workdir = conf->workdir;
|
||||
- rsp.gsync_prefix = GSYNCD_PREFIX;
|
||||
if (ctx) {
|
||||
ret = dict_get_str (ctx, "errstr", &str);
|
||||
if (ret == 0)
|
||||
- rsp.op_errstr = str;
|
||||
+ cli_rsp.gsyncs_rsp.op_errstr = str;
|
||||
ret = dict_get_int32 (ctx, "type", &type);
|
||||
if (ret == 0)
|
||||
- rsp.type = type;
|
||||
+ cli_rsp.gsyncs_rsp.type = type;
|
||||
ret = dict_get_str (ctx, "master", &master);
|
||||
if (ret == 0)
|
||||
- rsp.master = master;
|
||||
+ cli_rsp.gsyncs_rsp.master = master;
|
||||
|
||||
ret = dict_get_str (ctx, "slave", &slave);
|
||||
if (ret == 0)
|
||||
- rsp.slave = slave;
|
||||
+ cli_rsp.gsyncs_rsp.slave = slave;
|
||||
|
||||
if (type == GF_GSYNC_OPTION_TYPE_CONFIG) {
|
||||
if (dict_get_str (ctx, "op_name", &op_name) == 0)
|
||||
- rsp.op_name = op_name;
|
||||
+ cli_rsp.gsyncs_rsp.op_name = op_name;
|
||||
if (dict_get_str (ctx, "subop", &subop) == 0)
|
||||
- rsp.subop = subop;
|
||||
+ cli_rsp.gsyncs_rsp.subop = subop;
|
||||
}
|
||||
|
||||
ret = dict_allocate_and_serialize (ctx,
|
||||
- &rsp.status_dict.status_dict_val,
|
||||
- (size_t*)&rsp.status_dict.status_dict_len);
|
||||
+ &cli_rsp.gsyncs_rsp.status_dict.status_dict_val,
|
||||
+ (size_t*)&cli_rsp.gsyncs_rsp.status_dict.status_dict_len);
|
||||
|
||||
if (ret == 0)
|
||||
- free_ptr = rsp.status_dict.status_dict_val;
|
||||
+ free_ptr = cli_rsp.gsyncs_rsp.status_dict.status_dict_val;
|
||||
|
||||
}
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- cli_rsp = &rsp;
|
||||
sfunc = gf_xdr_serialize_cli_gsync_set_rsp;
|
||||
break;
|
||||
}
|
||||
- case GD_OP_RENAME_VOLUME:
|
||||
- case GD_OP_START_BRICK:
|
||||
- case GD_OP_STOP_BRICK:
|
||||
- case GD_OP_LOG_LOCATE:
|
||||
- {
|
||||
- gf_log ("", GF_LOG_DEBUG, "not supported op %d", op);
|
||||
- break;
|
||||
- }
|
||||
case GD_OP_PROFILE_VOLUME:
|
||||
{
|
||||
- gf1_cli_stats_volume_rsp rsp = {0,};
|
||||
int32_t count = 0;
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
- else
|
||||
- rsp.op_errstr = "";
|
||||
+ cli_rsp.statsv_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.statsv_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.statsv_rsp.op_errstr = op_errstr ? op_errstr : "";
|
||||
ctx = op_ctx;
|
||||
if (dict_get_int32 (ctx, "count", &count)) {
|
||||
ret = dict_set_int32 (ctx, "count", 0);
|
||||
@@ -347,10 +286,9 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
"to set brick count.");
|
||||
}
|
||||
dict_allocate_and_serialize (ctx,
|
||||
- &rsp.stats_info.stats_info_val,
|
||||
- (size_t*)&rsp.stats_info.stats_info_len);
|
||||
- free_ptr = rsp.stats_info.stats_info_val;
|
||||
- cli_rsp = &rsp;
|
||||
+ &cli_rsp.statsv_rsp.stats_info.stats_info_val,
|
||||
+ (size_t*)&cli_rsp.statsv_rsp.stats_info.stats_info_len);
|
||||
+ free_ptr = cli_rsp.statsv_rsp.stats_info.stats_info_val;
|
||||
sfunc = gf_xdr_from_cli_stats_volume_rsp;
|
||||
break;
|
||||
}
|
||||
@@ -360,49 +298,56 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
int32_t type;
|
||||
char *str = NULL;
|
||||
char *errstr = NULL;
|
||||
- gf1_cli_quota_rsp rsp = {0,};
|
||||
|
||||
- rsp.op_ret = op_ret;
|
||||
- rsp.op_errno = op_errno;
|
||||
- rsp.volname = "";
|
||||
+ cli_rsp.quota_rsp.op_ret = op_ret;
|
||||
+ cli_rsp.quota_rsp.op_errno = op_errno;
|
||||
+ cli_rsp.quota_rsp.volname = "";
|
||||
|
||||
ctx = op_ctx;
|
||||
|
||||
if (op_errstr)
|
||||
- rsp.op_errstr = op_errstr;
|
||||
+ cli_rsp.quota_rsp.op_errstr = op_errstr;
|
||||
else {
|
||||
ret = dict_get_str (ctx, "errstr", &errstr);
|
||||
if (ret == 0)
|
||||
- rsp.op_errstr = errstr;
|
||||
+ cli_rsp.quota_rsp.op_errstr = errstr;
|
||||
else
|
||||
- rsp.op_errstr = "";
|
||||
+ cli_rsp.quota_rsp.op_errstr = "";
|
||||
}
|
||||
|
||||
- rsp.limit_list = "";
|
||||
+ cli_rsp.quota_rsp.limit_list = "";
|
||||
|
||||
if (op_ret == 0 && ctx) {
|
||||
ret = dict_get_str (ctx, "volname", &str);
|
||||
if (ret == 0)
|
||||
- rsp.volname = str;
|
||||
+ cli_rsp.quota_rsp.volname = str;
|
||||
|
||||
ret = dict_get_int32 (ctx, "type", &type);
|
||||
if (ret == 0)
|
||||
- rsp.type = type;
|
||||
+ cli_rsp.quota_rsp.type = type;
|
||||
else
|
||||
- rsp.type = 0;
|
||||
+ cli_rsp.quota_rsp.type = 0;
|
||||
|
||||
if (type == GF_QUOTA_OPTION_TYPE_LIST) {
|
||||
ret = dict_get_str (ctx,"limit_list", &str);
|
||||
|
||||
if (ret == 0)
|
||||
- rsp.limit_list = str;
|
||||
+ cli_rsp.quota_rsp.limit_list = str;
|
||||
}
|
||||
}
|
||||
- cli_rsp = &rsp;
|
||||
sfunc = gf_xdr_serialize_cli_quota_rsp;
|
||||
break;
|
||||
}
|
||||
|
||||
+ case GD_OP_RENAME_VOLUME:
|
||||
+ case GD_OP_START_BRICK:
|
||||
+ case GD_OP_STOP_BRICK:
|
||||
+ case GD_OP_LOG_LOCATE:
|
||||
+ {
|
||||
+ gf_log ("", GF_LOG_DEBUG, "not supported op %d", op);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
case GD_OP_NONE:
|
||||
case GD_OP_MAX:
|
||||
{
|
||||
@@ -411,7 +356,7 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret,
|
||||
}
|
||||
}
|
||||
|
||||
- ret = glusterd_submit_reply (req, cli_rsp, NULL, 0, NULL,
|
||||
+ ret = glusterd_submit_reply (req, &cli_rsp, NULL, 0, NULL,
|
||||
sfunc);
|
||||
|
||||
if (free_ptr)
|
583
glusterfs.spec
583
glusterfs.spec
@ -21,29 +21,25 @@
|
||||
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication
|
||||
%{?_without_georeplication:%global _without_georeplication --disable-geo-replication}
|
||||
|
||||
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
|
||||
%global SWIFTVER 1.4.8
|
||||
%global _with_swift true
|
||||
%endif
|
||||
|
||||
Summary: Cluster File System
|
||||
Name: glusterfs
|
||||
Version: 3.3.0
|
||||
Release: 5%{?dist}
|
||||
License: GPLv3+ and (GPLv2 or LGPLv3+)
|
||||
Version: 3.2.7
|
||||
Release: 2%{?dist}
|
||||
License: GPLv3
|
||||
Group: System Environment/Base
|
||||
Vendor: Red Hat
|
||||
URL: http://www.gluster.org//docs/index.php/GlusterFS
|
||||
Source0: http://download.gluster.org/pub/gluster/glusterfs/3.3/%{version}/glusterfs-%{version}.tar.gz
|
||||
Source0: http://download.gluster.org/pub/gluster/glusterfs/3.2/%{version}/glusterfs-%{version}.tar.gz
|
||||
Source1: glusterd.sysconfig
|
||||
Source2: glusterfsd.sysconfig
|
||||
Source3: umount.glusterfs
|
||||
Source4: glusterfs-fuse.logrotate
|
||||
Source5: glusterd.logrotate
|
||||
Source6: glusterfsd.logrotate
|
||||
Patch0: %{name}-3.3.0.libglusterfs.Makefile.patch
|
||||
Patch0: %{name}-3.2.5.libglusterfs.Makefile.patch
|
||||
Patch1: %{name}-3.2.5.configure.ac.patch
|
||||
Patch2: %{name}-3.3.0.cli.cli-rpc-ops.c.patch
|
||||
Patch2: %{name}-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
|
||||
%if ( 0%{?fedora} && 0%{?fedora} < 17 ) || ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
@ -79,18 +75,15 @@ Requires(postun): systemd-units
|
||||
BuildRequires: bison flex
|
||||
BuildRequires: gcc make automake libtool
|
||||
BuildRequires: ncurses-devel readline-devel
|
||||
BuildRequires: libxml2-devel openssl-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: python-ctypes
|
||||
|
||||
Obsoletes: hekafs <= 0.7
|
||||
Obsoletes: %{name}-libs <= 2.0.0
|
||||
Obsoletes: %{name}-common < %{version}-%{release}
|
||||
Obsoletes: %{name}-core < %{version}-%{release}
|
||||
Obsoletes: %{name}-common < 3.1.0
|
||||
Provides: %{name}-libs = %{version}-%{release}
|
||||
Provides: %{name}-common = %{version}-%{release}
|
||||
Provides: %{name}-core = %{version}-%{release}
|
||||
|
||||
|
||||
%description
|
||||
GlusterFS is a clustered file-system capable of scaling to several
|
||||
petabytes. It aggregates various storage bricks over Infiniband RDMA
|
||||
@ -128,9 +121,7 @@ This package provides support to ib-verbs library.
|
||||
%package geo-replication
|
||||
Summary: GlusterFS Geo-replication
|
||||
Group: Applications/File
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-server = %{version}-%{release}
|
||||
Requires: python-ctypes , rsync >= 3.0.0
|
||||
Requires: %{name} = %{version}-%{release} , python-ctypes , rsync >= 3.0.0
|
||||
|
||||
%description geo-replication
|
||||
GlusterFS is a clustered file-system capable of scaling to several
|
||||
@ -151,7 +142,7 @@ BuildRequires: fuse-devel
|
||||
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
Obsoletes: %{name}-client < %{version}-%{release}
|
||||
Obsoletes: %{name}-client < 3.1.0
|
||||
Provides: %{name}-client = %{version}-%{release}
|
||||
|
||||
%description fuse
|
||||
@ -167,7 +158,6 @@ This package provides support to FUSE based clients.
|
||||
|
||||
%package server
|
||||
Summary: Clustered file-system server
|
||||
License: GPLv3+
|
||||
Group: System Environment/Daemons
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-fuse = %{version}-%{release}
|
||||
@ -183,11 +173,26 @@ is in user space and easily manageable.
|
||||
|
||||
This package provides the glusterfs server daemon.
|
||||
|
||||
%package vim
|
||||
Summary: Vim syntax file
|
||||
Group: Applications/Text
|
||||
Requires: vim-common
|
||||
|
||||
%description vim
|
||||
GlusterFS is a clustered file-system capable of scaling to several
|
||||
petabytes. It aggregates various storage bricks over Infiniband RDMA
|
||||
or TCP/IP interconnect into one large parallel network file
|
||||
system. GlusterFS is one of the most sophisticated file systems in
|
||||
terms of features and extensibility. It borrows a powerful concept
|
||||
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
|
||||
is in user space and easily manageable.
|
||||
|
||||
Vim syntax file for GlusterFS.
|
||||
|
||||
%package devel
|
||||
Summary: Development Libraries
|
||||
License: GPLv2 or LGPLv3+
|
||||
Group: Development/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Summary: Development Libraries
|
||||
Group: Development/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
GlusterFS is a clustered file-system capable of scaling to several
|
||||
@ -200,175 +205,11 @@ is in user space and easily manageable.
|
||||
|
||||
This package provides the development libraries.
|
||||
|
||||
%if 0%{?_with_swift:1}
|
||||
%package swift
|
||||
|
||||
Summary: GlusterFS OpenStack Object Storage
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
|
||||
Source10: http://launchpad.net/swift/essex/%{SWIFTVER}/+download/swift-%{SWIFTVER}.tar.gz
|
||||
Source11: gluster-swift-functions
|
||||
Source12: gluster-swift-account.init
|
||||
Source13: gluster-swift-container.init
|
||||
Source14: gluster-swift-object.init
|
||||
Source15: gluster-swift-proxy.init
|
||||
Patch3: openstack-swift-newdeps.patch
|
||||
Patch4: openstack-swift-docmod.patch
|
||||
Patch5: openstack-swift-nonet.patch
|
||||
Patch6: glusterfs-3.3.0.swift.patch
|
||||
#BuildRoot: %(mktemp -ud %{_tmppath}/swift-%{SWIFTVER}-%{release}-XXXXXX)
|
||||
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python-setuptools
|
||||
BuildRequires: python-netifaces
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
BuildRequires: python-webob1.0
|
||||
BuildRequires: python-paste-deploy1.5
|
||||
%else
|
||||
BuildRequires: python-webob
|
||||
BuildRequires: python-paste-deploy
|
||||
%endif
|
||||
BuildRequires: dos2unix
|
||||
Requires: python-configobj
|
||||
Requires: python-eventlet >= 0.9.8
|
||||
Requires: python-greenlet >= 0.3.1
|
||||
Requires: python-paste-deploy
|
||||
Requires: python-simplejson
|
||||
Requires: pyxattr
|
||||
Requires: python-setuptools
|
||||
Requires: python-netifaces
|
||||
Requires: python-netifaces
|
||||
|
||||
Conflicts: openstack-swift
|
||||
|
||||
|
||||
%description swift
|
||||
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
Objects are written to multiple hardware devices in the data center, with the
|
||||
OpenStack software responsible for ensuring data replication and integrity
|
||||
across the cluster. Storage clusters can scale horizontally by adding new nodes,
|
||||
which are automatically configured. Should a node fail, OpenStack works to
|
||||
replicate its content from other active nodes. Because OpenStack uses software
|
||||
logic to ensure data replication and distribution across different devices,
|
||||
inexpensive commodity hard drives and servers can be used in lieu of more
|
||||
expensive equipment.
|
||||
|
||||
|
||||
%package swift-account
|
||||
Summary: A swift account server
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-swift = %{version}-%{release}
|
||||
|
||||
%description swift-account
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
|
||||
This package contains the %{name}-swift account server.
|
||||
|
||||
|
||||
%package swift-container
|
||||
Summary: A swift container server
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-swift = %{version}-%{release}
|
||||
|
||||
%description swift-container
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
|
||||
This package contains the %{name}-swift container server.
|
||||
|
||||
%package swift-object
|
||||
Summary: A swift object server
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-swift = %{version}-%{release}
|
||||
Requires: rsync >= 3.0
|
||||
|
||||
%description swift-object
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
|
||||
This package contains the %{name}-swift object server.
|
||||
|
||||
%package swift-proxy
|
||||
Summary: A swift proxy server
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-swift = %{version}-%{release}
|
||||
|
||||
%description swift-proxy
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
|
||||
This package contains the %{name}-swift proxy server.
|
||||
|
||||
|
||||
%package swift-doc
|
||||
Summary: Documentation for %{name}
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
# Required for generating docs
|
||||
BuildRequires: python-eventlet
|
||||
BuildRequires: python-simplejson
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
BuildRequires: python-webob1.0
|
||||
BuildRequires: python-sphinx10
|
||||
%else
|
||||
BuildRequires: python-webob
|
||||
BuildRequires: python-sphinx
|
||||
%endif
|
||||
BuildRequires: pyxattr
|
||||
|
||||
%description swift-doc
|
||||
OpenStack Object Storage (swift) aggregates commodity servers to work together
|
||||
in clusters for reliable, redundant, and large-scale storage of static objects.
|
||||
|
||||
This package contains documentation files for %{name}-swift.
|
||||
|
||||
%package swift-plugin
|
||||
Summary: GlusterFS Unified File and Object Storage.
|
||||
Group: Applications/System
|
||||
License: ASL 2.0
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-swift = %{version}-%{release}
|
||||
Requires: memcached
|
||||
Requires: openssl
|
||||
Requires: python
|
||||
Source20: gluster-swift-plugins.tar.gz
|
||||
|
||||
%description swift-plugin
|
||||
Gluster Unified File and Object Storage unifies NAS and object storage
|
||||
technology. This provides a system for data storage that enables users to access
|
||||
the same data as an object and as a file, simplifying management and controlling
|
||||
storage costs.
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%if 0%{?_with_swift:1}
|
||||
%setup -q -T -D -n %{name}-%{version} -a 10
|
||||
%setup -q -T -D -n %{name}-%{version} -a 20
|
||||
%patch0 -p0
|
||||
%patch1 -p0
|
||||
%patch2 -p0
|
||||
cd swift-%{SWIFTVER}
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
dos2unix LICENSE
|
||||
%endif
|
||||
|
||||
%build
|
||||
./autogen.sh
|
||||
@ -380,16 +221,6 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
|
||||
%{__make} %{?_smp_mflags}
|
||||
|
||||
%if 0%{?_with_swift:1}
|
||||
cd swift-%{SWIFTVER}
|
||||
%{__python} setup.py build
|
||||
%{__mkdir_p} doc/build
|
||||
%if ( 0%{?fedora} )
|
||||
%{__python} setup.py build_sphinx
|
||||
%endif
|
||||
cd ..
|
||||
%endif
|
||||
|
||||
%install
|
||||
%{__rm} -rf %{buildroot}
|
||||
%{__make} install DESTDIR=%{buildroot}
|
||||
@ -415,6 +246,7 @@ cd ..
|
||||
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs
|
||||
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd
|
||||
|
||||
|
||||
# Remove unwanted files from all the shared libraries
|
||||
find %{buildroot}%{_libdir} -name '*.a' -delete
|
||||
find %{buildroot}%{_libdir} -name '*.la' -delete
|
||||
@ -422,6 +254,11 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
|
||||
# Remove installed docs, we include them ourselves as %%doc
|
||||
%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/
|
||||
|
||||
# Rename the samples, so we can include them as %%config
|
||||
for file in %{buildroot}%{_sysconfdir}/glusterfs/*.sample; do
|
||||
%{__mv} ${file} `dirname ${file}`/`basename ${file} .sample`
|
||||
done
|
||||
|
||||
# Create working directory
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd
|
||||
|
||||
@ -429,6 +266,10 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
|
||||
sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \
|
||||
%{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol
|
||||
|
||||
# Clean up the examples we want to include as %%doc
|
||||
%{__cp} -a doc/examples examples
|
||||
%{__rm} -f examples/Makefile*
|
||||
|
||||
# Install init script and sysconfig file
|
||||
%_init_install %{SOURCE7} glusterd
|
||||
%_init_install %{SOURCE8} glusterfsd
|
||||
@ -451,81 +292,9 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
|
||||
%{__install} -D -p -m 0644 %{SOURCE6} \
|
||||
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd
|
||||
|
||||
%if 0%{!?_without_georeplication:1}
|
||||
# geo-rep ghosts
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
|
||||
touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf
|
||||
%endif
|
||||
|
||||
# the rest of the ghosts
|
||||
touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs
|
||||
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers
|
||||
|
||||
%if 0%{?_with_swift:1}
|
||||
cd swift-%{SWIFTVER}
|
||||
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
# Init helper functions
|
||||
%{__install} -p -D -m 644 %{SOURCE11} %{buildroot}%{_datarootdir}/gluster-swift/functions
|
||||
# Init scripts
|
||||
%{__install} -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/gluster-swift-account
|
||||
%{__install} -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/gluster-swift-container
|
||||
%{__install} -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/gluster-swift-object
|
||||
%{__install} -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/gluster-swift-proxy
|
||||
# Remove tests
|
||||
%{__rm} -rf %{buildroot}/%{python_sitelib}/test
|
||||
# Misc other
|
||||
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift
|
||||
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/account-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/container-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/object-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/proxy-server
|
||||
# Install pid directory
|
||||
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift
|
||||
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/account-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/container-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/object-server
|
||||
%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/proxy-server
|
||||
cd ..
|
||||
|
||||
%{__mkdir -p} %{buildroot}%{python_sitelib}/swift/plugins
|
||||
#%{__mkdir -p} %{buildroot}%{_sysconfdir}/swift
|
||||
cd plugins
|
||||
%{__install} -p -D -m 755 constraints.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
%{__install} -p -D -m 755 DiskDir.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
%{__install} -p -D -m 755 DiskFile.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
%{__install} -p -D -m 755 Glusterfs.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
%{__install} -p -D -m 755 __init__.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
%{__install} -p -D -m 755 utils.py %{buildroot}%{python_sitelib}/swift/plugins
|
||||
cp -r conf/* %{buildroot}%{_sysconfdir}/swift
|
||||
cd ..
|
||||
%endif
|
||||
|
||||
# Install vim syntax plugin
|
||||
%{__install} -D -p -m 644 extras/glusterfs.vim \
|
||||
%{buildroot}%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
|
||||
|
||||
%clean
|
||||
%{__rm} -rf %{buildroot}
|
||||
@ -538,26 +307,21 @@ cd ..
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS
|
||||
%doc ChangeLog COPYING INSTALL README THANKS
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
|
||||
%{_libdir}/glusterfs
|
||||
%{_libdir}/*.so.*
|
||||
%{_sbindir}/glusterfs*
|
||||
%{_sbindir}/gluster
|
||||
%{_sbindir}/glusterd
|
||||
%{_libexecdir}/glusterfs
|
||||
# %{_mandir}/man8/*gluster*.8*
|
||||
%{_mandir}/man8/*gluster*.8*
|
||||
%dir %{_localstatedir}/log/glusterfs
|
||||
%dir %{_sharedstatedir}/glusterd
|
||||
%if 0%{!?_without_rdma:1}
|
||||
%exclude %{_libdir}/glusterfs/%{version}/rpc-transport/rdma*
|
||||
%endif
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/mount/fuse*
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/storage*
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/features/posix*
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/protocol/server*
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/mgmt*
|
||||
%exclude %{_libdir}/glusterfs/%{version}/xlator/nfs*
|
||||
|
||||
|
||||
%if 0%{!?_without_rdma:1}
|
||||
%files rdma
|
||||
@ -569,20 +333,20 @@ cd ..
|
||||
%post geo-replication
|
||||
#restart glusterd.
|
||||
%{_sysconfdir}/init.d/glusterd restart &> /dev/null
|
||||
%endif
|
||||
|
||||
%if 0%{!?_without_georeplication:1}
|
||||
%files geo-replication
|
||||
%defattr(-,root,root)
|
||||
%{_libexecdir}/glusterfs/gsyncd
|
||||
%{_libexecdir}/glusterfs/python/syncdaemon/*
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication
|
||||
%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf
|
||||
%endif
|
||||
|
||||
%files fuse
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse
|
||||
%{_libdir}/glusterfs/%{version}/xlator/mount/fuse*
|
||||
# %{_mandir}/man8/mount.glusterfs.8*
|
||||
%{_mandir}/man8/mount.glusterfs.8*
|
||||
/sbin/mount.glusterfs
|
||||
/sbin/umount.glusterfs
|
||||
%if 0%{?_with_fusermount:1}
|
||||
@ -592,53 +356,21 @@ cd ..
|
||||
|
||||
%files server
|
||||
%defattr(-,root,root,-)
|
||||
%doc examples/ doc/glusterfs*.vol.sample
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
|
||||
%config(noreplace) %{_sysconfdir}/glusterfs
|
||||
# Legacy configs
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
|
||||
%{_sharedstatedir}/glusterd
|
||||
%_init_file1
|
||||
%_init_file2
|
||||
%{_sbindir}/gluster
|
||||
%{_sbindir}/glusterd
|
||||
%{_libdir}/glusterfs/%{version}/xlator/storage*
|
||||
%{_libdir}/glusterfs/%{version}/xlator/features/posix*
|
||||
%{_libdir}/glusterfs/%{version}/xlator/protocol/server*
|
||||
%{_libdir}/glusterfs/%{version}/xlator/mgmt*
|
||||
%{_libdir}/glusterfs/%{version}/xlator/nfs*
|
||||
%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/glusterd.info
|
||||
# This is really ugly, but I have no idea how to mark these directories in an
|
||||
# other way. They should belong to the glusterfs-server package, but don't
|
||||
# exist after installation. They are generated on the first start...
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs
|
||||
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers
|
||||
|
||||
%files vim
|
||||
%defattr(-,root,root,-)
|
||||
%doc COPYING
|
||||
%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
@ -646,143 +378,11 @@ cd ..
|
||||
%exclude %{_includedir}/glusterfs/y.tab.h
|
||||
%{_libdir}/*.so
|
||||
|
||||
%if 0%{?_with_swift:1}
|
||||
%files swift
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/AUTHORS
|
||||
%doc swift-%{SWIFTVER}/LICENSE
|
||||
%doc swift-%{SWIFTVER}/README
|
||||
%doc swift-%{SWIFTVER}/etc/dispersion.conf-sample
|
||||
%doc swift-%{SWIFTVER}/etc/drive-audit.conf-sample
|
||||
%doc swift-%{SWIFTVER}/etc/object-expirer.conf-sample
|
||||
%doc swift-%{SWIFTVER}/etc/swift.conf-sample
|
||||
%dir %{_datarootdir}/gluster-swift/functions
|
||||
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift
|
||||
%dir %{_sysconfdir}/swift
|
||||
%dir %{python_sitelib}/swift
|
||||
%{_bindir}/swift
|
||||
%{_bindir}/swift-account-audit
|
||||
%{_bindir}/swift-bench
|
||||
%{_bindir}/swift-drive-audit
|
||||
%{_bindir}/swift-get-nodes
|
||||
%{_bindir}/swift-init
|
||||
%{_bindir}/swift-ring-builder
|
||||
%{_bindir}/swift-dispersion-populate
|
||||
%{_bindir}/swift-dispersion-report
|
||||
%{_bindir}/swift-recon*
|
||||
%{_bindir}/swift-object-expirer
|
||||
%{_bindir}/swift-oldies
|
||||
%{_bindir}/swift-orphans
|
||||
%{_bindir}/swift-form-signature
|
||||
%{_bindir}/swift-temp-url
|
||||
%{python_sitelib}/swift/*.py*
|
||||
%{python_sitelib}/swift/common
|
||||
%{python_sitelib}/swift-%{SWIFTVER}-*.egg-info
|
||||
|
||||
%files swift-account
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/etc/account-server.conf-sample
|
||||
%dir %{_initrddir}/gluster-swift-account
|
||||
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/account-server
|
||||
%dir %{_sysconfdir}/swift/account-server
|
||||
%{_bindir}/swift-account-auditor
|
||||
%{_bindir}/swift-account-reaper
|
||||
%{_bindir}/swift-account-replicator
|
||||
%{_bindir}/swift-account-server
|
||||
%{python_sitelib}/swift/account
|
||||
|
||||
%files swift-container
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/etc/container-server.conf-sample
|
||||
%dir %{_initrddir}/gluster-swift-container
|
||||
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/container-server
|
||||
%dir %{_sysconfdir}/swift/container-server
|
||||
%{_bindir}/swift-container-auditor
|
||||
%{_bindir}/swift-container-server
|
||||
%{_bindir}/swift-container-replicator
|
||||
%{_bindir}/swift-container-updater
|
||||
%{_bindir}/swift-container-sync
|
||||
%{python_sitelib}/swift/container
|
||||
|
||||
%files swift-object
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/etc/object-server.conf-sample
|
||||
%doc swift-%{SWIFTVER}/etc/rsyncd.conf-sample
|
||||
%dir %{_initrddir}/gluster-swift-object
|
||||
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/object-server
|
||||
%dir %{_sysconfdir}/swift/object-server
|
||||
%{_bindir}/swift-object-auditor
|
||||
%{_bindir}/swift-object-info
|
||||
%{_bindir}/swift-object-replicator
|
||||
%{_bindir}/swift-object-server
|
||||
%{_bindir}/swift-object-updater
|
||||
%{python_sitelib}/swift/obj
|
||||
|
||||
%files swift-proxy
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/etc/proxy-server.conf-sample
|
||||
%dir %{_initrddir}/gluster-swift-proxy
|
||||
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/proxy-server
|
||||
%dir %{_sysconfdir}/swift/proxy-server
|
||||
%{_bindir}/swift-proxy-server
|
||||
%{python_sitelib}/swift/proxy
|
||||
|
||||
%files swift-doc
|
||||
%defattr(-,root,root,-)
|
||||
%doc swift-%{SWIFTVER}/LICENSE
|
||||
|
||||
%files swift-plugin
|
||||
%defattr(-,root,root,-)
|
||||
%{python_sitelib}/swift/plugins
|
||||
%{_sysconfdir}/swift
|
||||
%endif
|
||||
|
||||
|
||||
%post server
|
||||
# Legacy server
|
||||
%_init_enable glusterd
|
||||
%_init_enable glusterfsd
|
||||
|
||||
# Genuine Fedora (and EPEL) builds never put gluster files in /etc; if
|
||||
# there are any files in /etc from a prior gluster.org install, move them
|
||||
# to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib
|
||||
# in gluster.org RPMs.) Be careful to copy them on the off chance that
|
||||
# /etc and /var/lib are on separate file systems
|
||||
if [ -d /etc/glusterd ]; then
|
||||
%{__mkdir_p} /var/lib
|
||||
cp -a /etc/glusterd /var/lib
|
||||
rm -rf /etc/glusterd
|
||||
ln -sf /var/lib/glusterd /etc/glusterd
|
||||
fi
|
||||
|
||||
# Rename old volfiles in an RPM-standard way. These aren't actually
|
||||
# considered package config files, so %config doesn't work for them.
|
||||
if [ -d /var/lib/glusterd/vols ]; then
|
||||
for file in $(find /var/lib/glusterd/vols -name '*.vol'); do
|
||||
newfile=${file}.rpmsave
|
||||
echo "warning: ${file} saved as ${newfile}"
|
||||
cp ${file} ${newfile}
|
||||
done
|
||||
fi
|
||||
|
||||
# add marker translator
|
||||
# but first make certain that there are no old libs around to bite us
|
||||
# BZ 834847
|
||||
if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then
|
||||
rm -f /etc/ld.so.conf.d/glusterfs.conf
|
||||
/sbin/ldconfig
|
||||
fi
|
||||
pidof -c -o %PPID -x glusterd &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
kill -9 `pgrep -f gsyncd.py` &> /dev/null
|
||||
|
||||
killall glusterd &> /dev/null
|
||||
glusterd --xlator-option *.upgrade=on -N
|
||||
else
|
||||
glusterd --xlator-option *.upgrade=on -N
|
||||
fi
|
||||
|
||||
|
||||
%preun server
|
||||
if [ $1 -eq 0 ]; then
|
||||
%_init_stop glusterfsd
|
||||
@ -795,74 +395,10 @@ if [ $1 -ge 1 ]; then
|
||||
%_init_restart glusterfsd
|
||||
fi
|
||||
|
||||
|
||||
%if 0%{?_with_swift:1}
|
||||
%pre swift
|
||||
getent group swift >/dev/null || groupadd -r swift -g 160
|
||||
getent passwd swift >/dev/null || \
|
||||
useradd -r -g swift -u 160 -d %{_sharedstatedir}/swift -s /sbin/nologin \
|
||||
-c "OpenStack Swift Daemons" swift
|
||||
exit 0
|
||||
|
||||
%post swift-account
|
||||
/sbin/chkconfig --add gluster-swift-account
|
||||
|
||||
%preun swift-account
|
||||
if [ $1 = 0 ] ; then
|
||||
/sbin/service gluster-swift-account stop >/dev/null 2>&1
|
||||
/sbin/chkconfig --del gluster-swift-account
|
||||
fi
|
||||
|
||||
%postun swift-account
|
||||
if [ "$1" -ge "1" ] ; then
|
||||
/sbin/service gluster-swift-account condrestart >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%post swift-container
|
||||
/sbin/chkconfig --add gluster-swift-container
|
||||
|
||||
%preun swift-container
|
||||
if [ $1 = 0 ] ; then
|
||||
/sbin/service gluster-swift-container stop >/dev/null 2>&1
|
||||
/sbin/chkconfig --del gluster-swift-container
|
||||
fi
|
||||
|
||||
%postun swift-container
|
||||
if [ "$1" -ge "1" ] ; then
|
||||
/sbin/service gluster-swift-container condrestart >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%post swift-object
|
||||
/sbin/chkconfig --add gluster-swift-object
|
||||
|
||||
%preun swift-object
|
||||
if [ $1 = 0 ] ; then
|
||||
/sbin/service gluster-swift-object stop >/dev/null 2>&1
|
||||
/sbin/chkconfig --del gluster-swift-object
|
||||
fi
|
||||
|
||||
%postun swift-object
|
||||
if [ "$1" -ge "1" ] ; then
|
||||
/sbin/service gluster-swift-object condrestart >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%post swift-proxy
|
||||
/sbin/chkconfig --add gluster-swift-proxy
|
||||
|
||||
%preun swift-proxy
|
||||
if [ $1 = 0 ] ; then
|
||||
/sbin/service gluster-swift-proxy stop >/dev/null 2>&1
|
||||
/sbin/chkconfig --del gluster-swift-proxy
|
||||
fi
|
||||
|
||||
%postun swift-proxy
|
||||
if [ "$1" -ge "1" ] ; then
|
||||
/sbin/service gluster-swift-proxy condrestart >/dev/null 2>&1 || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Aug 27 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.2.7-2
|
||||
- fix SEGV in glusterd-rpc-ops.c, BZ 837684, f17 only.
|
||||
|
||||
* Wed Aug 12 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-5
|
||||
- now with UFO (openstack-swift) except on el5
|
||||
|
||||
@ -876,6 +412,9 @@ fi
|
||||
* Thu Jul 5 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-2
|
||||
- selected fixes to glusterfs.spec for BZs 826836, 826855, 829734, 834847
|
||||
|
||||
* Mon Jun 11 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.2.7-1
|
||||
- Update to 3.2.7
|
||||
|
||||
* Thu May 31 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-1
|
||||
- Update to 3.3.0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user