Motr  M0
cmd.c File Reference
#include "lib/trace.h"
#include "lib/finject.h"
#include "conf/obj_ops.h"
#include "conf/preload.h"
#include "conf/helpers.h"
#include "fid/fid_list.h"
#include "rpc/rpclib.h"
#include "cm/repreb/trigger_fom.h"
#include "cm/repreb/trigger_fop.h"
#include "sns/cm/trigger_fop.h"
#include "dix/cm/trigger_fop.h"
#include "sss/device_fops.h"
#include "sss/ss_fops.h"
#include "sss/process_fops.h"
#include "spiel/spiel.h"
#include "spiel/spiel_internal.h"
#include "spiel/cmd_internal.h"
Include dependency graph for cmd.c:

Go to the source code of this file.

Data Structures

struct  spiel_repreb
 
struct  _pool_cmd_ctx
 
struct  m0_proc_data
 
struct  spiel_proc_counter_item
 
struct  spiel_proc_item
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SPIEL
 

Functions

 M0_TL_DESCR_DEFINE (spiel_string, "list of endpoints", static, struct spiel_string_entry, sse_link, sse_magic, M0_STATS_MAGIC, M0_STATS_HEAD_MAGIC)
 
 M0_TL_DEFINE (spiel_string, static, struct spiel_string_entry)
 
static void spiel_fop_destroy (struct m0_fop *fop)
 
static void spiel_rpc_link_destroy (struct m0_rpc_link *rlink)
 
static bool _filter_svc (const struct m0_conf_obj *obj)
 
static bool _filter_controller (const struct m0_conf_obj *obj)
 
static int spiel_node_process_endpoint_add (struct m0_spiel_core *spc, struct m0_conf_obj *node, struct m0_tl *list)
 
static int spiel_endpoints_for_device_generic (struct m0_spiel_core *spc, const struct m0_fid *drive, struct m0_tl *out)
 
static int spiel_cmd_send (struct m0_rpc_machine *rmachine, const char *remote_ep, struct m0_fop *cmd_fop, m0_time_t timeout, struct m0_rpc_link **rlink)
 
static int _spiel_conf_obj_find (struct m0_confc *confc, const struct m0_fid *obj_fid, bool(*filter)(const struct m0_conf_obj *obj), uint32_t nr_lvls, const struct m0_fid *path, struct m0_conf_obj **conf_obj)
 Find object with given obj_fid in provided confc. More...
 
static int _spiel_conf_dir_iterate (struct m0_confc *confc, void *ctx, bool(*iter_cb)(const struct m0_conf_obj *item, void *ctx), uint32_t nr_lvls, const struct m0_fid *path)
 
static int spiel_ss_ep_for_svc (const struct m0_conf_service *s, char **ss_ep)
 
static int spiel_svc_conf_obj_find (struct m0_spiel_core *spc, const struct m0_fid *svc, struct m0_conf_service **out)
 
static int spiel_svc_fop_fill (struct m0_fop *fop, struct m0_conf_service *svc, uint32_t cmd)
 
static int spiel_svc_fop_fill_and_send (struct m0_spiel_core *spc, struct m0_fop *fop, const struct m0_fid *svc_fid, uint32_t cmd, struct m0_rpc_link **rlink)
 
static struct m0_fopspiel_svc_fop_alloc (struct m0_rpc_machine *mach)
 
static struct m0_sss_repspiel_sss_reply_data (struct m0_fop *fop)
 
static int spiel_svc_generic_handler (struct m0_spiel_core *spc, const struct m0_fid *svc_fid, enum m0_sss_req_cmd cmd, int *status)
 
int m0_spiel_service_init (struct m0_spiel *spl, const struct m0_fid *svc_fid)
 
int m0_spiel_service_start (struct m0_spiel *spl, const struct m0_fid *svc_fid)
 
int m0_spiel_service_stop (struct m0_spiel *spl, const struct m0_fid *svc_fid)
 
int m0_spiel_service_health (struct m0_spiel *spl, const struct m0_fid *svc_fid)
 
int m0_spiel_service_quiesce (struct m0_spiel *spl, const struct m0_fid *svc_fid)
 
int m0_spiel_service_status (struct m0_spiel *spl, const struct m0_fid *svc_fid, int *status)
 
static int spiel_device_command_fop_send (struct m0_spiel_core *spc, const char *endpoint, const struct m0_fid *dev_fid, int cmd, uint32_t *ha_state)
 
static int spiel_device_command_send (struct m0_spiel_core *spc, const struct m0_fid *drive, enum m0_sss_device_req_cmd cmd, uint32_t *ha_state)
 
int m0_spiel_device_attach (struct m0_spiel *spl, const struct m0_fid *dev_fid)
 
int m0_spiel_device_attach_state (struct m0_spiel *spl, const struct m0_fid *dev_fid, uint32_t *ha_state)
 
int m0_spiel_device_detach (struct m0_spiel *spl, const struct m0_fid *dev_fid)
 
int m0_spiel_device_format (struct m0_spiel *spl, const struct m0_fid *dev_fid)
 
static bool _filter_proc (const struct m0_conf_obj *obj)
 
static int spiel_proc_conf_obj_find (struct m0_spiel_core *spc, const struct m0_fid *proc, struct m0_conf_process **out)
 
static int spiel_process_command_send (struct m0_spiel_core *spc, const struct m0_fid *proc_fid, struct m0_fop *fop, struct m0_rpc_link **rlink)
 
static struct m0_ss_process_repspiel_process_reply_data (struct m0_fop *fop)
 
static int spiel_process_command_execute (struct m0_spiel_core *spc, const struct m0_fid *proc_fid, int cmd, const struct m0_buf *param, struct m0_ss_process_rep *ssp_rep)
 
static int spiel_process_command (struct m0_spiel *spl, const struct m0_fid *proc_fid, int cmd)
 
int m0_spiel_process_stop (struct m0_spiel *spl, const struct m0_fid *proc_fid)
 
int m0_spiel_process_reconfig (struct m0_spiel *spl, const struct m0_fid *proc_fid)
 
static int spiel_process__health (struct m0_spiel_core *spc, const struct m0_fid *proc_fid)
 
int m0_spiel_process_health (struct m0_spiel *spl, const struct m0_fid *proc_fid)
 
int m0_spiel_process_quiesce (struct m0_spiel *spl, const struct m0_fid *proc_fid)
 
static int spiel_running_svcs_list_fill (struct m0_bufs *bufs, struct m0_spiel_running_svc **svcs)
 
int m0_spiel_process_list_services (struct m0_spiel *spl, const struct m0_fid *proc_fid, struct m0_spiel_running_svc **services)
 
int m0_spiel_process_lib_load (struct m0_spiel *spl, const struct m0_fid *proc_fid, const char *libname)
 
static int spiel_stats_item_add (struct m0_tl *tl, const struct m0_fid *fid)
 
static bool _filter_pool (const struct m0_conf_obj *obj)
 
static int spiel_repreb_cmd_send (struct m0_rpc_machine *rmachine, const char *remote_ep, struct spiel_repreb *repreb)
 
static int spiel_repreb_fop_fill_and_send (struct m0_spiel_core *spc, struct m0_fop *fop, enum m0_cm_op op, struct spiel_repreb *repreb)
 
static int spiel_pool_device_collect (struct _pool_cmd_ctx *ctx, struct m0_conf_obj *obj_diskv)
 
static bool _filter_sdev (const struct m0_conf_obj *obj)
 
static bool spiel__pool_service_has_sdev (struct _pool_cmd_ctx *ctx, const struct m0_conf_obj *service)
 
static void spiel__pool_ctx_init (struct _pool_cmd_ctx *ctx, struct m0_spiel_core *spc, enum m0_repreb_type type)
 
static void spiel__pool_ctx_fini (struct _pool_cmd_ctx *ctx)
 
static void spiel__add_item (struct _pool_cmd_ctx *pool_ctx, const struct m0_conf_obj *item, struct m0_conf_service *service, enum m0_conf_service_type type)
 
static bool spiel__pool_service_select (const struct m0_conf_obj *item, void *ctx)
 
static int spiel__pool_cmd_send (struct _pool_cmd_ctx *ctx, const enum m0_cm_op cmd, struct spiel_repreb *repreb)
 
static int spiel__pool_cmd_status_get (struct _pool_cmd_ctx *ctx, const enum m0_cm_op cmd, struct spiel_repreb *repreb)
 
static bool _filter_objv (const struct m0_conf_obj *obj)
 
static int spiel_pool__device_collection_fill (struct _pool_cmd_ctx *ctx, const struct m0_fid *pool_fid)
 
static int spiel_pool_generic_handler (struct m0_spiel_core *spc, const struct m0_fid *pool_fid, const enum m0_cm_op cmd, struct m0_spiel_repreb_status **statuses, enum m0_repreb_type type)
 
int m0_spiel_sns_repair_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_repair_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_repair_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_repair_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_repair_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_repair_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_repair_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_repair_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_repair_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_repair_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_repair_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_repair_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_repair_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_repreb_status **statuses)
 
int m0_spiel_dix_repair_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_repreb_status **statuses)
 
int m0_spiel_pool_repair_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_sns_status **statuses)
 
int m0_spiel_sns_rebalance_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_rebalance_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_rebalance_start (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_rebalance_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_node_direct_rebalance_start (struct m0_spiel *spl, const struct m0_fid *node_fid)
 
int m0_spiel_dix_rebalance_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_rebalance_continue (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_rebalance_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_rebalance_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_rebalance_quiesce (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_sns_rebalance_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_repreb_status **statuses)
 
int m0_spiel_dix_rebalance_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_repreb_status **statuses)
 
int m0_spiel_pool_rebalance_status (struct m0_spiel *spl, const struct m0_fid *pool_fid, struct m0_spiel_sns_status **statuses)
 
int m0_spiel_sns_rebalance_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_dix_rebalance_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
int m0_spiel_pool_rebalance_abort (struct m0_spiel *spl, const struct m0_fid *pool_fid)
 
 M0_TL_DESCR_DEFINE (spiel_proc_items, "spiel_proc_items", static, struct spiel_proc_item, spi_link, spi_magic, M0_SPIEL_PROC_MAGIC, M0_SPIEL_PROC_HEAD_MAGIC)
 
 M0_TL_DEFINE (spiel_proc_items, static, struct spiel_proc_item)
 
static void _fs_stats_ctx_lock (struct _fs_stats_ctx *fsx)
 
static void _fs_stats_ctx_unlock (struct _fs_stats_ctx *fsx)
 
static void spiel_proc_item_postprocess (struct spiel_proc_item *proc)
 
static bool spiel_proc_item_disconnect_cb (struct m0_clink *clink)
 
static void spiel_process_disconnect_async (struct spiel_proc_item *proc)
 
static void spiel_process_health_replied_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void spiel_proc_item_disconnect_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static struct m0_sm_groupspiel_proc_sm_group (const struct spiel_proc_item *p)
 
static void spiel_process_health_replied (struct m0_rpc_item *item)
 
static bool spiel_proc_item_rlink_cb (struct m0_clink *clink)
 
static void spiel_process__health_async (struct _fs_stats_ctx *fsx, struct spiel_proc_item *proc)
 
static void spiel__fs_stats_ctx_init (struct _fs_stats_ctx *fsx, struct m0_spiel_core *spc, const struct m0_conf_obj_type *item_type)
 
static void spiel__fs_stats_ctx_fini (struct _fs_stats_ctx *fsx)
 
static bool spiel__item_enlist (const struct m0_conf_obj *item, void *ctx)
 
static int spiel__proc_is_to_update_stats (struct spiel_proc_item *proc, struct m0_confc *confc)
 
static void spiel_process_counter_replied_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static struct m0_sm_groupspiel_counter_sm_group (struct spiel_proc_counter_item *i)
 
static void spiel_process_counter_replied (struct m0_rpc_item *item)
 
static bool spiel_proc_counter_item_rlink_cb (struct m0_clink *clink)
 
static int spiel_process__counters_async (struct spiel_proc_counter_item *proc)
 
static void count_stats_failed_free (struct m0_proc_counter *count_stats, int failed_index)
 
int m0_spiel_proc_counters_fetch (struct m0_spiel *spl, struct m0_fid *proc_fid, struct m0_proc_counter *count_stats)
 
M0_INTERNAL int m0_spiel__fs_stats_fetch (struct m0_spiel_core *spc, struct m0_fs_stats *stats)
 
int m0_spiel_filesystem_stats_fetch (struct m0_spiel *spl, struct m0_fs_stats *stats)
 
int m0_spiel_confstr (struct m0_spiel *spl, char **out)
 
int m0_spiel_conf_pver_status (struct m0_spiel *spl, struct m0_fid *fid, struct m0_conf_pver_info *out_info)
 

Variables

struct m0_rpc_item_ops spiel_process_health_ops
 
struct m0_rpc_item_ops spiel_process_counter_ops
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SPIEL

Definition at line 23 of file cmd.c.