summaryrefslogtreecommitdiffstats
path: root/cli/src/cli-cmd.h
blob: ba877e2c49693dc0abac79687dde064bf7101057 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
   Copyright (c) 2006-2011 Gluster, Inc. <http://www.gluster.com>
   This file is part of GlusterFS.

   GlusterFS is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published
   by the Free Software Foundation; either version 3 of the License,
   or (at your option) any later version.

   GlusterFS is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see
   <http://www.gnu.org/licenses/>.
*/

#ifndef __CLI_CMD_H__
#define __CLI_CMD_H__

#ifndef _CONFIG_H
#define _CONFIG_H
#include "config.h"
#endif

#include <netdb.h>

#include "cli.h"
#include "list.h"

#define CLI_STACK_DESTROY(_frame)                                       \
        do {                                                            \
                if (_frame) {                                           \
                        if (_frame->local) {                            \
                                gf_log ("cli", GF_LOG_DEBUG, "frame->local " \
                                        "is not NULL (%p)", _frame->local); \
                                cli_local_wipe (_frame->local);         \
                                _frame->local = NULL;                   \
                        }                                               \
                        STACK_DESTROY (_frame->root);                   \
                }                                                       \
        } while (0);

typedef enum {
        GF_ANSWER_YES = 1,
        GF_ANSWER_NO  = 2
} gf_answer_t;

struct cli_cmd {
        const char         *pattern;
        cli_cmd_cbk_t      *cbk;
        const char         *desc;
        cli_cmd_reg_cbk_t  *reg_cbk; /* callback to check in runtime if the   *
                                      * command should be enabled or disabled */
        gf_boolean_t       disable;
};

struct cli_cmd_volume_get_ctx_ {
        char            *volname;
        int             flags;
};

typedef struct cli_profile_info_ {
        uint64_t fop_hits;
        double min_latency;
        double max_latency;
        double avg_latency;
        char   *fop_name;
        double percentage_avg_latency;
} cli_profile_info_t;

typedef struct addrinfo_list {
        struct list_head list;
        struct addrinfo *info;
} addrinfo_list_t;

typedef enum {
        GF_AI_COMPARE_NO_MATCH     = 0,
        GF_AI_COMPARE_MATCH        = 1,
        GF_AI_COMPARE_ERROR        = 2
} gf_ai_compare_t;

typedef struct cli_cmd_volume_get_ctx_ cli_cmd_volume_get_ctx_t;

int cli_cmd_volume_register (struct cli_state *state);

int cli_cmd_probe_register (struct cli_state *state);

int cli_cmd_system_register (struct cli_state *state);

int cli_cmd_misc_register (struct cli_state *state);

struct cli_cmd_word *cli_cmd_nextword (struct cli_cmd_word *word,
                                       const char *text);
void cli_cmd_tokens_destroy (char **tokens);

int cli_cmd_await_response (unsigned time);

int cli_cmd_broadcast_response (int32_t status);

int cli_cmd_cond_init ();

int cli_cmd_lock ();

int cli_cmd_unlock ();

int
cli_cmd_submit (void *req, call_frame_t *frame,
                rpc_clnt_prog_t *prog,
                int procnum, struct iobref *iobref,
                xlator_t *this, fop_cbk_fn_t cbkfn, xdrproc_t xdrproc);

gf_answer_t
cli_cmd_get_confirmation (struct cli_state *state, const char *question);
int cli_cmd_sent_status_get (int *status);
#endif /* __CLI_CMD_H__ */
ecoration'>Emmanuel Dreyfus2015-04-221-6/+6 * Geo-rep: Adding regression tests for geo-repVijaykumar Koppad2015-04-1313-129/+1511 * glusterd: Restarting glusterd should not reset bitrot tunable value to defaultGaurav Kumar Garg2015-04-131-0/+46 * nfs: do not overwrite the return value and errno of resolve operationRaghavendra Bhat2015-04-132-0/+59 * Tests: fix spurrious failure in mount-nfs-auth.tEmmanuel Dreyfus2015-04-111-2/+2 * cluster/ec: Fix readdir de-itransformPranith Kumar K2015-04-111-0/+20 * glusterd: bitd daemon should not start on the node which dont have any brickGauravKumarGarg2015-04-101-0/+55 * glusterd/snapshot : While snapshot restore, compute quota checksum.Sachin Pandit2015-04-101-0/+39 * glusterd: remove-brick status/stop should not show output for non-existing brickGaurav Kumar Garg2015-04-093-2/+38 * tests : modifcation in mount-auth-nfs.tJiffin Tony Thottan2015-04-092-67/+65 * tests: remove tests for clear-locksJeff Darcy2015-04-093-110/+0 * glusterd: Support distributed replicated volumes on hot tierDan Lambright2015-04-081-9/+13 * tests/bitrot-stub: Object versioning test(s)Venky Shankar2015-04-082-0/+191 * tests: Replace getxattr with getfattrKrutika Dhananjay2015-04-081-2/+2 * tests: fix spurious regression in uss.tJeff Darcy2015-04-061-1/+5 * tests: move bug-1168875.t to tests/bugs/snapshot folderAtin Mukherjee2015-04-061-0/+0 * cluster/dht: Unwind with proper op_retRaghavendra Talur2015-04-061-0/+22 * cluster/dht: fix tier.c problems found prior to feature freezeDan Lambright2015-04-061-0/+2 * tests: Spurious failure in bug-1117851.tNithya Balachandran2015-04-021-4/+4 * glusterd: compute quorum on peers in clusterKrishnan Parthasarathi2015-04-021-0/+30 * glusterd: gluster command should retrieve current op-version of the NODEGaurav Kumar Garg2015-04-011-0/+22 * tests: fix volume_exists to be used from EXPECT_WITHINJeff Darcy2015-04-014-19/+17 * test : fix for quota-anon-fd-nfs.t spurious failureSachin Pandit2015-03-311-0/+97 * function gf_string2bytesize_range should handle 'xB' byte valuesvmallika2015-03-312-2/+4 * Upcall: Added xlator options to enable cache-invalidationSoumya Koduri2015-03-312-2/+5 * Tests: portability fixes for ipc.tEmmanuel Dreyfus2015-03-302-3/+23 * tests: fix online_brick_countJeff Darcy2015-03-302-9/+5 * Tests: portability fixesEmmanuel Dreyfus2015-03-303-25/+36 * tests: fix spurious failures in bug-1190734.t (remove-brick)Jeff Darcy2015-03-271-26/+11 * xlators/lib: Handle NULL 'name' for marker xattrsPranith Kumar K2015-03-271-0/+2