summaryrefslogtreecommitdiffstats
path: root/utils/common.h
blob: 02940c0ffa45580195b5a983f414de51d8a3d80e (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
/*
  Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
  This file is part of gluster-block.

  This file is licensed to you under your choice of the GNU Lesser
  General Public License, version 3 or any later version (LGPLv3 or
  later), or the GNU General Public License, version 2 (GPLv2), in all
  cases as published by the Free Software Foundation.
*/


# ifndef   _COMMON_H
# define   _COMMON_H   1

# include "utils.h"
# include "block.h"


typedef struct blockServerDef {
  size_t nhosts;
  char   **hosts;
} blockServerDef;
typedef blockServerDef *blockServerDefPtr;


static const char *const JsonResponseFormatLookup[] = {
  [GB_JSON_NONE]            = "",

  [GB_JSON_PLAIN]    = "--json-plain",
  [GB_JSON_SPACED]   = "--json-spaced",
  [GB_JSON_PRETTY]   = "--json-pretty",
  [GB_JSON_DEFAULT]  = "--json",

  [GB_JSON_MAX]             = NULL,
};


/* Always add new boolean data in a way that, word with jist
 * 'yes/true' first to assign a odd number to it */
typedef enum  ConvertStringToTrillian {
  GB_BOOL_YES             = 1,
  GB_BOOL_NO              = 2,

  GB_BOOL_TRUE            = 3,
  GB_BOOL_FALSE           = 4,

  GB_BOOL_ENABLE          = 5,
  GB_BOOL_DISABLE         = 6,

  GB_BOOL_ONE             = 7,
  GB_BOOL_ZERO            = 8,

  GB_BOOL_SET             = 9,
  GB_BOOL_UNSET           = 10,

  GB_BOOL_FULL            = 11,

  GB_BOOL_MAX
} ConvertStringToBool;


static const char *const ConvertStringToTrillianLookup[] = {
  [GB_BOOL_YES]             = "yes",
  [GB_BOOL_NO]              = "no",

  [GB_BOOL_TRUE]            = "true",
  [GB_BOOL_FALSE]           = "false",

  [GB_BOOL_ENABLE]          = "enable",
  [GB_BOOL_DISABLE]         = "disable",

  [GB_BOOL_ONE]             = "1",   /* true */
  [GB_BOOL_ZERO]            = "0",

  [GB_BOOL_SET]             = "set",
  [GB_BOOL_UNSET]           = "unset",

  [GB_BOOL_FULL]            = "full",

  [GB_BOOL_MAX]             = NULL,
};


enum JsonResponseFormat jsonResponseFormatParse(const char *opt);

ssize_t glusterBlockParseSize(const char *dom, char *value);

char* glusterBlockFormatSize(const char *dom, size_t bytes);

int convertStringToTrillianParse(const char *opt);

void blockServerDefFree(blockServerDefPtr blkServers);

bool blockhostIsValid(char *status);

# endif /* _COMMON_H */