23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_SNSCM 49 #include "cm/repreb/trigger_fop_xc.h" 82 "-O Operation: CM_OP_REPAIR = 2 or CM_OP_REBALANCE = 4\n" 83 " CM_OP_REPAIR_QUIESCE = 8 or CM_OP_REBALANCE_QUIESCE = 16\n" 84 " CM_OP_REPAIR_STATUS = 32 or CM_OP_REBALANCE_STATUS = 64\n" 85 "-C Client_end_point\n" 86 "-S Server_end_point [-S Server_end_point ]: max number is %d\n" 109 printf(
"reply got from: %s: op=%d rc=%d",
126 int main(
int argc,
char *argv[])
143 fprintf(stderr,
"Cannot init Motr: %d\n",
rc);
155 "\t\t\tCM_OP_REPAIR = 1 or\n" 156 "\t\t\tCM_OP_REBALANCE = 2 or\n" 157 "\t\t\tCM_OP_REPAIR_QUIESCE = 3 or\n" 158 "\t\t\tCM_OP_REBALANCE_QUIESCE = 4 or\n" 159 "\t\t\tCM_OP_REPAIR_RESUME = 5 or\n" 160 "\t\t\tCM_OP_REBALANCE_RESUME = 6 or\n" 161 "\t\t\tCM_OP_REPAIR_STATUS = 7 or\n" 162 "\t\t\tCM_OP_REBALANCE_STATUS = 8 or\n" 163 "\t\t\tCM_OP_REPAIR_ABORT = 9 or\n" 164 "\t\t\tCM_OP_REBALANCE_ABORT = 10\n",
167 LAMBDA(
void, (
const char *str){
171 LAMBDA(
void, (
const char *str){
187 !M0_IN(
type, (0, 1))) {
210 printf(
"failed to connect to %s: %d\n",
222 if (ctxs[
i].ctx_rc != 0) {
253 printf(
"Time: %lu.%2.2lu sec\n", (
unsigned long)
m0_time_seconds(delta),
268 #undef M0_TRACE_SUBSYSTEM
#define M0_GETOPTS(progname, argc, argv,...)
M0_INTERNAL int repair_rpc_ctx_init(struct rpc_ctx *ctx, const char *sep)
M0_INTERNAL int m0_rpc_post(struct m0_rpc_item *item)
M0_INTERNAL void m0_dix_cm_rebalance_trigger_fop_init(void)
struct m0_mutex repair_wait_mutex
M0_INTERNAL void m0_chan_wait(struct m0_clink *link)
struct m0_fop_type m0_sns_rebalance_status_fopt
struct m0_fop_type m0_dix_rebalance_quiesce_fopt
#define M0_ALLOC_ARR(arr, nr)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
enum m0_rpc_item_priority ri_prio
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
M0_INTERNAL int m0_sns_cm_trigger_fop_alloc(struct m0_rpc_machine *mach, uint32_t op, struct m0_fop **fop)
M0_INTERNAL void m0_dix_cm_repair_trigger_fop_init(void)
M0_INTERNAL void m0_dix_cm_repair_trigger_fop_fini(void)
M0_INTERNAL void m0_sns_cm_rebalance_trigger_fop_init(void)
uint64_t m0_time_nanoseconds(const m0_time_t time)
void * m0_fop_data(const struct m0_fop *fop)
static struct m0_addb2_mach * mach
int m0_init(struct m0 *instance)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
int main(int argc, char *argv[])
static struct m0_rpc_item * item
M0_INTERNAL void m0_sns_cm_repair_trigger_fop_init(void)
#define M0_STRINGARG(ch, desc, func)
return M0_ERR(-EOPNOTSUPP)
#define M0_FORMATARG(ch, desc, fmt, ptr)
M0_INTERNAL void m0_chan_init(struct m0_chan *chan, struct m0_mutex *ch_guard)
M0_INTERNAL void repair_rpc_ctx_fini(struct rpc_ctx *ctx)
struct m0_fop_type m0_sns_repair_status_fopt
m0_time_t m0_time_now(void)
struct m0_rpc_machine * m0_fop_session_machine(const struct m0_rpc_session *s)
static void m0_atomic64_dec(struct m0_atomic64 *a)
struct m0_atomic64 srv_rep_cnt
struct m0_fop_type m0_sns_repair_quiesce_fopt
static const struct m0_rpc_item_ops repair_item_ops
struct m0_fop_type m0_sns_rebalance_quiesce_fopt
struct m0_rpc_item * ri_reply
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
struct m0_fop_type m0_dix_rebalance_status_fopt
struct m0_rpc_session ctx_session
static bool m0_atomic64_dec_and_test(struct m0_atomic64 *a)
struct m0_fop_type m0_dix_repair_trigger_fopt
uint64_t m0_time_seconds(const m0_time_t time)
M0_INTERNAL void m0_chan_signal_lock(struct m0_chan *chan)
struct m0_fop_type m0_dix_repair_status_fopt
void(* rio_replied)(struct m0_rpc_item *item)
struct m0_fop_type m0_dix_rebalance_trigger_fopt
int32_t m0_rpc_item_error(const struct m0_rpc_item *item)
M0_INTERNAL void m0_sns_cm_rebalance_trigger_fop_fini(void)
M0_INTERNAL void m0_clink_add(struct m0_chan *chan, struct m0_clink *link)
const struct m0_rpc_item_ops * ri_ops
m0_time_t m0_time_sub(const m0_time_t t1, const m0_time_t t2)
const char * srv_ep_addr[MAX_SERVERS]
struct m0_rpc_session * ri_session
struct m0_rpc_item * m0_fop_to_rpc_item(const struct m0_fop *fop)
M0_INTERNAL void repair_client_fini(void)
struct m0_fop_type m0_dix_repair_quiesce_fopt
static int start(struct m0_fom *fom)
void m0_fop_put_lock(struct m0_fop *fop)
static struct m0_fop * fop
static struct m0 instance
struct m0_fop * m0_rpc_item_to_fop(const struct m0_rpc_item *item)
struct m0_fop_type m0_sns_rebalance_trigger_fopt
M0_INTERNAL void m0_dix_cm_rebalance_trigger_fop_fini(void)
M0_INTERNAL int m0_dix_cm_trigger_fop_alloc(struct m0_rpc_machine *mach, uint32_t op, struct m0_fop **fop)
struct m0_fop_type m0_sns_repair_trigger_fopt
struct m0_rpc_item f_item
static void repair_reply_received(struct m0_rpc_item *item)
M0_INTERNAL void m0_sns_cm_repair_trigger_fop_fini(void)
struct m0_chan repair_wait
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)
M0_INTERNAL const char * m0_rpc_item_remote_ep_addr(const struct m0_rpc_item *item)
M0_INTERNAL int repair_client_init(void)