Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ ae8e7986

History | View | Annotate | Download (57.3 kB)

1 1b2adaa6 Jose A. Lopes
{-| HsConstants contains the Haskell constants
2 1b2adaa6 Jose A. Lopes
3 1b2adaa6 Jose A. Lopes
This is a transitional module complementary to 'Ganeti.Constants'.  It
4 1b2adaa6 Jose A. Lopes
is intended to contain the Haskell constants that are meant to be
5 1b2adaa6 Jose A. Lopes
generated in Python.
6 1b2adaa6 Jose A. Lopes
7 c93041a5 Jose A. Lopes
Do not write any definitions in this file other than constants.  Do
8 c93041a5 Jose A. Lopes
not even write helper functions.  The definitions in this module are
9 c93041a5 Jose A. Lopes
automatically stripped to build the Makefile.am target
10 c93041a5 Jose A. Lopes
'ListConstants.hs'.  If there are helper functions in this module,
11 c93041a5 Jose A. Lopes
they will also be dragged and it will cause compilation to fail.
12 c93041a5 Jose A. Lopes
Therefore, all helper functions should go to a separate module and
13 c93041a5 Jose A. Lopes
imported.
14 c93041a5 Jose A. Lopes
15 1b2adaa6 Jose A. Lopes
-}
16 1b2adaa6 Jose A. Lopes
17 1b2adaa6 Jose A. Lopes
{-
18 1b2adaa6 Jose A. Lopes
19 1b2adaa6 Jose A. Lopes
Copyright (C) 2013 Google Inc.
20 1b2adaa6 Jose A. Lopes
21 1b2adaa6 Jose A. Lopes
This program is free software; you can redistribute it and/or modify
22 1b2adaa6 Jose A. Lopes
it under the terms of the GNU General Public License as published by
23 1b2adaa6 Jose A. Lopes
the Free Software Foundation; either version 2 of the License, or
24 1b2adaa6 Jose A. Lopes
(at your option) any later version.
25 1b2adaa6 Jose A. Lopes
26 1b2adaa6 Jose A. Lopes
This program is distributed in the hope that it will be useful, but
27 1b2adaa6 Jose A. Lopes
WITHOUT ANY WARRANTY; without even the implied warranty of
28 1b2adaa6 Jose A. Lopes
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
29 1b2adaa6 Jose A. Lopes
General Public License for more details.
30 1b2adaa6 Jose A. Lopes
31 1b2adaa6 Jose A. Lopes
You should have received a copy of the GNU General Public License
32 1b2adaa6 Jose A. Lopes
along with this program; if not, write to the Free Software
33 1b2adaa6 Jose A. Lopes
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
34 1b2adaa6 Jose A. Lopes
02110-1301, USA.
35 1b2adaa6 Jose A. Lopes
36 1b2adaa6 Jose A. Lopes
-}
37 1b2adaa6 Jose A. Lopes
module Ganeti.HsConstants where
38 1b2adaa6 Jose A. Lopes
39 9be1ff8c Jose A. Lopes
import Control.Arrow ((***))
40 cdac0552 Jose A. Lopes
import Data.List ((\\))
41 6dc0cb59 Jose A. Lopes
import Data.Map (Map)
42 ecf43dcb Jose A. Lopes
import qualified Data.Map as Map (fromList, keys, insert)
43 6dc0cb59 Jose A. Lopes
44 26eca119 Jose A. Lopes
import AutoConf
45 5d4e1402 Jose A. Lopes
import Ganeti.ConstantUtils (PythonChar(..), FrozenSet, Protocol(..),
46 5d4e1402 Jose A. Lopes
                             buildVersion)
47 df726590 Jose A. Lopes
import qualified Ganeti.ConstantUtils as ConstantUtils
48 1c31b263 Jose A. Lopes
import Ganeti.Runtime (GanetiDaemon(..), MiscGroup(..), GanetiGroup(..),
49 1c31b263 Jose A. Lopes
                       ExtraLogReason(..))
50 8397ffde Jose A. Lopes
import Ganeti.HTools.Types (AutoRepairResult(..), AutoRepairType(..))
51 8397ffde Jose A. Lopes
import qualified Ganeti.HTools.Types as Types
52 df726590 Jose A. Lopes
import Ganeti.Logging (SyslogUsage(..))
53 df726590 Jose A. Lopes
import qualified Ganeti.Logging as Logging (syslogUsageToRaw)
54 1c31b263 Jose A. Lopes
import qualified Ganeti.Runtime as Runtime
55 85c48fbb Jose A. Lopes
import Ganeti.Types
56 85c48fbb Jose A. Lopes
import qualified Ganeti.Types as Types
57 cdac0552 Jose A. Lopes
import Ganeti.Confd.Types (ConfdRequestType(..), ConfdReqField(..),
58 cdac0552 Jose A. Lopes
                           ConfdReplyStatus(..), ConfdNodeRole(..),
59 cdac0552 Jose A. Lopes
                           ConfdErrorType(..))
60 cdac0552 Jose A. Lopes
import qualified Ganeti.Confd.Types as Types
61 85c48fbb Jose A. Lopes
62 c03224f6 Jose A. Lopes
{-# ANN module "HLint: ignore Use camelCase" #-}
63 c03224f6 Jose A. Lopes
64 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('autotools/build-bash-completion')
65 1c9e817d Jose A. Lopes
66 1c9e817d Jose A. Lopes
htoolsProgs :: [String]
67 1c9e817d Jose A. Lopes
htoolsProgs = AutoConf.htoolsProgs
68 1c9e817d Jose A. Lopes
69 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/constants.py')
70 3b170ad4 Jose A. Lopes
71 3b170ad4 Jose A. Lopes
drbdBarriers :: String
72 3b170ad4 Jose A. Lopes
drbdBarriers = AutoConf.drbdBarriers
73 3b170ad4 Jose A. Lopes
74 3b170ad4 Jose A. Lopes
drbdNoMetaFlush :: Bool
75 3b170ad4 Jose A. Lopes
drbdNoMetaFlush = AutoConf.drbdNoMetaFlush
76 3b170ad4 Jose A. Lopes
77 3b170ad4 Jose A. Lopes
lvmStripecount :: Int
78 3b170ad4 Jose A. Lopes
lvmStripecount = AutoConf.lvmStripecount
79 3b170ad4 Jose A. Lopes
80 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/pathutils.py')
81 1c9e817d Jose A. Lopes
82 1c9e817d Jose A. Lopes
-- ** Build-time constants
83 1c9e817d Jose A. Lopes
84 1c9e817d Jose A. Lopes
exportDir :: String
85 1c9e817d Jose A. Lopes
exportDir = AutoConf.exportDir
86 1c9e817d Jose A. Lopes
87 1c9e817d Jose A. Lopes
osSearchPath :: [String]
88 1c9e817d Jose A. Lopes
osSearchPath = AutoConf.osSearchPath
89 1c9e817d Jose A. Lopes
90 1c9e817d Jose A. Lopes
esSearchPath :: [String]
91 1c9e817d Jose A. Lopes
esSearchPath = AutoConf.esSearchPath
92 1c9e817d Jose A. Lopes
93 1c9e817d Jose A. Lopes
sshConfigDir :: String
94 1c9e817d Jose A. Lopes
sshConfigDir = AutoConf.sshConfigDir
95 1c9e817d Jose A. Lopes
96 1c9e817d Jose A. Lopes
xenConfigDir :: String
97 1c9e817d Jose A. Lopes
xenConfigDir = AutoConf.xenConfigDir
98 1c9e817d Jose A. Lopes
99 1c9e817d Jose A. Lopes
sysconfdir :: String
100 1c9e817d Jose A. Lopes
sysconfdir = AutoConf.sysconfdir
101 1c9e817d Jose A. Lopes
102 1c9e817d Jose A. Lopes
toolsdir :: String
103 1c9e817d Jose A. Lopes
toolsdir = AutoConf.toolsdir
104 1c9e817d Jose A. Lopes
105 1c9e817d Jose A. Lopes
localstatedir :: String
106 1c9e817d Jose A. Lopes
localstatedir = AutoConf.localstatedir
107 1c9e817d Jose A. Lopes
108 1c9e817d Jose A. Lopes
-- ** Paths which don't change for a virtual cluster
109 1c9e817d Jose A. Lopes
110 1c9e817d Jose A. Lopes
pkglibdir :: String
111 1c9e817d Jose A. Lopes
pkglibdir = AutoConf.pkglibdir
112 1c9e817d Jose A. Lopes
113 9bfcf2e9 Klaus Aehlig
sharedir :: String
114 9bfcf2e9 Klaus Aehlig
sharedir = AutoConf.sharedir
115 9bfcf2e9 Klaus Aehlig
116 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/build/sphinx_ext.py')
117 1c9e817d Jose A. Lopes
118 1c9e817d Jose A. Lopes
manPages :: Map String Int
119 1c9e817d Jose A. Lopes
manPages = Map.fromList AutoConf.manPages
120 1c9e817d Jose A. Lopes
121 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for QA cluster only ('qa/qa_cluster.py')
122 1c9e817d Jose A. Lopes
123 1c9e817d Jose A. Lopes
versionedsharedir :: String
124 1c9e817d Jose A. Lopes
versionedsharedir = AutoConf.versionedsharedir
125 1c9e817d Jose A. Lopes
126 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('tests/py/docs_unittest.py')
127 1c9e817d Jose A. Lopes
128 1c9e817d Jose A. Lopes
gntScripts :: [String]
129 1c9e817d Jose A. Lopes
gntScripts = AutoConf.gntScripts
130 1c9e817d Jose A. Lopes
131 3b170ad4 Jose A. Lopes
-- * Various versions
132 3b170ad4 Jose A. Lopes
133 3b170ad4 Jose A. Lopes
releaseVersion :: String
134 3b170ad4 Jose A. Lopes
releaseVersion = AutoConf.packageVersion
135 3b170ad4 Jose A. Lopes
136 8c44d5b3 Klaus Aehlig
versionMajor :: Int
137 8c44d5b3 Klaus Aehlig
versionMajor = AutoConf.versionMajor
138 8c44d5b3 Klaus Aehlig
139 8c44d5b3 Klaus Aehlig
versionMinor :: Int
140 8c44d5b3 Klaus Aehlig
versionMinor = AutoConf.versionMinor
141 8c44d5b3 Klaus Aehlig
142 8c44d5b3 Klaus Aehlig
versionRevision :: Int
143 8c44d5b3 Klaus Aehlig
versionRevision = AutoConf.versionRevision
144 8c44d5b3 Klaus Aehlig
145 9b20010b Klaus Aehlig
dirVersion :: String
146 9b20010b Klaus Aehlig
dirVersion = AutoConf.dirVersion
147 9b20010b Klaus Aehlig
148 c87997d2 Jose A. Lopes
osApiV10 :: Int
149 c87997d2 Jose A. Lopes
osApiV10 = 10
150 c87997d2 Jose A. Lopes
151 c87997d2 Jose A. Lopes
osApiV15 :: Int
152 c87997d2 Jose A. Lopes
osApiV15 = 15
153 c87997d2 Jose A. Lopes
154 c87997d2 Jose A. Lopes
osApiV20 :: Int
155 c87997d2 Jose A. Lopes
osApiV20 = 20
156 c87997d2 Jose A. Lopes
157 c87997d2 Jose A. Lopes
osApiVersions :: FrozenSet Int
158 c87997d2 Jose A. Lopes
osApiVersions = ConstantUtils.mkSet [osApiV10, osApiV15, osApiV20]
159 c87997d2 Jose A. Lopes
160 14795b58 Jose A. Lopes
exportVersion :: Int
161 14795b58 Jose A. Lopes
exportVersion = 0
162 14795b58 Jose A. Lopes
163 14795b58 Jose A. Lopes
rapiVersion :: Int
164 14795b58 Jose A. Lopes
rapiVersion = 2
165 14795b58 Jose A. Lopes
166 3b170ad4 Jose A. Lopes
configMajor :: Int
167 3b170ad4 Jose A. Lopes
configMajor = AutoConf.versionMajor
168 3b170ad4 Jose A. Lopes
169 3b170ad4 Jose A. Lopes
configMinor :: Int
170 3b170ad4 Jose A. Lopes
configMinor = AutoConf.versionMinor
171 3b170ad4 Jose A. Lopes
172 3b170ad4 Jose A. Lopes
-- | The configuration is supposed to remain stable across
173 3b170ad4 Jose A. Lopes
-- revisions. Therefore, the revision number is cleared to '0'.
174 3b170ad4 Jose A. Lopes
configRevision :: Int
175 3b170ad4 Jose A. Lopes
configRevision = 0
176 3b170ad4 Jose A. Lopes
177 3b170ad4 Jose A. Lopes
configVersion :: Int
178 3b170ad4 Jose A. Lopes
configVersion = buildVersion configMajor configMinor configRevision
179 3b170ad4 Jose A. Lopes
180 3b170ad4 Jose A. Lopes
-- | Similarly to the configuration (see 'configRevision'), the
181 3b170ad4 Jose A. Lopes
-- protocols are supposed to remain stable across revisions.
182 3b170ad4 Jose A. Lopes
protocolVersion :: Int
183 3b170ad4 Jose A. Lopes
protocolVersion = buildVersion configMajor configMinor configRevision
184 3b170ad4 Jose A. Lopes
185 c890f66a Jose A. Lopes
-- * User separation
186 cdac0552 Jose A. Lopes
187 c890f66a Jose A. Lopes
daemonsGroup :: String
188 c890f66a Jose A. Lopes
daemonsGroup = Runtime.daemonGroup (ExtraGroup DaemonsGroup)
189 85c48fbb Jose A. Lopes
190 c890f66a Jose A. Lopes
adminGroup :: String
191 c890f66a Jose A. Lopes
adminGroup = Runtime.daemonGroup (ExtraGroup AdminGroup)
192 85c48fbb Jose A. Lopes
193 c890f66a Jose A. Lopes
masterdUser :: String
194 c890f66a Jose A. Lopes
masterdUser = Runtime.daemonUser GanetiMasterd
195 85c48fbb Jose A. Lopes
196 c890f66a Jose A. Lopes
masterdGroup :: String
197 c890f66a Jose A. Lopes
masterdGroup = Runtime.daemonGroup (DaemonGroup GanetiMasterd)
198 85c48fbb Jose A. Lopes
199 c890f66a Jose A. Lopes
rapiUser :: String
200 c890f66a Jose A. Lopes
rapiUser = Runtime.daemonUser GanetiRapi
201 85c48fbb Jose A. Lopes
202 c890f66a Jose A. Lopes
rapiGroup :: String
203 c890f66a Jose A. Lopes
rapiGroup = Runtime.daemonGroup (DaemonGroup GanetiRapi)
204 85c48fbb Jose A. Lopes
205 c890f66a Jose A. Lopes
confdUser :: String
206 c890f66a Jose A. Lopes
confdUser = Runtime.daemonUser GanetiConfd
207 85c48fbb Jose A. Lopes
208 c890f66a Jose A. Lopes
confdGroup :: String
209 c890f66a Jose A. Lopes
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
210 85c48fbb Jose A. Lopes
211 c890f66a Jose A. Lopes
luxidUser :: String
212 c890f66a Jose A. Lopes
luxidUser = Runtime.daemonUser GanetiLuxid
213 85c48fbb Jose A. Lopes
214 c890f66a Jose A. Lopes
luxidGroup :: String
215 c890f66a Jose A. Lopes
luxidGroup = Runtime.daemonGroup (DaemonGroup GanetiLuxid)
216 85c48fbb Jose A. Lopes
217 c890f66a Jose A. Lopes
nodedUser :: String
218 c890f66a Jose A. Lopes
nodedUser = Runtime.daemonUser GanetiNoded
219 85c48fbb Jose A. Lopes
220 c890f66a Jose A. Lopes
nodedGroup :: String
221 c890f66a Jose A. Lopes
nodedGroup = Runtime.daemonGroup (DaemonGroup GanetiNoded)
222 85c48fbb Jose A. Lopes
223 c890f66a Jose A. Lopes
mondUser :: String
224 c890f66a Jose A. Lopes
mondUser = Runtime.daemonUser GanetiMond
225 85c48fbb Jose A. Lopes
226 c890f66a Jose A. Lopes
mondGroup :: String
227 c890f66a Jose A. Lopes
mondGroup = Runtime.daemonGroup (DaemonGroup GanetiMond)
228 85c48fbb Jose A. Lopes
229 c890f66a Jose A. Lopes
sshLoginUser :: String
230 c890f66a Jose A. Lopes
sshLoginUser = AutoConf.sshLoginUser
231 85c48fbb Jose A. Lopes
232 c890f66a Jose A. Lopes
sshConsoleUser :: String
233 c890f66a Jose A. Lopes
sshConsoleUser = AutoConf.sshConsoleUser
234 85c48fbb Jose A. Lopes
235 e0cd6f5d Jose A. Lopes
-- * Cpu pinning separators and constants
236 e0cd6f5d Jose A. Lopes
237 e0cd6f5d Jose A. Lopes
cpuPinningSep :: String
238 e0cd6f5d Jose A. Lopes
cpuPinningSep = ":"
239 e0cd6f5d Jose A. Lopes
240 e0cd6f5d Jose A. Lopes
cpuPinningAll :: String
241 e0cd6f5d Jose A. Lopes
cpuPinningAll = "all"
242 e0cd6f5d Jose A. Lopes
243 e0cd6f5d Jose A. Lopes
-- | Internal representation of "all"
244 e0cd6f5d Jose A. Lopes
cpuPinningAllVal :: Int
245 e0cd6f5d Jose A. Lopes
cpuPinningAllVal = -1
246 e0cd6f5d Jose A. Lopes
247 e0cd6f5d Jose A. Lopes
-- | One "all" entry in a CPU list means CPU pinning is off
248 e0cd6f5d Jose A. Lopes
cpuPinningOff :: [Int]
249 e0cd6f5d Jose A. Lopes
cpuPinningOff = [cpuPinningAllVal]
250 e0cd6f5d Jose A. Lopes
251 e0cd6f5d Jose A. Lopes
-- | A Xen-specific implementation detail is that there is no way to
252 e0cd6f5d Jose A. Lopes
-- actually say "use any cpu for pinning" in a Xen configuration file,
253 e0cd6f5d Jose A. Lopes
-- as opposed to the command line, where you can say
254 e0cd6f5d Jose A. Lopes
-- @
255 e0cd6f5d Jose A. Lopes
-- xm vcpu-pin <domain> <vcpu> all
256 e0cd6f5d Jose A. Lopes
-- @
257 e0cd6f5d Jose A. Lopes
--
258 e0cd6f5d Jose A. Lopes
-- The workaround used in Xen is "0-63" (see source code function
259 e0cd6f5d Jose A. Lopes
-- "xm_vcpu_pin" in @<xen-source>/tools/python/xen/xm/main.py@).
260 e0cd6f5d Jose A. Lopes
--
261 e0cd6f5d Jose A. Lopes
-- To support future changes, the following constant is treated as a
262 e0cd6f5d Jose A. Lopes
-- blackbox string that simply means "use any cpu for pinning under
263 e0cd6f5d Jose A. Lopes
-- xen".
264 e0cd6f5d Jose A. Lopes
cpuPinningAllXen :: String
265 e0cd6f5d Jose A. Lopes
cpuPinningAllXen = "0-63"
266 e0cd6f5d Jose A. Lopes
267 e0cd6f5d Jose A. Lopes
-- | A KVM-specific implementation detail - the following value is
268 e0cd6f5d Jose A. Lopes
-- used to set CPU affinity to all processors (--0 through --31), per
269 e0cd6f5d Jose A. Lopes
-- taskset man page.
270 e0cd6f5d Jose A. Lopes
--
271 e0cd6f5d Jose A. Lopes
-- FIXME: This only works for machines with up to 32 CPU cores
272 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm :: Int
273 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm = 0xFFFFFFFF
274 e0cd6f5d Jose A. Lopes
275 74129b52 Jose A. Lopes
-- * Wipe
276 74129b52 Jose A. Lopes
277 74129b52 Jose A. Lopes
ddCmd :: String
278 74129b52 Jose A. Lopes
ddCmd = "dd"
279 74129b52 Jose A. Lopes
280 74129b52 Jose A. Lopes
-- | 1GB
281 74129b52 Jose A. Lopes
maxWipeChunk :: Int
282 74129b52 Jose A. Lopes
maxWipeChunk = 1024
283 74129b52 Jose A. Lopes
284 74129b52 Jose A. Lopes
minWipeChunkPercent :: Int
285 74129b52 Jose A. Lopes
minWipeChunkPercent = 10
286 74129b52 Jose A. Lopes
287 74129b52 Jose A. Lopes
-- * Directories
288 74129b52 Jose A. Lopes
289 74129b52 Jose A. Lopes
runDirsMode :: Int
290 74129b52 Jose A. Lopes
runDirsMode = 0o775
291 74129b52 Jose A. Lopes
292 74129b52 Jose A. Lopes
secureDirMode :: Int
293 74129b52 Jose A. Lopes
secureDirMode = 0o700
294 74129b52 Jose A. Lopes
295 74129b52 Jose A. Lopes
secureFileMode :: Int
296 74129b52 Jose A. Lopes
secureFileMode = 0o600
297 74129b52 Jose A. Lopes
298 74129b52 Jose A. Lopes
adoptableBlockdevRoot :: String
299 74129b52 Jose A. Lopes
adoptableBlockdevRoot = "/dev/disk/"
300 74129b52 Jose A. Lopes
301 3b170ad4 Jose A. Lopes
-- * 'autoconf' enable/disable
302 3b170ad4 Jose A. Lopes
303 3b170ad4 Jose A. Lopes
enableConfd :: Bool
304 3b170ad4 Jose A. Lopes
enableConfd = AutoConf.enableConfd
305 3b170ad4 Jose A. Lopes
306 3b170ad4 Jose A. Lopes
enableMond :: Bool
307 3b170ad4 Jose A. Lopes
enableMond = AutoConf.enableMond
308 3b170ad4 Jose A. Lopes
309 3b170ad4 Jose A. Lopes
enableRestrictedCommands :: Bool
310 3b170ad4 Jose A. Lopes
enableRestrictedCommands = AutoConf.enableRestrictedCommands
311 3b170ad4 Jose A. Lopes
312 3b170ad4 Jose A. Lopes
enableSplitQuery :: Bool
313 3b170ad4 Jose A. Lopes
enableSplitQuery = AutoConf.enableSplitQuery
314 3b170ad4 Jose A. Lopes
315 c890f66a Jose A. Lopes
-- * SSH constants
316 85c48fbb Jose A. Lopes
317 c890f66a Jose A. Lopes
ssh :: String
318 c890f66a Jose A. Lopes
ssh = "ssh"
319 85c48fbb Jose A. Lopes
320 c890f66a Jose A. Lopes
scp :: String
321 c890f66a Jose A. Lopes
scp = "scp"
322 85c48fbb Jose A. Lopes
323 c890f66a Jose A. Lopes
-- * Daemons
324 85c48fbb Jose A. Lopes
325 c890f66a Jose A. Lopes
confd :: String
326 c890f66a Jose A. Lopes
confd = Runtime.daemonName GanetiConfd
327 85c48fbb Jose A. Lopes
328 c890f66a Jose A. Lopes
masterd :: String
329 c890f66a Jose A. Lopes
masterd = Runtime.daemonName GanetiMasterd
330 85c48fbb Jose A. Lopes
331 c890f66a Jose A. Lopes
mond :: String
332 c890f66a Jose A. Lopes
mond = Runtime.daemonName GanetiMond
333 85c48fbb Jose A. Lopes
334 c890f66a Jose A. Lopes
noded :: String
335 c890f66a Jose A. Lopes
noded = Runtime.daemonName GanetiNoded
336 85c48fbb Jose A. Lopes
337 c890f66a Jose A. Lopes
luxid :: String
338 c890f66a Jose A. Lopes
luxid = Runtime.daemonName GanetiLuxid
339 85c48fbb Jose A. Lopes
340 c890f66a Jose A. Lopes
rapi :: String
341 c890f66a Jose A. Lopes
rapi = Runtime.daemonName GanetiRapi
342 85c48fbb Jose A. Lopes
343 c890f66a Jose A. Lopes
daemons :: FrozenSet String
344 c890f66a Jose A. Lopes
daemons =
345 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [confd,
346 c890f66a Jose A. Lopes
                       luxid,
347 c890f66a Jose A. Lopes
                       masterd,
348 c890f66a Jose A. Lopes
                       mond,
349 c890f66a Jose A. Lopes
                       noded,
350 c890f66a Jose A. Lopes
                       rapi]
351 85c48fbb Jose A. Lopes
352 c890f66a Jose A. Lopes
defaultConfdPort :: Int
353 c890f66a Jose A. Lopes
defaultConfdPort = 1814
354 85c48fbb Jose A. Lopes
355 c890f66a Jose A. Lopes
defaultMondPort :: Int
356 c890f66a Jose A. Lopes
defaultMondPort = 1815
357 85c48fbb Jose A. Lopes
358 c890f66a Jose A. Lopes
defaultNodedPort :: Int
359 c890f66a Jose A. Lopes
defaultNodedPort = 1811
360 85c48fbb Jose A. Lopes
361 c890f66a Jose A. Lopes
defaultRapiPort :: Int
362 c890f66a Jose A. Lopes
defaultRapiPort = 5080
363 85c48fbb Jose A. Lopes
364 c890f66a Jose A. Lopes
daemonsPorts :: Map String (Protocol, Int)
365 c890f66a Jose A. Lopes
daemonsPorts =
366 c890f66a Jose A. Lopes
  Map.fromList [(confd, (Udp, defaultConfdPort)),
367 c890f66a Jose A. Lopes
                (mond, (Tcp, defaultMondPort)),
368 c890f66a Jose A. Lopes
                (noded, (Tcp, defaultNodedPort)),
369 c890f66a Jose A. Lopes
                (rapi, (Tcp, defaultRapiPort)),
370 c890f66a Jose A. Lopes
                (ssh, (Tcp, 22))]
371 85c48fbb Jose A. Lopes
372 74129b52 Jose A. Lopes
firstDrbdPort :: Int
373 74129b52 Jose A. Lopes
firstDrbdPort = 11000
374 74129b52 Jose A. Lopes
375 74129b52 Jose A. Lopes
lastDrbdPort :: Int
376 74129b52 Jose A. Lopes
lastDrbdPort = 14999
377 74129b52 Jose A. Lopes
378 c890f66a Jose A. Lopes
daemonsLogbase :: Map String String
379 c890f66a Jose A. Lopes
daemonsLogbase =
380 c890f66a Jose A. Lopes
  Map.fromList
381 c890f66a Jose A. Lopes
  [ (Runtime.daemonName d, Runtime.daemonLogBase d) | d <- [minBound..] ]
382 85c48fbb Jose A. Lopes
383 c890f66a Jose A. Lopes
extraLogreasonAccess :: String
384 c890f66a Jose A. Lopes
extraLogreasonAccess = Runtime.daemonsExtraLogbase GanetiMond AccessLog
385 85c48fbb Jose A. Lopes
386 c890f66a Jose A. Lopes
extraLogreasonError :: String
387 c890f66a Jose A. Lopes
extraLogreasonError = Runtime.daemonsExtraLogbase GanetiMond ErrorLog
388 85c48fbb Jose A. Lopes
389 c890f66a Jose A. Lopes
devConsole :: String
390 c890f66a Jose A. Lopes
devConsole = ConstantUtils.devConsole
391 85c48fbb Jose A. Lopes
392 0412a686 Jose A. Lopes
procMounts :: String
393 0412a686 Jose A. Lopes
procMounts = "/proc/mounts"
394 0412a686 Jose A. Lopes
395 5d4e1402 Jose A. Lopes
-- * Luxi (Local UniX Interface) related constants
396 5d4e1402 Jose A. Lopes
397 5d4e1402 Jose A. Lopes
luxiEom :: PythonChar
398 5d4e1402 Jose A. Lopes
luxiEom = PythonChar '\x03'
399 5d4e1402 Jose A. Lopes
400 5d4e1402 Jose A. Lopes
-- | Environment variable for the luxi override socket
401 5d4e1402 Jose A. Lopes
luxiOverride :: String
402 5d4e1402 Jose A. Lopes
luxiOverride = "FORCE_LUXI_SOCKET"
403 5d4e1402 Jose A. Lopes
404 5d4e1402 Jose A. Lopes
luxiOverrideMaster :: String
405 5d4e1402 Jose A. Lopes
luxiOverrideMaster = "master"
406 5d4e1402 Jose A. Lopes
407 5d4e1402 Jose A. Lopes
luxiOverrideQuery :: String
408 5d4e1402 Jose A. Lopes
luxiOverrideQuery = "query"
409 5d4e1402 Jose A. Lopes
410 5d4e1402 Jose A. Lopes
luxiVersion :: Int
411 5d4e1402 Jose A. Lopes
luxiVersion = configVersion
412 5d4e1402 Jose A. Lopes
413 c890f66a Jose A. Lopes
-- * Syslog
414 85c48fbb Jose A. Lopes
415 c890f66a Jose A. Lopes
syslogUsage :: String
416 c890f66a Jose A. Lopes
syslogUsage = AutoConf.syslogUsage
417 85c48fbb Jose A. Lopes
418 c890f66a Jose A. Lopes
syslogNo :: String
419 c890f66a Jose A. Lopes
syslogNo = Logging.syslogUsageToRaw SyslogNo
420 85c48fbb Jose A. Lopes
421 c890f66a Jose A. Lopes
syslogYes :: String
422 c890f66a Jose A. Lopes
syslogYes = Logging.syslogUsageToRaw SyslogYes
423 85c48fbb Jose A. Lopes
424 c890f66a Jose A. Lopes
syslogOnly :: String
425 c890f66a Jose A. Lopes
syslogOnly = Logging.syslogUsageToRaw SyslogOnly
426 85c48fbb Jose A. Lopes
427 c890f66a Jose A. Lopes
syslogSocket :: String
428 c890f66a Jose A. Lopes
syslogSocket = "/dev/log"
429 85c48fbb Jose A. Lopes
430 0412a686 Jose A. Lopes
exportConfFile :: String
431 0412a686 Jose A. Lopes
exportConfFile = "config.ini"
432 0412a686 Jose A. Lopes
433 c890f66a Jose A. Lopes
-- * Xen
434 85c48fbb Jose A. Lopes
435 c890f66a Jose A. Lopes
xenBootloader :: String
436 c890f66a Jose A. Lopes
xenBootloader = AutoConf.xenBootloader
437 85c48fbb Jose A. Lopes
438 c890f66a Jose A. Lopes
xenCmdXl :: String
439 c890f66a Jose A. Lopes
xenCmdXl = "xl"
440 85c48fbb Jose A. Lopes
441 c890f66a Jose A. Lopes
xenCmdXm :: String
442 c890f66a Jose A. Lopes
xenCmdXm = "xm"
443 85c48fbb Jose A. Lopes
444 c890f66a Jose A. Lopes
xenInitrd :: String
445 c890f66a Jose A. Lopes
xenInitrd = AutoConf.xenInitrd
446 85c48fbb Jose A. Lopes
447 c890f66a Jose A. Lopes
xenKernel :: String
448 c890f66a Jose A. Lopes
xenKernel = AutoConf.xenKernel
449 85c48fbb Jose A. Lopes
450 c890f66a Jose A. Lopes
-- FIXME: perhaps rename to 'validXenCommands' for consistency with
451 c890f66a Jose A. Lopes
-- other constants
452 c890f66a Jose A. Lopes
knownXenCommands :: FrozenSet String
453 c890f66a Jose A. Lopes
knownXenCommands = ConstantUtils.mkSet [xenCmdXl, xenCmdXm]
454 85c48fbb Jose A. Lopes
455 3b170ad4 Jose A. Lopes
-- * KVM and socat
456 3b170ad4 Jose A. Lopes
457 3b170ad4 Jose A. Lopes
kvmPath :: String
458 3b170ad4 Jose A. Lopes
kvmPath = AutoConf.kvmPath
459 3b170ad4 Jose A. Lopes
460 3b170ad4 Jose A. Lopes
kvmKernel :: String
461 3b170ad4 Jose A. Lopes
kvmKernel = AutoConf.kvmKernel
462 3b170ad4 Jose A. Lopes
463 3b170ad4 Jose A. Lopes
socatEscapeCode :: String
464 3b170ad4 Jose A. Lopes
socatEscapeCode = "0x1d"
465 3b170ad4 Jose A. Lopes
466 3b170ad4 Jose A. Lopes
socatPath :: String
467 3b170ad4 Jose A. Lopes
socatPath = AutoConf.socatPath
468 3b170ad4 Jose A. Lopes
469 3b170ad4 Jose A. Lopes
socatUseCompress :: Bool
470 3b170ad4 Jose A. Lopes
socatUseCompress = AutoConf.socatUseCompress
471 3b170ad4 Jose A. Lopes
472 3b170ad4 Jose A. Lopes
socatUseEscape :: Bool
473 3b170ad4 Jose A. Lopes
socatUseEscape = AutoConf.socatUseEscape
474 3b170ad4 Jose A. Lopes
475 3f5fd161 Jose A. Lopes
-- * Console types
476 3f5fd161 Jose A. Lopes
477 3f5fd161 Jose A. Lopes
-- | Display a message for console access
478 3f5fd161 Jose A. Lopes
consMessage :: String
479 3f5fd161 Jose A. Lopes
consMessage = "msg"
480 3f5fd161 Jose A. Lopes
481 3f5fd161 Jose A. Lopes
-- | Console as SPICE server
482 3f5fd161 Jose A. Lopes
consSpice :: String
483 3f5fd161 Jose A. Lopes
consSpice = "spice"
484 3f5fd161 Jose A. Lopes
485 3f5fd161 Jose A. Lopes
-- | Console as SSH command
486 3f5fd161 Jose A. Lopes
consSsh :: String
487 3f5fd161 Jose A. Lopes
consSsh = "ssh"
488 3f5fd161 Jose A. Lopes
489 3f5fd161 Jose A. Lopes
-- | Console as VNC server
490 3f5fd161 Jose A. Lopes
consVnc :: String
491 3f5fd161 Jose A. Lopes
consVnc = "vnc"
492 3f5fd161 Jose A. Lopes
493 3f5fd161 Jose A. Lopes
consAll :: FrozenSet String
494 3f5fd161 Jose A. Lopes
consAll = ConstantUtils.mkSet [consMessage, consSpice, consSsh, consVnc]
495 3f5fd161 Jose A. Lopes
496 3f5fd161 Jose A. Lopes
-- | RSA key bit length
497 3f5fd161 Jose A. Lopes
--
498 3f5fd161 Jose A. Lopes
-- For RSA keys more bits are better, but they also make operations
499 3f5fd161 Jose A. Lopes
-- more expensive. NIST SP 800-131 recommends a minimum of 2048 bits
500 3f5fd161 Jose A. Lopes
-- from the year 2010 on.
501 3f5fd161 Jose A. Lopes
rsaKeyBits :: Int
502 3f5fd161 Jose A. Lopes
rsaKeyBits = 2048
503 3f5fd161 Jose A. Lopes
504 3f5fd161 Jose A. Lopes
-- | Ciphers allowed for SSL connections.
505 3f5fd161 Jose A. Lopes
--
506 3f5fd161 Jose A. Lopes
-- For the format, see ciphers(1). A better way to disable ciphers
507 3f5fd161 Jose A. Lopes
-- would be to use the exclamation mark (!), but socat versions below
508 3f5fd161 Jose A. Lopes
-- 1.5 can't parse exclamation marks in options properly. When
509 3f5fd161 Jose A. Lopes
-- modifying the ciphers, ensure not to accidentially add something
510 3f5fd161 Jose A. Lopes
-- after it's been removed. Use the "openssl" utility to check the
511 3f5fd161 Jose A. Lopes
-- allowed ciphers, e.g.  "openssl ciphers -v HIGH:-DES".
512 3f5fd161 Jose A. Lopes
opensslCiphers :: String
513 3f5fd161 Jose A. Lopes
opensslCiphers = "HIGH:-DES:-3DES:-EXPORT:-ADH"
514 3f5fd161 Jose A. Lopes
515 3f5fd161 Jose A. Lopes
-- * X509
516 3f5fd161 Jose A. Lopes
517 3f5fd161 Jose A. Lopes
-- | commonName (CN) used in certificates
518 3f5fd161 Jose A. Lopes
x509CertCn :: String
519 3f5fd161 Jose A. Lopes
x509CertCn = "ganeti.example.com"
520 3f5fd161 Jose A. Lopes
521 3f5fd161 Jose A. Lopes
-- | Default validity of certificates in days
522 3f5fd161 Jose A. Lopes
x509CertDefaultValidity :: Int
523 3f5fd161 Jose A. Lopes
x509CertDefaultValidity = 365 * 5
524 3f5fd161 Jose A. Lopes
525 3f5fd161 Jose A. Lopes
x509CertSignatureHeader :: String
526 3f5fd161 Jose A. Lopes
x509CertSignatureHeader = "X-Ganeti-Signature"
527 3f5fd161 Jose A. Lopes
528 3f5fd161 Jose A. Lopes
-- | Digest used to sign certificates ("openssl x509" uses SHA1 by default)
529 3f5fd161 Jose A. Lopes
x509CertSignDigest :: String
530 3f5fd161 Jose A. Lopes
x509CertSignDigest = "SHA1"
531 3f5fd161 Jose A. Lopes
532 3f5fd161 Jose A. Lopes
-- * Import/export daemon mode
533 3f5fd161 Jose A. Lopes
534 3f5fd161 Jose A. Lopes
iemExport :: String
535 3f5fd161 Jose A. Lopes
iemExport = "export"
536 3f5fd161 Jose A. Lopes
537 3f5fd161 Jose A. Lopes
iemImport :: String
538 3f5fd161 Jose A. Lopes
iemImport = "import"
539 3f5fd161 Jose A. Lopes
540 3f5fd161 Jose A. Lopes
-- * Import/export transport compression
541 3f5fd161 Jose A. Lopes
542 3f5fd161 Jose A. Lopes
iecGzip :: String
543 3f5fd161 Jose A. Lopes
iecGzip = "gzip"
544 3f5fd161 Jose A. Lopes
545 3f5fd161 Jose A. Lopes
iecNone :: String
546 3f5fd161 Jose A. Lopes
iecNone = "none"
547 3f5fd161 Jose A. Lopes
548 3f5fd161 Jose A. Lopes
iecAll :: [String]
549 3f5fd161 Jose A. Lopes
iecAll = [iecGzip, iecNone]
550 3f5fd161 Jose A. Lopes
551 3f5fd161 Jose A. Lopes
ieCustomSize :: String
552 3f5fd161 Jose A. Lopes
ieCustomSize = "fd"
553 3f5fd161 Jose A. Lopes
554 3f5fd161 Jose A. Lopes
-- * Import/export I/O
555 3f5fd161 Jose A. Lopes
556 3f5fd161 Jose A. Lopes
-- | Direct file I/O, equivalent to a shell's I/O redirection using
557 3f5fd161 Jose A. Lopes
-- '<' or '>'
558 3f5fd161 Jose A. Lopes
ieioFile :: String
559 3f5fd161 Jose A. Lopes
ieioFile = "file"
560 3f5fd161 Jose A. Lopes
561 3f5fd161 Jose A. Lopes
-- | Raw block device I/O using "dd"
562 3f5fd161 Jose A. Lopes
ieioRawDisk :: String
563 3f5fd161 Jose A. Lopes
ieioRawDisk = "raw"
564 3f5fd161 Jose A. Lopes
565 3f5fd161 Jose A. Lopes
-- | OS definition import/export script
566 3f5fd161 Jose A. Lopes
ieioScript :: String
567 3f5fd161 Jose A. Lopes
ieioScript = "script"
568 3f5fd161 Jose A. Lopes
569 3f5fd161 Jose A. Lopes
-- * Hooks
570 3f5fd161 Jose A. Lopes
571 3f5fd161 Jose A. Lopes
hooksNameCfgupdate :: String
572 3f5fd161 Jose A. Lopes
hooksNameCfgupdate = "config-update"
573 3f5fd161 Jose A. Lopes
574 3f5fd161 Jose A. Lopes
hooksNameWatcher :: String
575 3f5fd161 Jose A. Lopes
hooksNameWatcher = "watcher"
576 3f5fd161 Jose A. Lopes
577 3f5fd161 Jose A. Lopes
hooksPath :: String
578 3f5fd161 Jose A. Lopes
hooksPath = "/sbin:/bin:/usr/sbin:/usr/bin"
579 3f5fd161 Jose A. Lopes
580 3f5fd161 Jose A. Lopes
hooksPhasePost :: String
581 3f5fd161 Jose A. Lopes
hooksPhasePost = "post"
582 3f5fd161 Jose A. Lopes
583 3f5fd161 Jose A. Lopes
hooksPhasePre :: String
584 3f5fd161 Jose A. Lopes
hooksPhasePre = "pre"
585 3f5fd161 Jose A. Lopes
586 3f5fd161 Jose A. Lopes
hooksVersion :: Int
587 3f5fd161 Jose A. Lopes
hooksVersion = 2
588 3f5fd161 Jose A. Lopes
589 3f5fd161 Jose A. Lopes
-- * Hooks subject type (what object type does the LU deal with)
590 3f5fd161 Jose A. Lopes
591 3f5fd161 Jose A. Lopes
htypeCluster :: String
592 3f5fd161 Jose A. Lopes
htypeCluster = "CLUSTER"
593 3f5fd161 Jose A. Lopes
594 3f5fd161 Jose A. Lopes
htypeGroup :: String
595 3f5fd161 Jose A. Lopes
htypeGroup = "GROUP"
596 3f5fd161 Jose A. Lopes
597 3f5fd161 Jose A. Lopes
htypeInstance :: String
598 3f5fd161 Jose A. Lopes
htypeInstance = "INSTANCE"
599 3f5fd161 Jose A. Lopes
600 3f5fd161 Jose A. Lopes
htypeNetwork :: String
601 3f5fd161 Jose A. Lopes
htypeNetwork = "NETWORK"
602 3f5fd161 Jose A. Lopes
603 3f5fd161 Jose A. Lopes
htypeNode :: String
604 3f5fd161 Jose A. Lopes
htypeNode = "NODE"
605 3f5fd161 Jose A. Lopes
606 3f5fd161 Jose A. Lopes
-- * Hkr
607 3f5fd161 Jose A. Lopes
608 3f5fd161 Jose A. Lopes
hkrSkip :: Int
609 3f5fd161 Jose A. Lopes
hkrSkip = 0
610 3f5fd161 Jose A. Lopes
611 3f5fd161 Jose A. Lopes
hkrFail :: Int
612 3f5fd161 Jose A. Lopes
hkrFail = 1
613 3f5fd161 Jose A. Lopes
614 3f5fd161 Jose A. Lopes
hkrSuccess :: Int
615 3f5fd161 Jose A. Lopes
hkrSuccess = 2
616 3f5fd161 Jose A. Lopes
617 c890f66a Jose A. Lopes
-- * Storage types
618 85c48fbb Jose A. Lopes
619 c890f66a Jose A. Lopes
stBlock :: String
620 c890f66a Jose A. Lopes
stBlock = Types.storageTypeToRaw StorageBlock
621 85c48fbb Jose A. Lopes
622 c890f66a Jose A. Lopes
stDiskless :: String
623 c890f66a Jose A. Lopes
stDiskless = Types.storageTypeToRaw StorageDiskless
624 85c48fbb Jose A. Lopes
625 c890f66a Jose A. Lopes
stExt :: String
626 c890f66a Jose A. Lopes
stExt = Types.storageTypeToRaw StorageExt
627 85c48fbb Jose A. Lopes
628 c890f66a Jose A. Lopes
stFile :: String
629 c890f66a Jose A. Lopes
stFile = Types.storageTypeToRaw StorageFile
630 85c48fbb Jose A. Lopes
631 c890f66a Jose A. Lopes
stLvmPv :: String
632 c890f66a Jose A. Lopes
stLvmPv = Types.storageTypeToRaw StorageLvmPv
633 85c48fbb Jose A. Lopes
634 c890f66a Jose A. Lopes
stLvmVg :: String
635 c890f66a Jose A. Lopes
stLvmVg = Types.storageTypeToRaw StorageLvmVg
636 85c48fbb Jose A. Lopes
637 c890f66a Jose A. Lopes
stRados :: String
638 c890f66a Jose A. Lopes
stRados = Types.storageTypeToRaw StorageRados
639 85c48fbb Jose A. Lopes
640 c890f66a Jose A. Lopes
storageTypes :: FrozenSet String
641 c890f66a Jose A. Lopes
storageTypes = ConstantUtils.mkSet $ map Types.storageTypeToRaw [minBound..]
642 85c48fbb Jose A. Lopes
643 9be1ff8c Jose A. Lopes
-- | The set of storage types for which storage reporting is available
644 9be1ff8c Jose A. Lopes
--
645 9be1ff8c Jose A. Lopes
-- FIXME: Remove this, once storage reporting is available for all
646 9be1ff8c Jose A. Lopes
-- types.
647 9be1ff8c Jose A. Lopes
stsReport :: FrozenSet String
648 9be1ff8c Jose A. Lopes
stsReport = ConstantUtils.mkSet [stFile, stLvmPv, stLvmVg]
649 9be1ff8c Jose A. Lopes
650 c890f66a Jose A. Lopes
-- * Storage fields
651 c890f66a Jose A. Lopes
-- ** First two are valid in LU context only, not passed to backend
652 85c48fbb Jose A. Lopes
653 c890f66a Jose A. Lopes
sfNode :: String
654 c890f66a Jose A. Lopes
sfNode = "node"
655 85c48fbb Jose A. Lopes
656 c890f66a Jose A. Lopes
sfType :: String
657 c890f66a Jose A. Lopes
sfType = "type"
658 85c48fbb Jose A. Lopes
659 c890f66a Jose A. Lopes
-- ** and the rest are valid in backend
660 85c48fbb Jose A. Lopes
661 c890f66a Jose A. Lopes
sfAllocatable :: String
662 c890f66a Jose A. Lopes
sfAllocatable = Types.storageFieldToRaw SFAllocatable
663 85c48fbb Jose A. Lopes
664 c890f66a Jose A. Lopes
sfFree :: String
665 c890f66a Jose A. Lopes
sfFree = Types.storageFieldToRaw SFFree
666 85c48fbb Jose A. Lopes
667 c890f66a Jose A. Lopes
sfName :: String
668 c890f66a Jose A. Lopes
sfName = Types.storageFieldToRaw SFName
669 85c48fbb Jose A. Lopes
670 c890f66a Jose A. Lopes
sfSize :: String
671 c890f66a Jose A. Lopes
sfSize = Types.storageFieldToRaw SFSize
672 85c48fbb Jose A. Lopes
673 c890f66a Jose A. Lopes
sfUsed :: String
674 c890f66a Jose A. Lopes
sfUsed = Types.storageFieldToRaw SFUsed
675 85c48fbb Jose A. Lopes
676 9be1ff8c Jose A. Lopes
validStorageFields :: FrozenSet String
677 9be1ff8c Jose A. Lopes
validStorageFields =
678 9be1ff8c Jose A. Lopes
  ConstantUtils.mkSet $ map Types.storageFieldToRaw [minBound..] ++
679 9be1ff8c Jose A. Lopes
                        [sfNode, sfType]
680 9be1ff8c Jose A. Lopes
681 9be1ff8c Jose A. Lopes
modifiableStorageFields :: Map String (FrozenSet String)
682 9be1ff8c Jose A. Lopes
modifiableStorageFields =
683 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmPv,
684 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [sfAllocatable])]
685 9be1ff8c Jose A. Lopes
686 9be1ff8c Jose A. Lopes
-- * Storage operations
687 9be1ff8c Jose A. Lopes
688 9be1ff8c Jose A. Lopes
soFixConsistency :: String
689 9be1ff8c Jose A. Lopes
soFixConsistency = "fix-consistency"
690 9be1ff8c Jose A. Lopes
691 9be1ff8c Jose A. Lopes
validStorageOperations :: Map String (FrozenSet String)
692 9be1ff8c Jose A. Lopes
validStorageOperations =
693 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmVg,
694 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [soFixConsistency])]
695 9be1ff8c Jose A. Lopes
696 9be1ff8c Jose A. Lopes
-- * Volume fields
697 9be1ff8c Jose A. Lopes
698 9be1ff8c Jose A. Lopes
vfDev :: String
699 9be1ff8c Jose A. Lopes
vfDev = "dev"
700 9be1ff8c Jose A. Lopes
701 9be1ff8c Jose A. Lopes
vfInstance :: String
702 9be1ff8c Jose A. Lopes
vfInstance = "instance"
703 9be1ff8c Jose A. Lopes
704 9be1ff8c Jose A. Lopes
vfName :: String
705 9be1ff8c Jose A. Lopes
vfName = "name"
706 9be1ff8c Jose A. Lopes
707 9be1ff8c Jose A. Lopes
vfNode :: String
708 9be1ff8c Jose A. Lopes
vfNode = "node"
709 9be1ff8c Jose A. Lopes
710 9be1ff8c Jose A. Lopes
vfPhys :: String
711 9be1ff8c Jose A. Lopes
vfPhys = "phys"
712 9be1ff8c Jose A. Lopes
713 9be1ff8c Jose A. Lopes
vfSize :: String
714 9be1ff8c Jose A. Lopes
vfSize = "size"
715 9be1ff8c Jose A. Lopes
716 9be1ff8c Jose A. Lopes
vfVg :: String
717 9be1ff8c Jose A. Lopes
vfVg = "vg"
718 9be1ff8c Jose A. Lopes
719 59bcd180 Jose A. Lopes
-- * Local disk status
720 59bcd180 Jose A. Lopes
721 59bcd180 Jose A. Lopes
ldsFaulty :: Int
722 59bcd180 Jose A. Lopes
ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
723 59bcd180 Jose A. Lopes
724 59bcd180 Jose A. Lopes
ldsOkay :: Int
725 59bcd180 Jose A. Lopes
ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
726 59bcd180 Jose A. Lopes
727 59bcd180 Jose A. Lopes
ldsUnknown :: Int
728 59bcd180 Jose A. Lopes
ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
729 59bcd180 Jose A. Lopes
730 59bcd180 Jose A. Lopes
ldsNames :: Map Int String
731 59bcd180 Jose A. Lopes
ldsNames =
732 59bcd180 Jose A. Lopes
  Map.fromList [ (Types.localDiskStatusToRaw ds,
733 59bcd180 Jose A. Lopes
                  localDiskStatusName ds) | ds <- [minBound..] ]
734 59bcd180 Jose A. Lopes
735 c890f66a Jose A. Lopes
-- * Disk template types
736 85c48fbb Jose A. Lopes
737 c890f66a Jose A. Lopes
dtDiskless :: String
738 c890f66a Jose A. Lopes
dtDiskless = Types.diskTemplateToRaw DTDiskless
739 85c48fbb Jose A. Lopes
740 c890f66a Jose A. Lopes
dtFile :: String
741 c890f66a Jose A. Lopes
dtFile = Types.diskTemplateToRaw DTFile
742 85c48fbb Jose A. Lopes
743 c890f66a Jose A. Lopes
dtSharedFile :: String
744 c890f66a Jose A. Lopes
dtSharedFile = Types.diskTemplateToRaw DTSharedFile
745 85c48fbb Jose A. Lopes
746 c890f66a Jose A. Lopes
dtPlain :: String
747 c890f66a Jose A. Lopes
dtPlain = Types.diskTemplateToRaw DTPlain
748 85c48fbb Jose A. Lopes
749 c890f66a Jose A. Lopes
dtBlock :: String
750 c890f66a Jose A. Lopes
dtBlock = Types.diskTemplateToRaw DTBlock
751 85c48fbb Jose A. Lopes
752 c890f66a Jose A. Lopes
dtDrbd8 :: String
753 c890f66a Jose A. Lopes
dtDrbd8 = Types.diskTemplateToRaw DTDrbd8
754 85c48fbb Jose A. Lopes
755 c890f66a Jose A. Lopes
dtRbd :: String
756 c890f66a Jose A. Lopes
dtRbd = Types.diskTemplateToRaw DTRbd
757 85c48fbb Jose A. Lopes
758 c890f66a Jose A. Lopes
dtExt :: String
759 c890f66a Jose A. Lopes
dtExt = Types.diskTemplateToRaw DTExt
760 85c48fbb Jose A. Lopes
761 c890f66a Jose A. Lopes
-- | This is used to order determine the default disk template when
762 c890f66a Jose A. Lopes
-- the list of enabled disk templates is inferred from the current
763 c890f66a Jose A. Lopes
-- state of the cluster.  This only happens on an upgrade from a
764 c890f66a Jose A. Lopes
-- version of Ganeti that did not support the 'enabled_disk_templates'
765 c890f66a Jose A. Lopes
-- so far.
766 c890f66a Jose A. Lopes
diskTemplatePreference :: [String]
767 c890f66a Jose A. Lopes
diskTemplatePreference =
768 c890f66a Jose A. Lopes
  map Types.diskTemplateToRaw
769 c890f66a Jose A. Lopes
  [DTBlock, DTDiskless, DTDrbd8, DTExt, DTFile, DTPlain, DTRbd, DTSharedFile]
770 85c48fbb Jose A. Lopes
771 c890f66a Jose A. Lopes
diskTemplates :: FrozenSet String
772 c890f66a Jose A. Lopes
diskTemplates = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [minBound..]
773 85c48fbb Jose A. Lopes
774 c890f66a Jose A. Lopes
-- | Disk templates that are enabled by default
775 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates :: [String]
776 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
777 85c48fbb Jose A. Lopes
778 9be1ff8c Jose A. Lopes
-- | Mapping of disk templates to storage types
779 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType :: Map String String
780 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType =
781 9be1ff8c Jose A. Lopes
  Map.fromList $
782 9be1ff8c Jose A. Lopes
  map (Types.diskTemplateToRaw *** Types.storageTypeToRaw)
783 9be1ff8c Jose A. Lopes
  [(DTBlock, StorageBlock),
784 9be1ff8c Jose A. Lopes
   (DTDrbd8, StorageLvmVg),
785 9be1ff8c Jose A. Lopes
   (DTExt, StorageExt),
786 9be1ff8c Jose A. Lopes
   (DTSharedFile, StorageFile),
787 9be1ff8c Jose A. Lopes
   (DTFile, StorageFile),
788 9be1ff8c Jose A. Lopes
   (DTDiskless, StorageDiskless),
789 9be1ff8c Jose A. Lopes
   (DTPlain, StorageLvmVg),
790 9be1ff8c Jose A. Lopes
   (DTRbd, StorageRados)]
791 9be1ff8c Jose A. Lopes
792 4c1275f9 Jose A. Lopes
-- | The set of network-mirrored disk templates
793 4c1275f9 Jose A. Lopes
dtsIntMirror :: FrozenSet String
794 4c1275f9 Jose A. Lopes
dtsIntMirror = ConstantUtils.mkSet [dtDrbd8]
795 4c1275f9 Jose A. Lopes
796 4c1275f9 Jose A. Lopes
-- | 'DTDiskless' is 'trivially' externally mirrored
797 4c1275f9 Jose A. Lopes
dtsExtMirror :: FrozenSet String
798 4c1275f9 Jose A. Lopes
dtsExtMirror =
799 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
800 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTDiskless, DTBlock, DTExt, DTSharedFile, DTRbd]
801 4c1275f9 Jose A. Lopes
802 4c1275f9 Jose A. Lopes
-- | The set of non-lvm-based disk templates
803 4c1275f9 Jose A. Lopes
dtsNotLvm :: FrozenSet String
804 4c1275f9 Jose A. Lopes
dtsNotLvm =
805 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
806 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
807 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDiskless, DTBlock, DTExt, DTFile, DTRbd]
808 4c1275f9 Jose A. Lopes
809 4c1275f9 Jose A. Lopes
-- | The set of disk templates which can be grown
810 4c1275f9 Jose A. Lopes
dtsGrowable :: FrozenSet String
811 4c1275f9 Jose A. Lopes
dtsGrowable =
812 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
813 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
814 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDrbd8, DTPlain, DTExt, DTFile, DTRbd]
815 4c1275f9 Jose A. Lopes
816 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow adoption
817 4c1275f9 Jose A. Lopes
dtsMayAdopt :: FrozenSet String
818 4c1275f9 Jose A. Lopes
dtsMayAdopt =
819 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTBlock, DTPlain]
820 4c1275f9 Jose A. Lopes
821 4c1275f9 Jose A. Lopes
-- | The set of disk templates that *must* use adoption
822 4c1275f9 Jose A. Lopes
dtsMustAdopt :: FrozenSet String
823 4c1275f9 Jose A. Lopes
dtsMustAdopt = ConstantUtils.mkSet [Types.diskTemplateToRaw DTBlock]
824 4c1275f9 Jose A. Lopes
825 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow migrations
826 4c1275f9 Jose A. Lopes
dtsMirrored :: FrozenSet String
827 4c1275f9 Jose A. Lopes
dtsMirrored = dtsIntMirror `ConstantUtils.union` dtsExtMirror
828 4c1275f9 Jose A. Lopes
829 4c1275f9 Jose A. Lopes
-- | The set of file based disk templates
830 4c1275f9 Jose A. Lopes
dtsFilebased :: FrozenSet String
831 4c1275f9 Jose A. Lopes
dtsFilebased =
832 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTSharedFile, DTFile]
833 4c1275f9 Jose A. Lopes
834 4c1275f9 Jose A. Lopes
-- | The set of disk templates that can be moved by copying
835 4c1275f9 Jose A. Lopes
--
836 4c1275f9 Jose A. Lopes
-- Note: a requirement is that they're not accessed externally or
837 4c1275f9 Jose A. Lopes
-- shared between nodes; in particular, sharedfile is not suitable.
838 4c1275f9 Jose A. Lopes
dtsCopyable :: FrozenSet String
839 4c1275f9 Jose A. Lopes
dtsCopyable =
840 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTFile]
841 4c1275f9 Jose A. Lopes
842 4c1275f9 Jose A. Lopes
-- | The set of disk templates that are supported by exclusive_storage
843 4c1275f9 Jose A. Lopes
dtsExclStorage :: FrozenSet String
844 4c1275f9 Jose A. Lopes
dtsExclStorage = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain]
845 4c1275f9 Jose A. Lopes
846 4c1275f9 Jose A. Lopes
-- | Templates for which we don't perform checks on free space
847 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck :: FrozenSet String
848 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck =
849 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
850 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTExt, DTSharedFile, DTFile, DTRbd]
851 4c1275f9 Jose A. Lopes
852 4c1275f9 Jose A. Lopes
dtsBlock :: FrozenSet String
853 4c1275f9 Jose A. Lopes
dtsBlock =
854 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
855 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTPlain, DTDrbd8, DTBlock, DTRbd, DTExt]
856 4c1275f9 Jose A. Lopes
857 c5539592 Jose A. Lopes
-- * Drbd
858 c5539592 Jose A. Lopes
859 c5539592 Jose A. Lopes
drbdHmacAlg :: String
860 c5539592 Jose A. Lopes
drbdHmacAlg = "md5"
861 c5539592 Jose A. Lopes
862 c5539592 Jose A. Lopes
drbdDefaultNetProtocol :: String
863 c5539592 Jose A. Lopes
drbdDefaultNetProtocol = "C"
864 c5539592 Jose A. Lopes
865 c5539592 Jose A. Lopes
drbdMigrationNetProtocol :: String
866 c5539592 Jose A. Lopes
drbdMigrationNetProtocol = "C"
867 c5539592 Jose A. Lopes
868 c5539592 Jose A. Lopes
drbdStatusFile :: String
869 c5539592 Jose A. Lopes
drbdStatusFile = "/proc/drbd"
870 c5539592 Jose A. Lopes
871 c5539592 Jose A. Lopes
-- | Size of DRBD meta block device
872 c5539592 Jose A. Lopes
drbdMetaSize :: Int
873 c5539592 Jose A. Lopes
drbdMetaSize = 128
874 c5539592 Jose A. Lopes
875 c5539592 Jose A. Lopes
-- * Drbd barrier types
876 c5539592 Jose A. Lopes
877 c5539592 Jose A. Lopes
drbdBDiskBarriers :: String
878 c5539592 Jose A. Lopes
drbdBDiskBarriers = "b"
879 c5539592 Jose A. Lopes
880 c5539592 Jose A. Lopes
drbdBDiskDrain :: String
881 c5539592 Jose A. Lopes
drbdBDiskDrain = "d"
882 c5539592 Jose A. Lopes
883 c5539592 Jose A. Lopes
drbdBDiskFlush :: String
884 c5539592 Jose A. Lopes
drbdBDiskFlush = "f"
885 c5539592 Jose A. Lopes
886 c5539592 Jose A. Lopes
drbdBNone :: String
887 c5539592 Jose A. Lopes
drbdBNone = "n"
888 c5539592 Jose A. Lopes
889 c5539592 Jose A. Lopes
-- | Rbd tool command
890 c5539592 Jose A. Lopes
rbdCmd :: String
891 c5539592 Jose A. Lopes
rbdCmd = "rbd"
892 c5539592 Jose A. Lopes
893 c890f66a Jose A. Lopes
-- * File backend driver
894 85c48fbb Jose A. Lopes
895 c890f66a Jose A. Lopes
fdBlktap :: String
896 c890f66a Jose A. Lopes
fdBlktap = Types.fileDriverToRaw FileBlktap
897 85c48fbb Jose A. Lopes
898 c890f66a Jose A. Lopes
fdLoop :: String
899 c890f66a Jose A. Lopes
fdLoop = Types.fileDriverToRaw FileLoop
900 85c48fbb Jose A. Lopes
901 ad6f2bf3 Jose A. Lopes
fileDriver :: FrozenSet String
902 ad6f2bf3 Jose A. Lopes
fileDriver =
903 ad6f2bf3 Jose A. Lopes
  ConstantUtils.mkSet $
904 ad6f2bf3 Jose A. Lopes
  map Types.fileDriverToRaw [minBound..]
905 ad6f2bf3 Jose A. Lopes
906 59bcd180 Jose A. Lopes
-- | The set of drbd-like disk types
907 59bcd180 Jose A. Lopes
ldsDrbd :: FrozenSet String
908 59bcd180 Jose A. Lopes
ldsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
909 59bcd180 Jose A. Lopes
910 c890f66a Jose A. Lopes
-- * Disk access mode
911 85c48fbb Jose A. Lopes
912 c890f66a Jose A. Lopes
diskRdonly :: String
913 c890f66a Jose A. Lopes
diskRdonly = Types.diskModeToRaw DiskRdOnly
914 85c48fbb Jose A. Lopes
915 c890f66a Jose A. Lopes
diskRdwr :: String
916 c890f66a Jose A. Lopes
diskRdwr = Types.diskModeToRaw DiskRdWr
917 85c48fbb Jose A. Lopes
918 c890f66a Jose A. Lopes
diskAccessSet :: FrozenSet String
919 c890f66a Jose A. Lopes
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
920 85c48fbb Jose A. Lopes
921 a5450d2a Jose A. Lopes
-- * Disk replacement mode
922 a5450d2a Jose A. Lopes
923 a5450d2a Jose A. Lopes
replaceDiskAuto :: String
924 a5450d2a Jose A. Lopes
replaceDiskAuto = Types.replaceDisksModeToRaw ReplaceAuto
925 a5450d2a Jose A. Lopes
926 a5450d2a Jose A. Lopes
replaceDiskChg :: String
927 a5450d2a Jose A. Lopes
replaceDiskChg = Types.replaceDisksModeToRaw ReplaceNewSecondary
928 a5450d2a Jose A. Lopes
929 a5450d2a Jose A. Lopes
replaceDiskPri :: String
930 a5450d2a Jose A. Lopes
replaceDiskPri = Types.replaceDisksModeToRaw ReplaceOnPrimary
931 a5450d2a Jose A. Lopes
932 a5450d2a Jose A. Lopes
replaceDiskSec :: String
933 a5450d2a Jose A. Lopes
replaceDiskSec = Types.replaceDisksModeToRaw ReplaceOnSecondary
934 a5450d2a Jose A. Lopes
935 a5450d2a Jose A. Lopes
replaceModes :: FrozenSet String
936 a5450d2a Jose A. Lopes
replaceModes =
937 a5450d2a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.replaceDisksModeToRaw [minBound..]
938 a5450d2a Jose A. Lopes
939 c890f66a Jose A. Lopes
-- * Instance export mode
940 85c48fbb Jose A. Lopes
941 c890f66a Jose A. Lopes
exportModeLocal :: String
942 c890f66a Jose A. Lopes
exportModeLocal = Types.exportModeToRaw ExportModeLocal
943 85c48fbb Jose A. Lopes
944 c890f66a Jose A. Lopes
exportModeRemote :: String
945 c890f66a Jose A. Lopes
exportModeRemote = Types.exportModeToRaw ExportModeRemote
946 85c48fbb Jose A. Lopes
947 c890f66a Jose A. Lopes
exportModes :: FrozenSet String
948 c890f66a Jose A. Lopes
exportModes = ConstantUtils.mkSet $ map Types.exportModeToRaw [minBound..]
949 85c48fbb Jose A. Lopes
950 c890f66a Jose A. Lopes
-- * Instance creation modes
951 85c48fbb Jose A. Lopes
952 c890f66a Jose A. Lopes
instanceCreate :: String
953 c890f66a Jose A. Lopes
instanceCreate = Types.instCreateModeToRaw InstCreate
954 85c48fbb Jose A. Lopes
955 c890f66a Jose A. Lopes
instanceImport :: String
956 c890f66a Jose A. Lopes
instanceImport = Types.instCreateModeToRaw InstImport
957 85c48fbb Jose A. Lopes
958 c890f66a Jose A. Lopes
instanceRemoteImport :: String
959 c890f66a Jose A. Lopes
instanceRemoteImport = Types.instCreateModeToRaw InstRemoteImport
960 85c48fbb Jose A. Lopes
961 c890f66a Jose A. Lopes
instanceCreateModes :: FrozenSet String
962 c890f66a Jose A. Lopes
instanceCreateModes =
963 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.instCreateModeToRaw [minBound..]
964 9413ef24 Jose A. Lopes
965 6e18cc0d Jose A. Lopes
-- * Remote import/export handshake message and version
966 6e18cc0d Jose A. Lopes
967 6e18cc0d Jose A. Lopes
rieHandshake :: String
968 6e18cc0d Jose A. Lopes
rieHandshake = "Hi, I'm Ganeti"
969 6e18cc0d Jose A. Lopes
970 6e18cc0d Jose A. Lopes
rieVersion :: Int
971 6e18cc0d Jose A. Lopes
rieVersion = 0
972 6e18cc0d Jose A. Lopes
973 6e18cc0d Jose A. Lopes
-- | Remote import/export certificate validity in seconds
974 6e18cc0d Jose A. Lopes
rieCertValidity :: Int
975 6e18cc0d Jose A. Lopes
rieCertValidity = 24 * 60 * 60
976 6e18cc0d Jose A. Lopes
977 6e18cc0d Jose A. Lopes
-- | Export only: how long to wait per connection attempt (seconds)
978 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout :: Int
979 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout = 20
980 6e18cc0d Jose A. Lopes
981 6e18cc0d Jose A. Lopes
-- | Export only: number of attempts to connect
982 6e18cc0d Jose A. Lopes
rieConnectRetries :: Int
983 6e18cc0d Jose A. Lopes
rieConnectRetries = 10
984 6e18cc0d Jose A. Lopes
985 6e18cc0d Jose A. Lopes
-- | Overall timeout for establishing connection
986 6e18cc0d Jose A. Lopes
rieConnectTimeout :: Int
987 6e18cc0d Jose A. Lopes
rieConnectTimeout = 180
988 6e18cc0d Jose A. Lopes
989 6e18cc0d Jose A. Lopes
-- | Give child process up to 5 seconds to exit after sending a signal
990 6e18cc0d Jose A. Lopes
childLingerTimeout :: Double
991 6e18cc0d Jose A. Lopes
childLingerTimeout = 5.0
992 6e18cc0d Jose A. Lopes
993 343dcda8 Jose A. Lopes
-- * Import/export config options
994 343dcda8 Jose A. Lopes
995 343dcda8 Jose A. Lopes
inisectBep :: String
996 343dcda8 Jose A. Lopes
inisectBep = "backend"
997 343dcda8 Jose A. Lopes
998 343dcda8 Jose A. Lopes
inisectExp :: String
999 343dcda8 Jose A. Lopes
inisectExp = "export"
1000 343dcda8 Jose A. Lopes
1001 343dcda8 Jose A. Lopes
inisectHyp :: String
1002 343dcda8 Jose A. Lopes
inisectHyp = "hypervisor"
1003 343dcda8 Jose A. Lopes
1004 343dcda8 Jose A. Lopes
inisectIns :: String
1005 343dcda8 Jose A. Lopes
inisectIns = "instance"
1006 343dcda8 Jose A. Lopes
1007 343dcda8 Jose A. Lopes
inisectOsp :: String
1008 343dcda8 Jose A. Lopes
inisectOsp = "os"
1009 343dcda8 Jose A. Lopes
1010 c890f66a Jose A. Lopes
-- * Dynamic device modification
1011 9413ef24 Jose A. Lopes
1012 c890f66a Jose A. Lopes
ddmAdd :: String
1013 c890f66a Jose A. Lopes
ddmAdd = Types.ddmFullToRaw DdmFullAdd
1014 1b2adaa6 Jose A. Lopes
1015 c890f66a Jose A. Lopes
ddmModify :: String
1016 c890f66a Jose A. Lopes
ddmModify = Types.ddmFullToRaw DdmFullModify
1017 1b2adaa6 Jose A. Lopes
1018 c890f66a Jose A. Lopes
ddmRemove :: String
1019 c890f66a Jose A. Lopes
ddmRemove = Types.ddmFullToRaw DdmFullRemove
1020 9413ef24 Jose A. Lopes
1021 c890f66a Jose A. Lopes
ddmsValues :: FrozenSet String
1022 c890f66a Jose A. Lopes
ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
1023 5867e439 Jose A. Lopes
1024 c890f66a Jose A. Lopes
ddmsValuesWithModify :: FrozenSet String
1025 c890f66a Jose A. Lopes
ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
1026 5867e439 Jose A. Lopes
1027 c890f66a Jose A. Lopes
-- * Common exit codes
1028 5867e439 Jose A. Lopes
1029 c890f66a Jose A. Lopes
exitSuccess :: Int
1030 c890f66a Jose A. Lopes
exitSuccess = 0
1031 5867e439 Jose A. Lopes
1032 c890f66a Jose A. Lopes
exitFailure :: Int
1033 c890f66a Jose A. Lopes
exitFailure = ConstantUtils.exitFailure
1034 5867e439 Jose A. Lopes
1035 c890f66a Jose A. Lopes
exitNotcluster :: Int
1036 c890f66a Jose A. Lopes
exitNotcluster = 5
1037 5867e439 Jose A. Lopes
1038 c890f66a Jose A. Lopes
exitNotmaster :: Int
1039 c890f66a Jose A. Lopes
exitNotmaster = 11
1040 5867e439 Jose A. Lopes
1041 c890f66a Jose A. Lopes
exitNodesetupError :: Int
1042 c890f66a Jose A. Lopes
exitNodesetupError = 12
1043 26eca119 Jose A. Lopes
1044 c890f66a Jose A. Lopes
-- | Need user confirmation
1045 c890f66a Jose A. Lopes
exitConfirmation :: Int
1046 c890f66a Jose A. Lopes
exitConfirmation = 13
1047 85c48fbb Jose A. Lopes
1048 c890f66a Jose A. Lopes
-- | Exit code for query operations with unknown fields
1049 c890f66a Jose A. Lopes
exitUnknownField :: Int
1050 c890f66a Jose A. Lopes
exitUnknownField = 14
1051 85c48fbb Jose A. Lopes
1052 c890f66a Jose A. Lopes
-- * Tags
1053 85c48fbb Jose A. Lopes
1054 c890f66a Jose A. Lopes
tagCluster :: String
1055 c890f66a Jose A. Lopes
tagCluster = Types.tagKindToRaw TagKindCluster
1056 85c48fbb Jose A. Lopes
1057 c890f66a Jose A. Lopes
tagInstance :: String
1058 c890f66a Jose A. Lopes
tagInstance = Types.tagKindToRaw TagKindInstance
1059 85c48fbb Jose A. Lopes
1060 c890f66a Jose A. Lopes
tagNetwork :: String
1061 c890f66a Jose A. Lopes
tagNetwork = Types.tagKindToRaw TagKindNetwork
1062 85c48fbb Jose A. Lopes
1063 c890f66a Jose A. Lopes
tagNode :: String
1064 c890f66a Jose A. Lopes
tagNode = Types.tagKindToRaw TagKindNode
1065 85c48fbb Jose A. Lopes
1066 c890f66a Jose A. Lopes
tagNodegroup :: String
1067 c890f66a Jose A. Lopes
tagNodegroup = Types.tagKindToRaw TagKindGroup
1068 85c48fbb Jose A. Lopes
1069 c890f66a Jose A. Lopes
validTagTypes :: FrozenSet String
1070 c890f66a Jose A. Lopes
validTagTypes = ConstantUtils.mkSet $ map Types.tagKindToRaw [minBound..]
1071 85c48fbb Jose A. Lopes
1072 c890f66a Jose A. Lopes
maxTagLen :: Int
1073 c890f66a Jose A. Lopes
maxTagLen = 128
1074 85c48fbb Jose A. Lopes
1075 c890f66a Jose A. Lopes
maxTagsPerObj :: Int
1076 c890f66a Jose A. Lopes
maxTagsPerObj = 4096
1077 85c48fbb Jose A. Lopes
1078 b7b8ff87 Jose A. Lopes
-- * Others
1079 b7b8ff87 Jose A. Lopes
1080 b7b8ff87 Jose A. Lopes
defaultBridge :: String
1081 b7b8ff87 Jose A. Lopes
defaultBridge = "xen-br0"
1082 b7b8ff87 Jose A. Lopes
1083 b7b8ff87 Jose A. Lopes
defaultOvs :: String
1084 b7b8ff87 Jose A. Lopes
defaultOvs = "switch1"
1085 b7b8ff87 Jose A. Lopes
1086 b7b8ff87 Jose A. Lopes
-- | 60 MiB, expressed in KiB
1087 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed :: Int
1088 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed = 60 * 1024
1089 b7b8ff87 Jose A. Lopes
1090 b7b8ff87 Jose A. Lopes
ip4AddressAny :: String
1091 b7b8ff87 Jose A. Lopes
ip4AddressAny = "0.0.0.0"
1092 b7b8ff87 Jose A. Lopes
1093 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost :: String
1094 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost = "127.0.0.1"
1095 b7b8ff87 Jose A. Lopes
1096 b7b8ff87 Jose A. Lopes
ip6AddressAny :: String
1097 b7b8ff87 Jose A. Lopes
ip6AddressAny = "::"
1098 b7b8ff87 Jose A. Lopes
1099 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost :: String
1100 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost = "::1"
1101 b7b8ff87 Jose A. Lopes
1102 b7b8ff87 Jose A. Lopes
ip4Version :: Int
1103 b7b8ff87 Jose A. Lopes
ip4Version = 4
1104 b7b8ff87 Jose A. Lopes
1105 b7b8ff87 Jose A. Lopes
ip6Version :: Int
1106 b7b8ff87 Jose A. Lopes
ip6Version = 6
1107 b7b8ff87 Jose A. Lopes
1108 b7b8ff87 Jose A. Lopes
validIpVersions :: FrozenSet Int
1109 b7b8ff87 Jose A. Lopes
validIpVersions = ConstantUtils.mkSet [ip4Version, ip6Version]
1110 b7b8ff87 Jose A. Lopes
1111 b7b8ff87 Jose A. Lopes
tcpPingTimeout :: Int
1112 b7b8ff87 Jose A. Lopes
tcpPingTimeout = 10
1113 b7b8ff87 Jose A. Lopes
1114 b7b8ff87 Jose A. Lopes
defaultVg :: String
1115 b7b8ff87 Jose A. Lopes
defaultVg = "xenvg"
1116 b7b8ff87 Jose A. Lopes
1117 b7b8ff87 Jose A. Lopes
defaultDrbdHelper :: String
1118 b7b8ff87 Jose A. Lopes
defaultDrbdHelper = "/bin/true"
1119 b7b8ff87 Jose A. Lopes
1120 b7b8ff87 Jose A. Lopes
minVgSize :: Int
1121 b7b8ff87 Jose A. Lopes
minVgSize = 20480
1122 b7b8ff87 Jose A. Lopes
1123 b7b8ff87 Jose A. Lopes
defaultMacPrefix :: String
1124 b7b8ff87 Jose A. Lopes
defaultMacPrefix = "aa:00:00"
1125 b7b8ff87 Jose A. Lopes
1126 b7b8ff87 Jose A. Lopes
-- | Default maximum instance wait time, in seconds.
1127 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout :: Int
1128 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout = 120
1129 b7b8ff87 Jose A. Lopes
1130 61e32567 Jose A. Lopes
-- | Node clock skew in seconds
1131 61e32567 Jose A. Lopes
nodeMaxClockSkew :: Int
1132 61e32567 Jose A. Lopes
nodeMaxClockSkew = 150
1133 61e32567 Jose A. Lopes
1134 52d4f735 Jose A. Lopes
-- | Time for an intra-cluster disk transfer to wait for a connection
1135 52d4f735 Jose A. Lopes
diskTransferConnectTimeout :: Int
1136 52d4f735 Jose A. Lopes
diskTransferConnectTimeout = 60
1137 52d4f735 Jose A. Lopes
1138 3b170ad4 Jose A. Lopes
-- | Disk index separator
1139 3b170ad4 Jose A. Lopes
diskSeparator :: String
1140 3b170ad4 Jose A. Lopes
diskSeparator = AutoConf.diskSeparator
1141 3b170ad4 Jose A. Lopes
1142 cf96e711 Jose A. Lopes
ipCommandPath :: String
1143 cf96e711 Jose A. Lopes
ipCommandPath = AutoConf.ipPath
1144 cf96e711 Jose A. Lopes
1145 d7754dad Jose A. Lopes
-- | Key for job IDs in opcode result
1146 d7754dad Jose A. Lopes
jobIdsKey :: String
1147 d7754dad Jose A. Lopes
jobIdsKey = "jobs"
1148 d7754dad Jose A. Lopes
1149 d7754dad Jose A. Lopes
-- * Runparts results
1150 d7754dad Jose A. Lopes
1151 d7754dad Jose A. Lopes
runpartsErr :: Int
1152 d7754dad Jose A. Lopes
runpartsErr = 2
1153 d7754dad Jose A. Lopes
1154 d7754dad Jose A. Lopes
runpartsRun :: Int
1155 d7754dad Jose A. Lopes
runpartsRun = 1
1156 d7754dad Jose A. Lopes
1157 d7754dad Jose A. Lopes
runpartsSkip :: Int
1158 d7754dad Jose A. Lopes
runpartsSkip = 0
1159 d7754dad Jose A. Lopes
1160 d7754dad Jose A. Lopes
runpartsStatus :: [Int]
1161 d7754dad Jose A. Lopes
runpartsStatus = [runpartsErr, runpartsRun, runpartsSkip]
1162 d7754dad Jose A. Lopes
1163 d7754dad Jose A. Lopes
-- * RPC
1164 d7754dad Jose A. Lopes
1165 d7754dad Jose A. Lopes
rpcEncodingNone :: Int
1166 d7754dad Jose A. Lopes
rpcEncodingNone = 0
1167 d7754dad Jose A. Lopes
1168 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 :: Int
1169 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 = 1
1170 d7754dad Jose A. Lopes
1171 c03224f6 Jose A. Lopes
-- * Timeout table
1172 c03224f6 Jose A. Lopes
--
1173 c03224f6 Jose A. Lopes
-- Various time constants for the timeout table
1174 c03224f6 Jose A. Lopes
1175 c03224f6 Jose A. Lopes
rpcTmoUrgent :: Int
1176 c03224f6 Jose A. Lopes
rpcTmoUrgent = Types.rpcTimeoutToRaw Urgent
1177 c03224f6 Jose A. Lopes
1178 c03224f6 Jose A. Lopes
rpcTmoFast :: Int
1179 c03224f6 Jose A. Lopes
rpcTmoFast = Types.rpcTimeoutToRaw Fast
1180 c03224f6 Jose A. Lopes
1181 c03224f6 Jose A. Lopes
rpcTmoNormal :: Int
1182 c03224f6 Jose A. Lopes
rpcTmoNormal = Types.rpcTimeoutToRaw Normal
1183 c03224f6 Jose A. Lopes
1184 c03224f6 Jose A. Lopes
rpcTmoSlow :: Int
1185 c03224f6 Jose A. Lopes
rpcTmoSlow = Types.rpcTimeoutToRaw Slow
1186 c03224f6 Jose A. Lopes
1187 c03224f6 Jose A. Lopes
-- | 'rpcTmo_4hrs' contains an underscore to circumvent a limitation
1188 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1189 c03224f6 Jose A. Lopes
-- Python name.
1190 c03224f6 Jose A. Lopes
rpcTmo_4hrs :: Int
1191 c03224f6 Jose A. Lopes
rpcTmo_4hrs = Types.rpcTimeoutToRaw FourHours
1192 c03224f6 Jose A. Lopes
1193 c03224f6 Jose A. Lopes
-- | 'rpcTmo_1day' contains an underscore to circumvent a limitation
1194 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1195 c03224f6 Jose A. Lopes
-- Python name.
1196 c03224f6 Jose A. Lopes
rpcTmo_1day :: Int
1197 c03224f6 Jose A. Lopes
rpcTmo_1day = Types.rpcTimeoutToRaw OneDay
1198 c03224f6 Jose A. Lopes
1199 c03224f6 Jose A. Lopes
-- | Timeout for connecting to nodes (seconds)
1200 c03224f6 Jose A. Lopes
rpcConnectTimeout :: Int
1201 c03224f6 Jose A. Lopes
rpcConnectTimeout = 5
1202 c03224f6 Jose A. Lopes
1203 e8d4d41e Jose A. Lopes
-- OS
1204 e8d4d41e Jose A. Lopes
1205 e8d4d41e Jose A. Lopes
osScriptCreate :: String
1206 e8d4d41e Jose A. Lopes
osScriptCreate = "create"
1207 e8d4d41e Jose A. Lopes
1208 e8d4d41e Jose A. Lopes
osScriptExport :: String
1209 e8d4d41e Jose A. Lopes
osScriptExport = "export"
1210 e8d4d41e Jose A. Lopes
1211 e8d4d41e Jose A. Lopes
osScriptImport :: String
1212 e8d4d41e Jose A. Lopes
osScriptImport = "import"
1213 e8d4d41e Jose A. Lopes
1214 e8d4d41e Jose A. Lopes
osScriptRename :: String
1215 e8d4d41e Jose A. Lopes
osScriptRename = "rename"
1216 e8d4d41e Jose A. Lopes
1217 e8d4d41e Jose A. Lopes
osScriptVerify :: String
1218 e8d4d41e Jose A. Lopes
osScriptVerify = "verify"
1219 e8d4d41e Jose A. Lopes
1220 e8d4d41e Jose A. Lopes
osScripts :: [String]
1221 e8d4d41e Jose A. Lopes
osScripts = [osScriptCreate, osScriptExport, osScriptImport, osScriptRename,
1222 e8d4d41e Jose A. Lopes
             osScriptVerify]
1223 e8d4d41e Jose A. Lopes
1224 e8d4d41e Jose A. Lopes
osApiFile :: String
1225 e8d4d41e Jose A. Lopes
osApiFile = "ganeti_api_version"
1226 e8d4d41e Jose A. Lopes
1227 e8d4d41e Jose A. Lopes
osVariantsFile :: String
1228 e8d4d41e Jose A. Lopes
osVariantsFile = "variants.list"
1229 e8d4d41e Jose A. Lopes
1230 e8d4d41e Jose A. Lopes
osParametersFile :: String
1231 e8d4d41e Jose A. Lopes
osParametersFile = "parameters.list"
1232 e8d4d41e Jose A. Lopes
1233 e8d4d41e Jose A. Lopes
osValidateParameters :: String
1234 e8d4d41e Jose A. Lopes
osValidateParameters = "parameters"
1235 e8d4d41e Jose A. Lopes
1236 e8d4d41e Jose A. Lopes
osValidateCalls :: FrozenSet String
1237 e8d4d41e Jose A. Lopes
osValidateCalls = ConstantUtils.mkSet [osValidateParameters]
1238 e8d4d41e Jose A. Lopes
1239 e8d4d41e Jose A. Lopes
-- | External Storage (ES) related constants
1240 e8d4d41e Jose A. Lopes
1241 e8d4d41e Jose A. Lopes
esActionAttach :: String
1242 e8d4d41e Jose A. Lopes
esActionAttach = "attach"
1243 e8d4d41e Jose A. Lopes
1244 e8d4d41e Jose A. Lopes
esActionCreate :: String
1245 e8d4d41e Jose A. Lopes
esActionCreate = "create"
1246 e8d4d41e Jose A. Lopes
1247 e8d4d41e Jose A. Lopes
esActionDetach :: String
1248 e8d4d41e Jose A. Lopes
esActionDetach = "detach"
1249 e8d4d41e Jose A. Lopes
1250 e8d4d41e Jose A. Lopes
esActionGrow :: String
1251 e8d4d41e Jose A. Lopes
esActionGrow = "grow"
1252 e8d4d41e Jose A. Lopes
1253 e8d4d41e Jose A. Lopes
esActionRemove :: String
1254 e8d4d41e Jose A. Lopes
esActionRemove = "remove"
1255 e8d4d41e Jose A. Lopes
1256 e8d4d41e Jose A. Lopes
esActionSetinfo :: String
1257 e8d4d41e Jose A. Lopes
esActionSetinfo = "setinfo"
1258 e8d4d41e Jose A. Lopes
1259 e8d4d41e Jose A. Lopes
esActionVerify :: String
1260 e8d4d41e Jose A. Lopes
esActionVerify = "verify"
1261 e8d4d41e Jose A. Lopes
1262 e8d4d41e Jose A. Lopes
esScriptCreate :: String
1263 e8d4d41e Jose A. Lopes
esScriptCreate = esActionCreate
1264 e8d4d41e Jose A. Lopes
1265 e8d4d41e Jose A. Lopes
esScriptRemove :: String
1266 e8d4d41e Jose A. Lopes
esScriptRemove = esActionRemove
1267 e8d4d41e Jose A. Lopes
1268 e8d4d41e Jose A. Lopes
esScriptGrow :: String
1269 e8d4d41e Jose A. Lopes
esScriptGrow = esActionGrow
1270 e8d4d41e Jose A. Lopes
1271 e8d4d41e Jose A. Lopes
esScriptAttach :: String
1272 e8d4d41e Jose A. Lopes
esScriptAttach = esActionAttach
1273 e8d4d41e Jose A. Lopes
1274 e8d4d41e Jose A. Lopes
esScriptDetach :: String
1275 e8d4d41e Jose A. Lopes
esScriptDetach = esActionDetach
1276 e8d4d41e Jose A. Lopes
1277 e8d4d41e Jose A. Lopes
esScriptSetinfo :: String
1278 e8d4d41e Jose A. Lopes
esScriptSetinfo = esActionSetinfo
1279 e8d4d41e Jose A. Lopes
1280 e8d4d41e Jose A. Lopes
esScriptVerify :: String
1281 e8d4d41e Jose A. Lopes
esScriptVerify = esActionVerify
1282 e8d4d41e Jose A. Lopes
1283 e8d4d41e Jose A. Lopes
esScripts :: FrozenSet String
1284 e8d4d41e Jose A. Lopes
esScripts =
1285 e8d4d41e Jose A. Lopes
  ConstantUtils.mkSet [esScriptAttach,
1286 e8d4d41e Jose A. Lopes
                       esScriptCreate,
1287 e8d4d41e Jose A. Lopes
                       esScriptDetach,
1288 e8d4d41e Jose A. Lopes
                       esScriptGrow,
1289 e8d4d41e Jose A. Lopes
                       esScriptRemove,
1290 e8d4d41e Jose A. Lopes
                       esScriptSetinfo,
1291 e8d4d41e Jose A. Lopes
                       esScriptVerify]
1292 e8d4d41e Jose A. Lopes
1293 e8d4d41e Jose A. Lopes
esParametersFile :: String
1294 e8d4d41e Jose A. Lopes
esParametersFile = "parameters.list"
1295 e8d4d41e Jose A. Lopes
1296 ae8e7986 Jose A. Lopes
-- * Reboot types
1297 ae8e7986 Jose A. Lopes
1298 ae8e7986 Jose A. Lopes
instanceRebootSoft :: String
1299 ae8e7986 Jose A. Lopes
instanceRebootSoft = Types.rebootTypeToRaw RebootSoft
1300 ae8e7986 Jose A. Lopes
1301 ae8e7986 Jose A. Lopes
instanceRebootHard :: String
1302 ae8e7986 Jose A. Lopes
instanceRebootHard = Types.rebootTypeToRaw RebootHard
1303 ae8e7986 Jose A. Lopes
1304 ae8e7986 Jose A. Lopes
instanceRebootFull :: String
1305 ae8e7986 Jose A. Lopes
instanceRebootFull = Types.rebootTypeToRaw RebootFull
1306 ae8e7986 Jose A. Lopes
1307 ae8e7986 Jose A. Lopes
rebootTypes :: FrozenSet String
1308 ae8e7986 Jose A. Lopes
rebootTypes = ConstantUtils.mkSet $ map Types.rebootTypeToRaw [minBound..]
1309 ae8e7986 Jose A. Lopes
1310 3c2abb61 Jose A. Lopes
-- * Instance reboot behaviors
1311 3c2abb61 Jose A. Lopes
1312 3c2abb61 Jose A. Lopes
instanceRebootAllowed :: String
1313 3c2abb61 Jose A. Lopes
instanceRebootAllowed = "reboot"
1314 3c2abb61 Jose A. Lopes
1315 3c2abb61 Jose A. Lopes
instanceRebootExit :: String
1316 3c2abb61 Jose A. Lopes
instanceRebootExit = "exit"
1317 3c2abb61 Jose A. Lopes
1318 3c2abb61 Jose A. Lopes
rebootBehaviors :: [String]
1319 3c2abb61 Jose A. Lopes
rebootBehaviors = [instanceRebootAllowed, instanceRebootExit]
1320 3c2abb61 Jose A. Lopes
1321 a91d6b30 Jose A. Lopes
-- * VTypes
1322 a91d6b30 Jose A. Lopes
1323 a91d6b30 Jose A. Lopes
vtypeBool :: VType
1324 a91d6b30 Jose A. Lopes
vtypeBool = VTypeBool
1325 a91d6b30 Jose A. Lopes
1326 a91d6b30 Jose A. Lopes
vtypeInt :: VType
1327 a91d6b30 Jose A. Lopes
vtypeInt = VTypeInt
1328 a91d6b30 Jose A. Lopes
1329 a91d6b30 Jose A. Lopes
vtypeMaybeString :: VType
1330 a91d6b30 Jose A. Lopes
vtypeMaybeString = VTypeMaybeString
1331 a91d6b30 Jose A. Lopes
1332 a91d6b30 Jose A. Lopes
-- | Size in MiBs
1333 a91d6b30 Jose A. Lopes
vtypeSize :: VType
1334 a91d6b30 Jose A. Lopes
vtypeSize = VTypeSize
1335 a91d6b30 Jose A. Lopes
1336 a91d6b30 Jose A. Lopes
vtypeString :: VType
1337 a91d6b30 Jose A. Lopes
vtypeString = VTypeString
1338 a91d6b30 Jose A. Lopes
1339 a91d6b30 Jose A. Lopes
enforceableTypes :: FrozenSet VType
1340 a91d6b30 Jose A. Lopes
enforceableTypes = ConstantUtils.mkSet [minBound..]
1341 8397ffde Jose A. Lopes
1342 8397ffde Jose A. Lopes
-- | Instance specs
1343 8397ffde Jose A. Lopes
--
1344 8397ffde Jose A. Lopes
-- FIXME: these should be associated with 'Ganeti.HTools.Types.ISpec'
1345 8397ffde Jose A. Lopes
1346 8397ffde Jose A. Lopes
ispecMemSize :: String
1347 8397ffde Jose A. Lopes
ispecMemSize = ConstantUtils.ispecMemSize
1348 8397ffde Jose A. Lopes
1349 8397ffde Jose A. Lopes
ispecCpuCount :: String
1350 8397ffde Jose A. Lopes
ispecCpuCount = ConstantUtils.ispecCpuCount
1351 8397ffde Jose A. Lopes
1352 8397ffde Jose A. Lopes
ispecDiskCount :: String
1353 8397ffde Jose A. Lopes
ispecDiskCount = ConstantUtils.ispecDiskCount
1354 8397ffde Jose A. Lopes
1355 8397ffde Jose A. Lopes
ispecDiskSize :: String
1356 8397ffde Jose A. Lopes
ispecDiskSize = ConstantUtils.ispecDiskSize
1357 8397ffde Jose A. Lopes
1358 8397ffde Jose A. Lopes
ispecNicCount :: String
1359 8397ffde Jose A. Lopes
ispecNicCount = ConstantUtils.ispecNicCount
1360 8397ffde Jose A. Lopes
1361 8397ffde Jose A. Lopes
ispecSpindleUse :: String
1362 8397ffde Jose A. Lopes
ispecSpindleUse = ConstantUtils.ispecSpindleUse
1363 8397ffde Jose A. Lopes
1364 8397ffde Jose A. Lopes
ispecsParameterTypes :: Map String VType
1365 8397ffde Jose A. Lopes
ispecsParameterTypes =
1366 8397ffde Jose A. Lopes
  Map.fromList
1367 8397ffde Jose A. Lopes
  [(ConstantUtils.ispecDiskSize, VTypeInt),
1368 8397ffde Jose A. Lopes
   (ConstantUtils.ispecCpuCount, VTypeInt),
1369 8397ffde Jose A. Lopes
   (ConstantUtils.ispecSpindleUse, VTypeInt),
1370 8397ffde Jose A. Lopes
   (ConstantUtils.ispecMemSize, VTypeInt),
1371 8397ffde Jose A. Lopes
   (ConstantUtils.ispecNicCount, VTypeInt),
1372 8397ffde Jose A. Lopes
   (ConstantUtils.ispecDiskCount, VTypeInt)]
1373 8397ffde Jose A. Lopes
1374 8397ffde Jose A. Lopes
ispecsParameters :: FrozenSet String
1375 8397ffde Jose A. Lopes
ispecsParameters =
1376 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ispecCpuCount,
1377 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskCount,
1378 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskSize,
1379 8397ffde Jose A. Lopes
                       ConstantUtils.ispecMemSize,
1380 8397ffde Jose A. Lopes
                       ConstantUtils.ispecNicCount,
1381 8397ffde Jose A. Lopes
                       ConstantUtils.ispecSpindleUse]
1382 8397ffde Jose A. Lopes
1383 8397ffde Jose A. Lopes
ispecsMinmax :: String
1384 8397ffde Jose A. Lopes
ispecsMinmax = ConstantUtils.ispecsMinmax
1385 8397ffde Jose A. Lopes
1386 8397ffde Jose A. Lopes
ispecsMax :: String
1387 8397ffde Jose A. Lopes
ispecsMax = "max"
1388 8397ffde Jose A. Lopes
1389 8397ffde Jose A. Lopes
ispecsMin :: String
1390 8397ffde Jose A. Lopes
ispecsMin = "min"
1391 8397ffde Jose A. Lopes
1392 8397ffde Jose A. Lopes
ispecsStd :: String
1393 8397ffde Jose A. Lopes
ispecsStd = ConstantUtils.ispecsStd
1394 8397ffde Jose A. Lopes
1395 8397ffde Jose A. Lopes
ipolicyDts :: String
1396 8397ffde Jose A. Lopes
ipolicyDts = ConstantUtils.ipolicyDts
1397 8397ffde Jose A. Lopes
1398 8397ffde Jose A. Lopes
ipolicyVcpuRatio :: String
1399 8397ffde Jose A. Lopes
ipolicyVcpuRatio = ConstantUtils.ipolicyVcpuRatio
1400 8397ffde Jose A. Lopes
1401 8397ffde Jose A. Lopes
ipolicySpindleRatio :: String
1402 8397ffde Jose A. Lopes
ipolicySpindleRatio = ConstantUtils.ipolicySpindleRatio
1403 8397ffde Jose A. Lopes
1404 8397ffde Jose A. Lopes
ispecsMinmaxKeys :: FrozenSet String
1405 8397ffde Jose A. Lopes
ispecsMinmaxKeys = ConstantUtils.mkSet [ispecsMax, ispecsMin]
1406 8397ffde Jose A. Lopes
1407 8397ffde Jose A. Lopes
ipolicyParameters :: FrozenSet String
1408 8397ffde Jose A. Lopes
ipolicyParameters =
1409 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyVcpuRatio,
1410 8397ffde Jose A. Lopes
                       ConstantUtils.ipolicySpindleRatio]
1411 8397ffde Jose A. Lopes
1412 8397ffde Jose A. Lopes
ipolicyAllKeys :: FrozenSet String
1413 8397ffde Jose A. Lopes
ipolicyAllKeys =
1414 8397ffde Jose A. Lopes
  ConstantUtils.union ipolicyParameters $
1415 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyDts,
1416 8397ffde Jose A. Lopes
                       ConstantUtils.ispecsMinmax,
1417 8397ffde Jose A. Lopes
                       ispecsStd]
1418 8397ffde Jose A. Lopes
1419 ecf43dcb Jose A. Lopes
-- | Node parameter names
1420 ecf43dcb Jose A. Lopes
1421 ecf43dcb Jose A. Lopes
ndExclusiveStorage :: String
1422 ecf43dcb Jose A. Lopes
ndExclusiveStorage = "exclusive_storage"
1423 ecf43dcb Jose A. Lopes
1424 ecf43dcb Jose A. Lopes
ndOobProgram :: String
1425 ecf43dcb Jose A. Lopes
ndOobProgram = "oob_program"
1426 ecf43dcb Jose A. Lopes
1427 ecf43dcb Jose A. Lopes
ndSpindleCount :: String
1428 ecf43dcb Jose A. Lopes
ndSpindleCount = "spindle_count"
1429 ecf43dcb Jose A. Lopes
1430 ecf43dcb Jose A. Lopes
ndOvs :: String
1431 ecf43dcb Jose A. Lopes
ndOvs = "ovs"
1432 ecf43dcb Jose A. Lopes
1433 ecf43dcb Jose A. Lopes
ndOvsLink :: String
1434 ecf43dcb Jose A. Lopes
ndOvsLink = "ovs_link"
1435 ecf43dcb Jose A. Lopes
1436 ecf43dcb Jose A. Lopes
ndOvsName :: String
1437 ecf43dcb Jose A. Lopes
ndOvsName = "ovs_name"
1438 ecf43dcb Jose A. Lopes
1439 ecf43dcb Jose A. Lopes
ndsParameterTypes :: Map String VType
1440 ecf43dcb Jose A. Lopes
ndsParameterTypes =
1441 ecf43dcb Jose A. Lopes
  Map.fromList
1442 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, VTypeBool),
1443 ecf43dcb Jose A. Lopes
   (ndOobProgram, VTypeString),
1444 ecf43dcb Jose A. Lopes
   (ndOvs, VTypeBool),
1445 ecf43dcb Jose A. Lopes
   (ndOvsLink, VTypeMaybeString),
1446 ecf43dcb Jose A. Lopes
   (ndOvsName, VTypeMaybeString),
1447 ecf43dcb Jose A. Lopes
   (ndSpindleCount, VTypeInt)]
1448 ecf43dcb Jose A. Lopes
1449 ecf43dcb Jose A. Lopes
ndsParameters :: FrozenSet String
1450 ecf43dcb Jose A. Lopes
ndsParameters = ConstantUtils.mkSet (Map.keys ndsParameterTypes)
1451 ecf43dcb Jose A. Lopes
1452 ecf43dcb Jose A. Lopes
ndsParameterTitles :: Map String String
1453 ecf43dcb Jose A. Lopes
ndsParameterTitles =
1454 ecf43dcb Jose A. Lopes
  Map.fromList
1455 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, "ExclusiveStorage"),
1456 ecf43dcb Jose A. Lopes
   (ndOobProgram, "OutOfBandProgram"),
1457 ecf43dcb Jose A. Lopes
   (ndOvs, "OpenvSwitch"),
1458 ecf43dcb Jose A. Lopes
   (ndOvsLink, "OpenvSwitchLink"),
1459 ecf43dcb Jose A. Lopes
   (ndOvsName, "OpenvSwitchName"),
1460 ecf43dcb Jose A. Lopes
   (ndSpindleCount, "SpindleCount")]
1461 ecf43dcb Jose A. Lopes
1462 3b170ad4 Jose A. Lopes
1463 85c48fbb Jose A. Lopes
1464 85c48fbb Jose A. Lopes
1465 85c48fbb Jose A. Lopes
1466 85c48fbb Jose A. Lopes
1467 85c48fbb Jose A. Lopes
1468 c890f66a Jose A. Lopes
-- * OOB supported commands
1469 85c48fbb Jose A. Lopes
1470 c890f66a Jose A. Lopes
oobPowerOn :: String
1471 c890f66a Jose A. Lopes
oobPowerOn = Types.oobCommandToRaw OobPowerOn
1472 85c48fbb Jose A. Lopes
1473 c890f66a Jose A. Lopes
oobPowerOff :: String
1474 c890f66a Jose A. Lopes
oobPowerOff = Types.oobCommandToRaw OobPowerOff
1475 85c48fbb Jose A. Lopes
1476 c890f66a Jose A. Lopes
oobPowerCycle :: String
1477 c890f66a Jose A. Lopes
oobPowerCycle = Types.oobCommandToRaw OobPowerCycle
1478 85c48fbb Jose A. Lopes
1479 c890f66a Jose A. Lopes
oobPowerStatus :: String
1480 c890f66a Jose A. Lopes
oobPowerStatus = Types.oobCommandToRaw OobPowerStatus
1481 85c48fbb Jose A. Lopes
1482 c890f66a Jose A. Lopes
oobHealth :: String
1483 c890f66a Jose A. Lopes
oobHealth = Types.oobCommandToRaw OobHealth
1484 85c48fbb Jose A. Lopes
1485 c890f66a Jose A. Lopes
oobCommands :: FrozenSet String
1486 c890f66a Jose A. Lopes
oobCommands = ConstantUtils.mkSet $ map Types.oobCommandToRaw [minBound..]
1487 85c48fbb Jose A. Lopes
1488 c890f66a Jose A. Lopes
oobPowerStatusPowered :: String
1489 c890f66a Jose A. Lopes
oobPowerStatusPowered = "powered"
1490 85c48fbb Jose A. Lopes
1491 c890f66a Jose A. Lopes
-- | 60 seconds
1492 c890f66a Jose A. Lopes
oobTimeout :: Int
1493 c890f66a Jose A. Lopes
oobTimeout = 60
1494 85c48fbb Jose A. Lopes
1495 c890f66a Jose A. Lopes
-- | 2 seconds
1496 c890f66a Jose A. Lopes
oobPowerDelay :: Double
1497 c890f66a Jose A. Lopes
oobPowerDelay = 2.0
1498 85c48fbb Jose A. Lopes
1499 c890f66a Jose A. Lopes
oobStatusCritical :: String
1500 c890f66a Jose A. Lopes
oobStatusCritical = Types.oobStatusToRaw OobStatusCritical
1501 85c48fbb Jose A. Lopes
1502 c890f66a Jose A. Lopes
oobStatusOk :: String
1503 c890f66a Jose A. Lopes
oobStatusOk = Types.oobStatusToRaw OobStatusOk
1504 85c48fbb Jose A. Lopes
1505 c890f66a Jose A. Lopes
oobStatusUnknown :: String
1506 c890f66a Jose A. Lopes
oobStatusUnknown = Types.oobStatusToRaw OobStatusUnknown
1507 85c48fbb Jose A. Lopes
1508 c890f66a Jose A. Lopes
oobStatusWarning :: String
1509 c890f66a Jose A. Lopes
oobStatusWarning = Types.oobStatusToRaw OobStatusWarning
1510 85c48fbb Jose A. Lopes
1511 c890f66a Jose A. Lopes
oobStatuses :: FrozenSet String
1512 c890f66a Jose A. Lopes
oobStatuses = ConstantUtils.mkSet $ map Types.oobStatusToRaw [minBound..]
1513 85c48fbb Jose A. Lopes
1514 c890f66a Jose A. Lopes
-- * NIC_* constants are used inside the ganeti config
1515 85c48fbb Jose A. Lopes
1516 c890f66a Jose A. Lopes
nicLink :: String
1517 c890f66a Jose A. Lopes
nicLink = "link"
1518 85c48fbb Jose A. Lopes
1519 c890f66a Jose A. Lopes
nicMode :: String
1520 c890f66a Jose A. Lopes
nicMode = "mode"
1521 85c48fbb Jose A. Lopes
1522 c890f66a Jose A. Lopes
nicVlan :: String
1523 c890f66a Jose A. Lopes
nicVlan = "vlan"
1524 85c48fbb Jose A. Lopes
1525 c890f66a Jose A. Lopes
nicModeBridged :: String
1526 c890f66a Jose A. Lopes
nicModeBridged = Types.nICModeToRaw NMBridged
1527 85c48fbb Jose A. Lopes
1528 c890f66a Jose A. Lopes
nicModeRouted :: String
1529 c890f66a Jose A. Lopes
nicModeRouted = Types.nICModeToRaw NMRouted
1530 85c48fbb Jose A. Lopes
1531 c890f66a Jose A. Lopes
nicModeOvs :: String
1532 c890f66a Jose A. Lopes
nicModeOvs = Types.nICModeToRaw NMOvs
1533 85c48fbb Jose A. Lopes
1534 c890f66a Jose A. Lopes
nicIpPool :: String
1535 c890f66a Jose A. Lopes
nicIpPool = Types.nICModeToRaw NMPool
1536 85c48fbb Jose A. Lopes
1537 c890f66a Jose A. Lopes
nicValidModes :: FrozenSet String
1538 c890f66a Jose A. Lopes
nicValidModes = ConstantUtils.mkSet $ map Types.nICModeToRaw [minBound..]
1539 85c48fbb Jose A. Lopes
1540 c890f66a Jose A. Lopes
-- * Hypervisor constants
1541 85c48fbb Jose A. Lopes
1542 c890f66a Jose A. Lopes
htXenPvm :: String
1543 c890f66a Jose A. Lopes
htXenPvm = Types.hypervisorToRaw XenPvm
1544 85c48fbb Jose A. Lopes
1545 c890f66a Jose A. Lopes
htFake :: String
1546 c890f66a Jose A. Lopes
htFake = Types.hypervisorToRaw Fake
1547 85c48fbb Jose A. Lopes
1548 c890f66a Jose A. Lopes
htXenHvm :: String
1549 c890f66a Jose A. Lopes
htXenHvm = Types.hypervisorToRaw XenHvm
1550 85c48fbb Jose A. Lopes
1551 c890f66a Jose A. Lopes
htKvm :: String
1552 c890f66a Jose A. Lopes
htKvm = Types.hypervisorToRaw Kvm
1553 85c48fbb Jose A. Lopes
1554 c890f66a Jose A. Lopes
htChroot :: String
1555 c890f66a Jose A. Lopes
htChroot = Types.hypervisorToRaw Chroot
1556 85c48fbb Jose A. Lopes
1557 c890f66a Jose A. Lopes
htLxc :: String
1558 c890f66a Jose A. Lopes
htLxc = Types.hypervisorToRaw Lxc
1559 85c48fbb Jose A. Lopes
1560 c890f66a Jose A. Lopes
hyperTypes :: FrozenSet String
1561 c890f66a Jose A. Lopes
hyperTypes = ConstantUtils.mkSet $ map Types.hypervisorToRaw [minBound..]
1562 85c48fbb Jose A. Lopes
1563 c890f66a Jose A. Lopes
htsReqPort :: FrozenSet String
1564 c890f66a Jose A. Lopes
htsReqPort = ConstantUtils.mkSet [htXenHvm, htKvm]
1565 85c48fbb Jose A. Lopes
1566 c890f66a Jose A. Lopes
-- * Migration type
1567 26eca119 Jose A. Lopes
1568 c890f66a Jose A. Lopes
htMigrationLive :: String
1569 c890f66a Jose A. Lopes
htMigrationLive = Types.migrationModeToRaw MigrationLive
1570 26eca119 Jose A. Lopes
1571 c890f66a Jose A. Lopes
htMigrationNonlive :: String
1572 c890f66a Jose A. Lopes
htMigrationNonlive = Types.migrationModeToRaw MigrationNonLive
1573 26eca119 Jose A. Lopes
1574 c890f66a Jose A. Lopes
htMigrationModes :: FrozenSet String
1575 c890f66a Jose A. Lopes
htMigrationModes =
1576 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.migrationModeToRaw [minBound..]
1577 26eca119 Jose A. Lopes
1578 c890f66a Jose A. Lopes
-- * Cluster verify steps
1579 26eca119 Jose A. Lopes
1580 c890f66a Jose A. Lopes
verifyNplusoneMem :: String
1581 c890f66a Jose A. Lopes
verifyNplusoneMem = Types.verifyOptionalChecksToRaw VerifyNPlusOneMem
1582 26eca119 Jose A. Lopes
1583 c890f66a Jose A. Lopes
verifyOptionalChecks :: FrozenSet String
1584 c890f66a Jose A. Lopes
verifyOptionalChecks =
1585 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.verifyOptionalChecksToRaw [minBound..]
1586 26eca119 Jose A. Lopes
1587 c890f66a Jose A. Lopes
-- * Cluster Verify error classes
1588 26eca119 Jose A. Lopes
1589 c890f66a Jose A. Lopes
cvTcluster :: String
1590 c890f66a Jose A. Lopes
cvTcluster = "cluster"
1591 26eca119 Jose A. Lopes
1592 c890f66a Jose A. Lopes
cvTgroup :: String
1593 c890f66a Jose A. Lopes
cvTgroup = "group"
1594 26eca119 Jose A. Lopes
1595 c890f66a Jose A. Lopes
cvTnode :: String
1596 c890f66a Jose A. Lopes
cvTnode = "node"
1597 26eca119 Jose A. Lopes
1598 c890f66a Jose A. Lopes
cvTinstance :: String
1599 c890f66a Jose A. Lopes
cvTinstance = "instance"
1600 26eca119 Jose A. Lopes
1601 c890f66a Jose A. Lopes
-- * Cluster Verify error codes and documentation
1602 26eca119 Jose A. Lopes
1603 c890f66a Jose A. Lopes
cvEclustercert :: (String, String, String)
1604 c890f66a Jose A. Lopes
cvEclustercert =
1605 c890f66a Jose A. Lopes
  ("cluster",
1606 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCERT,
1607 c890f66a Jose A. Lopes
   "Cluster certificate files verification failure")
1608 26eca119 Jose A. Lopes
1609 c890f66a Jose A. Lopes
cvEclustercfg :: (String, String, String)
1610 c890f66a Jose A. Lopes
cvEclustercfg =
1611 c890f66a Jose A. Lopes
  ("cluster",
1612 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCFG,
1613 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
1614 26eca119 Jose A. Lopes
1615 c890f66a Jose A. Lopes
cvEclusterdanglinginst :: (String, String, String)
1616 c890f66a Jose A. Lopes
cvEclusterdanglinginst =
1617 c890f66a Jose A. Lopes
  ("node",
1618 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGINST,
1619 c890f66a Jose A. Lopes
   "Some instances have a non-existing primary node")
1620 26eca119 Jose A. Lopes
1621 c890f66a Jose A. Lopes
cvEclusterdanglingnodes :: (String, String, String)
1622 c890f66a Jose A. Lopes
cvEclusterdanglingnodes =
1623 c890f66a Jose A. Lopes
  ("node",
1624 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGNODES,
1625 c890f66a Jose A. Lopes
   "Some nodes belong to non-existing groups")
1626 f361a6ee Jose A. Lopes
1627 c890f66a Jose A. Lopes
cvEclusterfilecheck :: (String, String, String)
1628 c890f66a Jose A. Lopes
cvEclusterfilecheck =
1629 c890f66a Jose A. Lopes
  ("cluster",
1630 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERFILECHECK,
1631 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
1632 f361a6ee Jose A. Lopes
1633 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize :: (String, String, String)
1634 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize =
1635 c890f66a Jose A. Lopes
  ("group",
1636 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEGROUPDIFFERENTPVSIZE,
1637 c890f66a Jose A. Lopes
   "PVs in the group have different sizes")
1638 f361a6ee Jose A. Lopes
1639 c890f66a Jose A. Lopes
cvEinstancebadnode :: (String, String, String)
1640 c890f66a Jose A. Lopes
cvEinstancebadnode =
1641 c890f66a Jose A. Lopes
  ("instance",
1642 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEBADNODE,
1643 c890f66a Jose A. Lopes
   "Instance marked as running lives on an offline node")
1644 f361a6ee Jose A. Lopes
1645 c890f66a Jose A. Lopes
cvEinstancedown :: (String, String, String)
1646 c890f66a Jose A. Lopes
cvEinstancedown =
1647 c890f66a Jose A. Lopes
  ("instance",
1648 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEDOWN,
1649 c890f66a Jose A. Lopes
   "Instance not running on its primary node")
1650 f361a6ee Jose A. Lopes
1651 c890f66a Jose A. Lopes
cvEinstancefaultydisk :: (String, String, String)
1652 c890f66a Jose A. Lopes
cvEinstancefaultydisk =
1653 c890f66a Jose A. Lopes
  ("instance",
1654 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEFAULTYDISK,
1655 c890f66a Jose A. Lopes
   "Impossible to retrieve status for a disk")
1656 f361a6ee Jose A. Lopes
1657 c890f66a Jose A. Lopes
cvEinstancelayout :: (String, String, String)
1658 c890f66a Jose A. Lopes
cvEinstancelayout =
1659 c890f66a Jose A. Lopes
  ("instance",
1660 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCELAYOUT,
1661 c890f66a Jose A. Lopes
   "Instance has multiple secondary nodes")
1662 f361a6ee Jose A. Lopes
1663 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter :: (String, String, String)
1664 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter =
1665 c890f66a Jose A. Lopes
  ("instance",
1666 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGCFGPARAMETER,
1667 c890f66a Jose A. Lopes
   "A configuration parameter for an instance is missing")
1668 f361a6ee Jose A. Lopes
1669 c890f66a Jose A. Lopes
cvEinstancemissingdisk :: (String, String, String)
1670 c890f66a Jose A. Lopes
cvEinstancemissingdisk =
1671 c890f66a Jose A. Lopes
  ("instance",
1672 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGDISK,
1673 c890f66a Jose A. Lopes
   "Missing volume on an instance")
1674 f361a6ee Jose A. Lopes
1675 c890f66a Jose A. Lopes
cvEinstancepolicy :: (String, String, String)
1676 c890f66a Jose A. Lopes
cvEinstancepolicy =
1677 c890f66a Jose A. Lopes
  ("instance",
1678 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEPOLICY,
1679 c890f66a Jose A. Lopes
   "Instance does not meet policy")
1680 f361a6ee Jose A. Lopes
1681 c890f66a Jose A. Lopes
cvEinstancesplitgroups :: (String, String, String)
1682 c890f66a Jose A. Lopes
cvEinstancesplitgroups =
1683 c890f66a Jose A. Lopes
  ("instance",
1684 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCESPLITGROUPS,
1685 c890f66a Jose A. Lopes
   "Instance with primary and secondary nodes in different groups")
1686 f361a6ee Jose A. Lopes
1687 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode :: (String, String, String)
1688 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode =
1689 c890f66a Jose A. Lopes
  ("instance",
1690 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEUNSUITABLENODE,
1691 c890f66a Jose A. Lopes
   "Instance running on nodes that are not suitable for it")
1692 f361a6ee Jose A. Lopes
1693 c890f66a Jose A. Lopes
cvEinstancewrongnode :: (String, String, String)
1694 c890f66a Jose A. Lopes
cvEinstancewrongnode =
1695 c890f66a Jose A. Lopes
  ("instance",
1696 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEWRONGNODE,
1697 c890f66a Jose A. Lopes
   "Instance running on the wrong node")
1698 6dc0cb59 Jose A. Lopes
1699 c890f66a Jose A. Lopes
cvEnodedrbd :: (String, String, String)
1700 c890f66a Jose A. Lopes
cvEnodedrbd =
1701 c890f66a Jose A. Lopes
  ("node",
1702 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBD,
1703 c890f66a Jose A. Lopes
   "Error parsing the DRBD status file")
1704 6dc0cb59 Jose A. Lopes
1705 c890f66a Jose A. Lopes
cvEnodedrbdhelper :: (String, String, String)
1706 c890f66a Jose A. Lopes
cvEnodedrbdhelper =
1707 c890f66a Jose A. Lopes
  ("node",
1708 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDHELPER,
1709 c890f66a Jose A. Lopes
   "Error caused by the DRBD helper")
1710 6dc0cb59 Jose A. Lopes
1711 c890f66a Jose A. Lopes
cvEnodedrbdversion :: (String, String, String)
1712 c890f66a Jose A. Lopes
cvEnodedrbdversion =
1713 c890f66a Jose A. Lopes
  ("node",
1714 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDVERSION,
1715 c890f66a Jose A. Lopes
   "DRBD version mismatch within a node group")
1716 6dc0cb59 Jose A. Lopes
1717 c890f66a Jose A. Lopes
cvEnodefilecheck :: (String, String, String)
1718 c890f66a Jose A. Lopes
cvEnodefilecheck =
1719 c890f66a Jose A. Lopes
  ("node",
1720 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILECHECK,
1721 c890f66a Jose A. Lopes
   "Error retrieving the checksum of the node files")
1722 6dc0cb59 Jose A. Lopes
1723 c890f66a Jose A. Lopes
cvEnodefilestoragepaths :: (String, String, String)
1724 c890f66a Jose A. Lopes
cvEnodefilestoragepaths =
1725 c890f66a Jose A. Lopes
  ("node",
1726 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHS,
1727 c890f66a Jose A. Lopes
   "Detected bad file storage paths")
1728 856eb53c Jose A. Lopes
1729 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable :: (String, String, String)
1730 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable =
1731 c890f66a Jose A. Lopes
  ("node",
1732 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHUNUSABLE,
1733 c890f66a Jose A. Lopes
   "File storage path unusable")
1734 1c31b263 Jose A. Lopes
1735 c890f66a Jose A. Lopes
cvEnodehooks :: (String, String, String)
1736 c890f66a Jose A. Lopes
cvEnodehooks =
1737 c890f66a Jose A. Lopes
  ("node",
1738 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHOOKS,
1739 c890f66a Jose A. Lopes
   "Communication failure in hooks execution")
1740 1c31b263 Jose A. Lopes
1741 c890f66a Jose A. Lopes
cvEnodehv :: (String, String, String)
1742 c890f66a Jose A. Lopes
cvEnodehv =
1743 c890f66a Jose A. Lopes
  ("node",
1744 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHV,
1745 c890f66a Jose A. Lopes
   "Hypervisor parameters verification failure")
1746 df726590 Jose A. Lopes
1747 c890f66a Jose A. Lopes
cvEnodelvm :: (String, String, String)
1748 c890f66a Jose A. Lopes
cvEnodelvm =
1749 c890f66a Jose A. Lopes
  ("node",
1750 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODELVM,
1751 c890f66a Jose A. Lopes
   "LVM-related node error")
1752 df726590 Jose A. Lopes
1753 c890f66a Jose A. Lopes
cvEnoden1 :: (String, String, String)
1754 c890f66a Jose A. Lopes
cvEnoden1 =
1755 c890f66a Jose A. Lopes
  ("node",
1756 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEN1,
1757 c890f66a Jose A. Lopes
   "Not enough memory to accommodate instance failovers")
1758 df726590 Jose A. Lopes
1759 c890f66a Jose A. Lopes
cvEnodenet :: (String, String, String)
1760 c890f66a Jose A. Lopes
cvEnodenet =
1761 c890f66a Jose A. Lopes
  ("node",
1762 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODENET,
1763 c890f66a Jose A. Lopes
   "Network-related node error")
1764 df726590 Jose A. Lopes
1765 c890f66a Jose A. Lopes
cvEnodeoobpath :: (String, String, String)
1766 c890f66a Jose A. Lopes
cvEnodeoobpath =
1767 c890f66a Jose A. Lopes
  ("node",
1768 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOOBPATH,
1769 c890f66a Jose A. Lopes
   "Invalid Out Of Band path")
1770 df726590 Jose A. Lopes
1771 c890f66a Jose A. Lopes
cvEnodeorphaninstance :: (String, String, String)
1772 c890f66a Jose A. Lopes
cvEnodeorphaninstance =
1773 c890f66a Jose A. Lopes
  ("node",
1774 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANINSTANCE,
1775 c890f66a Jose A. Lopes
   "Unknown intance running on a node")
1776 df726590 Jose A. Lopes
1777 c890f66a Jose A. Lopes
cvEnodeorphanlv :: (String, String, String)
1778 c890f66a Jose A. Lopes
cvEnodeorphanlv =
1779 c890f66a Jose A. Lopes
  ("node",
1780 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANLV,
1781 c890f66a Jose A. Lopes
   "Unknown LVM logical volume")
1782 df726590 Jose A. Lopes
1783 c890f66a Jose A. Lopes
cvEnodeos :: (String, String, String)
1784 c890f66a Jose A. Lopes
cvEnodeos =
1785 c890f66a Jose A. Lopes
  ("node",
1786 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOS,
1787 c890f66a Jose A. Lopes
   "OS-related node error")
1788 7236533e Jose A. Lopes
1789 c890f66a Jose A. Lopes
cvEnoderpc :: (String, String, String)
1790 c890f66a Jose A. Lopes
cvEnoderpc =
1791 c890f66a Jose A. Lopes
  ("node",
1792 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODERPC,
1793 c890f66a Jose A. Lopes
   "Error during connection to the primary node of an instance")
1794 7236533e Jose A. Lopes
1795 c890f66a Jose A. Lopes
cvEnodesetup :: (String, String, String)
1796 c890f66a Jose A. Lopes
cvEnodesetup =
1797 c890f66a Jose A. Lopes
  ("node",
1798 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESETUP,
1799 c890f66a Jose A. Lopes
   "Node setup error")
1800 7236533e Jose A. Lopes
1801 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable :: (String, String, String)
1802 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable =
1803 c890f66a Jose A. Lopes
  ("node",
1804 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESHAREDFILESTORAGEPATHUNUSABLE,
1805 c890f66a Jose A. Lopes
   "Shared file storage path unusable")
1806 7236533e Jose A. Lopes
1807 c890f66a Jose A. Lopes
cvEnodessh :: (String, String, String)
1808 c890f66a Jose A. Lopes
cvEnodessh =
1809 c890f66a Jose A. Lopes
  ("node",
1810 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESSH,
1811 c890f66a Jose A. Lopes
   "SSH-related node error")
1812 7236533e Jose A. Lopes
1813 c890f66a Jose A. Lopes
cvEnodetime :: (String, String, String)
1814 c890f66a Jose A. Lopes
cvEnodetime =
1815 c890f66a Jose A. Lopes
  ("node",
1816 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODETIME,
1817 c890f66a Jose A. Lopes
   "Node returned invalid time")
1818 7236533e Jose A. Lopes
1819 c890f66a Jose A. Lopes
cvEnodeuserscripts :: (String, String, String)
1820 c890f66a Jose A. Lopes
cvEnodeuserscripts =
1821 c890f66a Jose A. Lopes
  ("node",
1822 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEUSERSCRIPTS,
1823 c890f66a Jose A. Lopes
   "User scripts not present or not executable")
1824 7236533e Jose A. Lopes
1825 c890f66a Jose A. Lopes
cvEnodeversion :: (String, String, String)
1826 c890f66a Jose A. Lopes
cvEnodeversion =
1827 c890f66a Jose A. Lopes
  ("node",
1828 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEVERSION,
1829 c890f66a Jose A. Lopes
   "Protocol version mismatch or Ganeti version mismatch")
1830 85c48fbb Jose A. Lopes
1831 c890f66a Jose A. Lopes
cvAllEcodes :: FrozenSet (String, String, String)
1832 c890f66a Jose A. Lopes
cvAllEcodes =
1833 c890f66a Jose A. Lopes
  ConstantUtils.mkSet
1834 c890f66a Jose A. Lopes
  [cvEclustercert,
1835 c890f66a Jose A. Lopes
   cvEclustercfg,
1836 c890f66a Jose A. Lopes
   cvEclusterdanglinginst,
1837 c890f66a Jose A. Lopes
   cvEclusterdanglingnodes,
1838 c890f66a Jose A. Lopes
   cvEclusterfilecheck,
1839 c890f66a Jose A. Lopes
   cvEgroupdifferentpvsize,
1840 c890f66a Jose A. Lopes
   cvEinstancebadnode,
1841 c890f66a Jose A. Lopes
   cvEinstancedown,
1842 c890f66a Jose A. Lopes
   cvEinstancefaultydisk,
1843 c890f66a Jose A. Lopes
   cvEinstancelayout,
1844 c890f66a Jose A. Lopes
   cvEinstancemissingcfgparameter,
1845 c890f66a Jose A. Lopes
   cvEinstancemissingdisk,
1846 c890f66a Jose A. Lopes
   cvEinstancepolicy,
1847 c890f66a Jose A. Lopes
   cvEinstancesplitgroups,
1848 c890f66a Jose A. Lopes
   cvEinstanceunsuitablenode,
1849 c890f66a Jose A. Lopes
   cvEinstancewrongnode,
1850 c890f66a Jose A. Lopes
   cvEnodedrbd,
1851 c890f66a Jose A. Lopes
   cvEnodedrbdhelper,
1852 c890f66a Jose A. Lopes
   cvEnodedrbdversion,
1853 c890f66a Jose A. Lopes
   cvEnodefilecheck,
1854 c890f66a Jose A. Lopes
   cvEnodefilestoragepaths,
1855 c890f66a Jose A. Lopes
   cvEnodefilestoragepathunusable,
1856 c890f66a Jose A. Lopes
   cvEnodehooks,
1857 c890f66a Jose A. Lopes
   cvEnodehv,
1858 c890f66a Jose A. Lopes
   cvEnodelvm,
1859 c890f66a Jose A. Lopes
   cvEnoden1,
1860 c890f66a Jose A. Lopes
   cvEnodenet,
1861 c890f66a Jose A. Lopes
   cvEnodeoobpath,
1862 c890f66a Jose A. Lopes
   cvEnodeorphaninstance,
1863 c890f66a Jose A. Lopes
   cvEnodeorphanlv,
1864 c890f66a Jose A. Lopes
   cvEnodeos,
1865 c890f66a Jose A. Lopes
   cvEnoderpc,
1866 c890f66a Jose A. Lopes
   cvEnodesetup,
1867 c890f66a Jose A. Lopes
   cvEnodesharedfilestoragepathunusable,
1868 c890f66a Jose A. Lopes
   cvEnodessh,
1869 c890f66a Jose A. Lopes
   cvEnodetime,
1870 c890f66a Jose A. Lopes
   cvEnodeuserscripts,
1871 c890f66a Jose A. Lopes
   cvEnodeversion]
1872 85c48fbb Jose A. Lopes
1873 c890f66a Jose A. Lopes
cvAllEcodesStrings :: FrozenSet String
1874 c890f66a Jose A. Lopes
cvAllEcodesStrings =
1875 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.cVErrorCodeToRaw [minBound..]
1876 85c48fbb Jose A. Lopes
1877 c890f66a Jose A. Lopes
-- * Instance status
1878 85c48fbb Jose A. Lopes
1879 c890f66a Jose A. Lopes
inststAdmindown :: String
1880 c890f66a Jose A. Lopes
inststAdmindown = Types.instanceStatusToRaw StatusDown
1881 85c48fbb Jose A. Lopes
1882 c890f66a Jose A. Lopes
inststAdminoffline :: String
1883 c890f66a Jose A. Lopes
inststAdminoffline = Types.instanceStatusToRaw StatusOffline
1884 85c48fbb Jose A. Lopes
1885 c890f66a Jose A. Lopes
inststErrordown :: String
1886 c890f66a Jose A. Lopes
inststErrordown = Types.instanceStatusToRaw ErrorDown
1887 85c48fbb Jose A. Lopes
1888 c890f66a Jose A. Lopes
inststErrorup :: String
1889 c890f66a Jose A. Lopes
inststErrorup = Types.instanceStatusToRaw ErrorUp
1890 85c48fbb Jose A. Lopes
1891 c890f66a Jose A. Lopes
inststNodedown :: String
1892 c890f66a Jose A. Lopes
inststNodedown = Types.instanceStatusToRaw NodeDown
1893 85c48fbb Jose A. Lopes
1894 c890f66a Jose A. Lopes
inststNodeoffline :: String
1895 c890f66a Jose A. Lopes
inststNodeoffline = Types.instanceStatusToRaw NodeOffline
1896 37248170 Jose A. Lopes
1897 c890f66a Jose A. Lopes
inststRunning :: String
1898 c890f66a Jose A. Lopes
inststRunning = Types.instanceStatusToRaw Running
1899 37248170 Jose A. Lopes
1900 c890f66a Jose A. Lopes
inststWrongnode :: String
1901 c890f66a Jose A. Lopes
inststWrongnode = Types.instanceStatusToRaw WrongNode
1902 37248170 Jose A. Lopes
1903 c890f66a Jose A. Lopes
inststAll :: FrozenSet String
1904 c890f66a Jose A. Lopes
inststAll = ConstantUtils.mkSet $ map Types.instanceStatusToRaw [minBound..]
1905 37248170 Jose A. Lopes
1906 c890f66a Jose A. Lopes
-- * Admin states
1907 37248170 Jose A. Lopes
1908 c890f66a Jose A. Lopes
adminstDown :: String
1909 c890f66a Jose A. Lopes
adminstDown = Types.adminStateToRaw AdminDown
1910 37248170 Jose A. Lopes
1911 c890f66a Jose A. Lopes
adminstOffline :: String
1912 c890f66a Jose A. Lopes
adminstOffline = Types.adminStateToRaw AdminOffline
1913 37248170 Jose A. Lopes
1914 c890f66a Jose A. Lopes
adminstUp :: String
1915 c890f66a Jose A. Lopes
adminstUp = Types.adminStateToRaw AdminUp
1916 37248170 Jose A. Lopes
1917 c890f66a Jose A. Lopes
adminstAll :: FrozenSet String
1918 c890f66a Jose A. Lopes
adminstAll = ConstantUtils.mkSet $ map Types.adminStateToRaw [minBound..]
1919 37248170 Jose A. Lopes
1920 c890f66a Jose A. Lopes
-- * Node roles
1921 85c48fbb Jose A. Lopes
1922 c890f66a Jose A. Lopes
nrDrained :: String
1923 c890f66a Jose A. Lopes
nrDrained = Types.nodeRoleToRaw NRDrained
1924 85c48fbb Jose A. Lopes
1925 c890f66a Jose A. Lopes
nrMaster :: String
1926 c890f66a Jose A. Lopes
nrMaster = Types.nodeRoleToRaw NRMaster
1927 85c48fbb Jose A. Lopes
1928 c890f66a Jose A. Lopes
nrMcandidate :: String
1929 c890f66a Jose A. Lopes
nrMcandidate = Types.nodeRoleToRaw NRCandidate
1930 85c48fbb Jose A. Lopes
1931 c890f66a Jose A. Lopes
nrOffline :: String
1932 c890f66a Jose A. Lopes
nrOffline = Types.nodeRoleToRaw NROffline
1933 85c48fbb Jose A. Lopes
1934 c890f66a Jose A. Lopes
nrRegular :: String
1935 c890f66a Jose A. Lopes
nrRegular = Types.nodeRoleToRaw NRRegular
1936 85c48fbb Jose A. Lopes
1937 c890f66a Jose A. Lopes
nrAll :: FrozenSet String
1938 c890f66a Jose A. Lopes
nrAll = ConstantUtils.mkSet $ map Types.nodeRoleToRaw [minBound..]
1939 85c48fbb Jose A. Lopes
1940 c890f66a Jose A. Lopes
-- * Allocator framework constants
1941 85c48fbb Jose A. Lopes
1942 c890f66a Jose A. Lopes
iallocatorVersion :: Int
1943 c890f66a Jose A. Lopes
iallocatorVersion = 2
1944 85c48fbb Jose A. Lopes
1945 c890f66a Jose A. Lopes
iallocatorDirIn :: String
1946 c890f66a Jose A. Lopes
iallocatorDirIn = Types.iAllocatorTestDirToRaw IAllocatorDirIn
1947 85c48fbb Jose A. Lopes
1948 c890f66a Jose A. Lopes
iallocatorDirOut :: String
1949 c890f66a Jose A. Lopes
iallocatorDirOut = Types.iAllocatorTestDirToRaw IAllocatorDirOut
1950 85c48fbb Jose A. Lopes
1951 c890f66a Jose A. Lopes
validIallocatorDirections :: FrozenSet String
1952 c890f66a Jose A. Lopes
validIallocatorDirections =
1953 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorTestDirToRaw [minBound..]
1954 85c48fbb Jose A. Lopes
1955 c890f66a Jose A. Lopes
iallocatorModeAlloc :: String
1956 c890f66a Jose A. Lopes
iallocatorModeAlloc = Types.iAllocatorModeToRaw IAllocatorAlloc
1957 85c48fbb Jose A. Lopes
1958 c890f66a Jose A. Lopes
iallocatorModeChgGroup :: String
1959 c890f66a Jose A. Lopes
iallocatorModeChgGroup = Types.iAllocatorModeToRaw IAllocatorChangeGroup
1960 85c48fbb Jose A. Lopes
1961 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc :: String
1962 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc = Types.iAllocatorModeToRaw IAllocatorMultiAlloc
1963 85c48fbb Jose A. Lopes
1964 c890f66a Jose A. Lopes
iallocatorModeNodeEvac :: String
1965 c890f66a Jose A. Lopes
iallocatorModeNodeEvac = Types.iAllocatorModeToRaw IAllocatorNodeEvac
1966 5867e439 Jose A. Lopes
1967 c890f66a Jose A. Lopes
iallocatorModeReloc :: String
1968 c890f66a Jose A. Lopes
iallocatorModeReloc = Types.iAllocatorModeToRaw IAllocatorReloc
1969 5867e439 Jose A. Lopes
1970 c890f66a Jose A. Lopes
validIallocatorModes :: FrozenSet String
1971 c890f66a Jose A. Lopes
validIallocatorModes =
1972 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorModeToRaw [minBound..]
1973 5867e439 Jose A. Lopes
1974 c890f66a Jose A. Lopes
iallocatorSearchPath :: [String]
1975 c890f66a Jose A. Lopes
iallocatorSearchPath = AutoConf.iallocatorSearchPath
1976 5867e439 Jose A. Lopes
1977 c890f66a Jose A. Lopes
defaultIallocatorShortcut :: String
1978 c890f66a Jose A. Lopes
defaultIallocatorShortcut = "."
1979 85c48fbb Jose A. Lopes
1980 c890f66a Jose A. Lopes
-- * Node evacuation
1981 85c48fbb Jose A. Lopes
1982 c890f66a Jose A. Lopes
nodeEvacPri :: String
1983 d067f40b Jose A. Lopes
nodeEvacPri = Types.evacModeToRaw ChangePrimary
1984 85c48fbb Jose A. Lopes
1985 c890f66a Jose A. Lopes
nodeEvacSec :: String
1986 d067f40b Jose A. Lopes
nodeEvacSec = Types.evacModeToRaw ChangeSecondary
1987 85c48fbb Jose A. Lopes
1988 c890f66a Jose A. Lopes
nodeEvacAll :: String
1989 d067f40b Jose A. Lopes
nodeEvacAll = Types.evacModeToRaw ChangeAll
1990 85c48fbb Jose A. Lopes
1991 c890f66a Jose A. Lopes
nodeEvacModes :: FrozenSet String
1992 d067f40b Jose A. Lopes
nodeEvacModes = ConstantUtils.mkSet $ map Types.evacModeToRaw [minBound..]
1993 85c48fbb Jose A. Lopes
1994 c890f66a Jose A. Lopes
-- * Job status
1995 85c48fbb Jose A. Lopes
1996 c890f66a Jose A. Lopes
jobStatusQueued :: String
1997 c890f66a Jose A. Lopes
jobStatusQueued = Types.jobStatusToRaw JOB_STATUS_QUEUED
1998 85c48fbb Jose A. Lopes
1999 c890f66a Jose A. Lopes
jobStatusWaiting :: String
2000 c890f66a Jose A. Lopes
jobStatusWaiting = Types.jobStatusToRaw JOB_STATUS_WAITING
2001 85c48fbb Jose A. Lopes
2002 c890f66a Jose A. Lopes
jobStatusCanceling :: String
2003 c890f66a Jose A. Lopes
jobStatusCanceling = Types.jobStatusToRaw JOB_STATUS_CANCELING
2004 85c48fbb Jose A. Lopes
2005 c890f66a Jose A. Lopes
jobStatusRunning :: String
2006 c890f66a Jose A. Lopes
jobStatusRunning = Types.jobStatusToRaw JOB_STATUS_RUNNING
2007 85c48fbb Jose A. Lopes
2008 c890f66a Jose A. Lopes
jobStatusCanceled :: String
2009 c890f66a Jose A. Lopes
jobStatusCanceled = Types.jobStatusToRaw JOB_STATUS_CANCELED
2010 43a9e860 Jose A. Lopes
2011 c890f66a Jose A. Lopes
jobStatusSuccess :: String
2012 c890f66a Jose A. Lopes
jobStatusSuccess = Types.jobStatusToRaw JOB_STATUS_SUCCESS
2013 43a9e860 Jose A. Lopes
2014 c890f66a Jose A. Lopes
jobStatusError :: String
2015 c890f66a Jose A. Lopes
jobStatusError = Types.jobStatusToRaw JOB_STATUS_ERROR
2016 43a9e860 Jose A. Lopes
2017 c890f66a Jose A. Lopes
jobsPending :: FrozenSet String
2018 c890f66a Jose A. Lopes
jobsPending =
2019 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [jobStatusQueued, jobStatusWaiting, jobStatusCanceling]
2020 43a9e860 Jose A. Lopes
2021 c890f66a Jose A. Lopes
jobsFinalized :: FrozenSet String
2022 c890f66a Jose A. Lopes
jobsFinalized =
2023 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.finalizedJobStatusToRaw [minBound..]
2024 43a9e860 Jose A. Lopes
2025 c890f66a Jose A. Lopes
jobStatusAll :: FrozenSet String
2026 c890f66a Jose A. Lopes
jobStatusAll = ConstantUtils.mkSet $ map Types.jobStatusToRaw [minBound..]
2027 43a9e860 Jose A. Lopes
2028 c890f66a Jose A. Lopes
-- * OpCode status
2029 43a9e860 Jose A. Lopes
2030 c890f66a Jose A. Lopes
-- ** Not yet finalized opcodes
2031 43a9e860 Jose A. Lopes
2032 c890f66a Jose A. Lopes
opStatusCanceling :: String
2033 c890f66a Jose A. Lopes
opStatusCanceling = "canceling"
2034 85c48fbb Jose A. Lopes
2035 c890f66a Jose A. Lopes
opStatusQueued :: String
2036 c890f66a Jose A. Lopes
opStatusQueued = "queued"
2037 85c48fbb Jose A. Lopes
2038 c890f66a Jose A. Lopes
opStatusRunning :: String
2039 c890f66a Jose A. Lopes
opStatusRunning = "running"
2040 85c48fbb Jose A. Lopes
2041 c890f66a Jose A. Lopes
opStatusWaiting :: String
2042 c890f66a Jose A. Lopes
opStatusWaiting = "waiting"
2043 85c48fbb Jose A. Lopes
2044 c890f66a Jose A. Lopes
-- ** Finalized opcodes
2045 85c48fbb Jose A. Lopes
2046 c890f66a Jose A. Lopes
opStatusCanceled :: String
2047 c890f66a Jose A. Lopes
opStatusCanceled = "canceled"
2048 85c48fbb Jose A. Lopes
2049 c890f66a Jose A. Lopes
opStatusError :: String
2050 c890f66a Jose A. Lopes
opStatusError = "error"
2051 85c48fbb Jose A. Lopes
2052 c890f66a Jose A. Lopes
opStatusSuccess :: String
2053 c890f66a Jose A. Lopes
opStatusSuccess = "success"
2054 85c48fbb Jose A. Lopes
2055 c890f66a Jose A. Lopes
opsFinalized :: FrozenSet String
2056 c890f66a Jose A. Lopes
opsFinalized =
2057 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [opStatusCanceled, opStatusError, opStatusSuccess]
2058 85c48fbb Jose A. Lopes
2059 c890f66a Jose A. Lopes
-- * OpCode priority
2060 85c48fbb Jose A. Lopes
2061 c890f66a Jose A. Lopes
opPrioLowest :: Int
2062 c890f66a Jose A. Lopes
opPrioLowest = 19
2063 85c48fbb Jose A. Lopes
2064 c890f66a Jose A. Lopes
opPrioHighest :: Int
2065 c890f66a Jose A. Lopes
opPrioHighest = -20
2066 85c48fbb Jose A. Lopes
2067 c890f66a Jose A. Lopes
opPrioLow :: Int
2068 c890f66a Jose A. Lopes
opPrioLow = Types.opSubmitPriorityToRaw OpPrioLow
2069 85c48fbb Jose A. Lopes
2070 c890f66a Jose A. Lopes
opPrioNormal :: Int
2071 c890f66a Jose A. Lopes
opPrioNormal = Types.opSubmitPriorityToRaw OpPrioNormal
2072 85c48fbb Jose A. Lopes
2073 c890f66a Jose A. Lopes
opPrioHigh :: Int
2074 c890f66a Jose A. Lopes
opPrioHigh = Types.opSubmitPriorityToRaw OpPrioHigh
2075 5867e439 Jose A. Lopes
2076 c890f66a Jose A. Lopes
opPrioSubmitValid :: FrozenSet Int
2077 c890f66a Jose A. Lopes
opPrioSubmitValid = ConstantUtils.mkSet [opPrioLow, opPrioNormal, opPrioHigh]
2078 5867e439 Jose A. Lopes
2079 c890f66a Jose A. Lopes
opPrioDefault :: Int
2080 c890f66a Jose A. Lopes
opPrioDefault = opPrioNormal
2081 5867e439 Jose A. Lopes
2082 c890f66a Jose A. Lopes
-- * Execution log types
2083 5867e439 Jose A. Lopes
2084 c890f66a Jose A. Lopes
elogMessage :: String
2085 c890f66a Jose A. Lopes
elogMessage = Types.eLogTypeToRaw ELogMessage
2086 5867e439 Jose A. Lopes
2087 c890f66a Jose A. Lopes
elogRemoteImport :: String
2088 c890f66a Jose A. Lopes
elogRemoteImport = Types.eLogTypeToRaw ELogRemoteImport
2089 5867e439 Jose A. Lopes
2090 c890f66a Jose A. Lopes
elogJqueueTest :: String
2091 c890f66a Jose A. Lopes
elogJqueueTest = Types.eLogTypeToRaw ELogJqueueTest
2092 5867e439 Jose A. Lopes
2093 cdac0552 Jose A. Lopes
-- * Confd
2094 cdac0552 Jose A. Lopes
2095 cdac0552 Jose A. Lopes
confdProtocolVersion :: Int
2096 cdac0552 Jose A. Lopes
confdProtocolVersion = ConstantUtils.confdProtocolVersion
2097 cdac0552 Jose A. Lopes
2098 cdac0552 Jose A. Lopes
-- Confd request type
2099 cdac0552 Jose A. Lopes
2100 cdac0552 Jose A. Lopes
confdReqPing :: Int
2101 cdac0552 Jose A. Lopes
confdReqPing = Types.confdRequestTypeToRaw ReqPing
2102 cdac0552 Jose A. Lopes
2103 cdac0552 Jose A. Lopes
confdReqNodeRoleByname :: Int
2104 cdac0552 Jose A. Lopes
confdReqNodeRoleByname = Types.confdRequestTypeToRaw ReqNodeRoleByName
2105 cdac0552 Jose A. Lopes
2106 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp :: Int
2107 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp = Types.confdRequestTypeToRaw ReqNodePipByInstPip
2108 cdac0552 Jose A. Lopes
2109 cdac0552 Jose A. Lopes
confdReqClusterMaster :: Int
2110 cdac0552 Jose A. Lopes
confdReqClusterMaster = Types.confdRequestTypeToRaw ReqClusterMaster
2111 cdac0552 Jose A. Lopes
2112 cdac0552 Jose A. Lopes
confdReqNodePipList :: Int
2113 cdac0552 Jose A. Lopes
confdReqNodePipList = Types.confdRequestTypeToRaw ReqNodePipList
2114 cdac0552 Jose A. Lopes
2115 cdac0552 Jose A. Lopes
confdReqMcPipList :: Int
2116 cdac0552 Jose A. Lopes
confdReqMcPipList = Types.confdRequestTypeToRaw ReqMcPipList
2117 cdac0552 Jose A. Lopes
2118 cdac0552 Jose A. Lopes
confdReqInstancesIpsList :: Int
2119 cdac0552 Jose A. Lopes
confdReqInstancesIpsList = Types.confdRequestTypeToRaw ReqInstIpsList
2120 cdac0552 Jose A. Lopes
2121 cdac0552 Jose A. Lopes
confdReqNodeDrbd :: Int
2122 cdac0552 Jose A. Lopes
confdReqNodeDrbd = Types.confdRequestTypeToRaw ReqNodeDrbd
2123 cdac0552 Jose A. Lopes
2124 cdac0552 Jose A. Lopes
confdReqNodeInstances :: Int
2125 cdac0552 Jose A. Lopes
confdReqNodeInstances = Types.confdRequestTypeToRaw ReqNodeInstances
2126 cdac0552 Jose A. Lopes
2127 cdac0552 Jose A. Lopes
confdReqs :: FrozenSet Int
2128 cdac0552 Jose A. Lopes
confdReqs =
2129 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet .
2130 cdac0552 Jose A. Lopes
  map Types.confdRequestTypeToRaw $
2131 cdac0552 Jose A. Lopes
  [minBound..] \\ [ReqNodeInstances]
2132 cdac0552 Jose A. Lopes
2133 cdac0552 Jose A. Lopes
-- * Confd request type
2134 cdac0552 Jose A. Lopes
2135 cdac0552 Jose A. Lopes
confdReqfieldName :: Int
2136 cdac0552 Jose A. Lopes
confdReqfieldName = Types.confdReqFieldToRaw ReqFieldName
2137 cdac0552 Jose A. Lopes
2138 cdac0552 Jose A. Lopes
confdReqfieldIp :: Int
2139 cdac0552 Jose A. Lopes
confdReqfieldIp = Types.confdReqFieldToRaw ReqFieldIp
2140 cdac0552 Jose A. Lopes
2141 cdac0552 Jose A. Lopes
confdReqfieldMnodePip :: Int
2142 cdac0552 Jose A. Lopes
confdReqfieldMnodePip = Types.confdReqFieldToRaw ReqFieldMNodePip
2143 cdac0552 Jose A. Lopes
2144 cdac0552 Jose A. Lopes
-- * Confd repl status
2145 cdac0552 Jose A. Lopes
2146 cdac0552 Jose A. Lopes
confdReplStatusOk :: Int
2147 cdac0552 Jose A. Lopes
confdReplStatusOk = Types.confdReplyStatusToRaw ReplyStatusOk
2148 cdac0552 Jose A. Lopes
2149 cdac0552 Jose A. Lopes
confdReplStatusError :: Int
2150 cdac0552 Jose A. Lopes
confdReplStatusError = Types.confdReplyStatusToRaw ReplyStatusError
2151 cdac0552 Jose A. Lopes
2152 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented :: Int
2153 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented = Types.confdReplyStatusToRaw ReplyStatusNotImpl
2154 cdac0552 Jose A. Lopes
2155 cdac0552 Jose A. Lopes
confdReplStatuses :: FrozenSet Int
2156 cdac0552 Jose A. Lopes
confdReplStatuses =
2157 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.confdReplyStatusToRaw [minBound..]
2158 cdac0552 Jose A. Lopes
2159 cdac0552 Jose A. Lopes
-- * Confd node role
2160 cdac0552 Jose A. Lopes
2161 cdac0552 Jose A. Lopes
confdNodeRoleMaster :: Int
2162 cdac0552 Jose A. Lopes
confdNodeRoleMaster = Types.confdNodeRoleToRaw NodeRoleMaster
2163 cdac0552 Jose A. Lopes
2164 cdac0552 Jose A. Lopes
confdNodeRoleCandidate :: Int
2165 cdac0552 Jose A. Lopes
confdNodeRoleCandidate = Types.confdNodeRoleToRaw NodeRoleCandidate
2166 cdac0552 Jose A. Lopes
2167 cdac0552 Jose A. Lopes
confdNodeRoleOffline :: Int
2168 cdac0552 Jose A. Lopes
confdNodeRoleOffline = Types.confdNodeRoleToRaw NodeRoleOffline
2169 cdac0552 Jose A. Lopes
2170 cdac0552 Jose A. Lopes
confdNodeRoleDrained :: Int
2171 cdac0552 Jose A. Lopes
confdNodeRoleDrained = Types.confdNodeRoleToRaw NodeRoleDrained
2172 cdac0552 Jose A. Lopes
2173 cdac0552 Jose A. Lopes
confdNodeRoleRegular :: Int
2174 cdac0552 Jose A. Lopes
confdNodeRoleRegular = Types.confdNodeRoleToRaw NodeRoleRegular
2175 cdac0552 Jose A. Lopes
2176 61e32567 Jose A. Lopes
-- * A few common errors for confd
2177 61e32567 Jose A. Lopes
2178 cdac0552 Jose A. Lopes
confdErrorUnknownEntry :: Int
2179 cdac0552 Jose A. Lopes
confdErrorUnknownEntry = Types.confdErrorTypeToRaw ConfdErrorUnknownEntry
2180 61e32567 Jose A. Lopes
2181 61e32567 Jose A. Lopes
confdErrorInternal :: Int
2182 cdac0552 Jose A. Lopes
confdErrorInternal = Types.confdErrorTypeToRaw ConfdErrorInternal
2183 61e32567 Jose A. Lopes
2184 cdac0552 Jose A. Lopes
confdErrorArgument :: Int
2185 cdac0552 Jose A. Lopes
confdErrorArgument = Types.confdErrorTypeToRaw ConfdErrorArgument
2186 61e32567 Jose A. Lopes
2187 cdac0552 Jose A. Lopes
-- * Confd request query fields
2188 dd95d461 Jose A. Lopes
2189 dd95d461 Jose A. Lopes
confdReqqLink :: String
2190 dd95d461 Jose A. Lopes
confdReqqLink = ConstantUtils.confdReqqLink
2191 dd95d461 Jose A. Lopes
2192 dd95d461 Jose A. Lopes
confdReqqIp :: String
2193 dd95d461 Jose A. Lopes
confdReqqIp = ConstantUtils.confdReqqIp
2194 dd95d461 Jose A. Lopes
2195 dd95d461 Jose A. Lopes
confdReqqIplist :: String
2196 dd95d461 Jose A. Lopes
confdReqqIplist = ConstantUtils.confdReqqIplist
2197 dd95d461 Jose A. Lopes
2198 dd95d461 Jose A. Lopes
confdReqqFields :: String
2199 dd95d461 Jose A. Lopes
confdReqqFields = ConstantUtils.confdReqqFields
2200 dd95d461 Jose A. Lopes
2201 61e32567 Jose A. Lopes
-- | Each request is "salted" by the current timestamp.
2202 61e32567 Jose A. Lopes
--
2203 61e32567 Jose A. Lopes
-- This constant decides how many seconds of skew to accept.
2204 61e32567 Jose A. Lopes
--
2205 61e32567 Jose A. Lopes
-- TODO: make this a default and allow the value to be more
2206 61e32567 Jose A. Lopes
-- configurable
2207 61e32567 Jose A. Lopes
confdMaxClockSkew :: Int
2208 61e32567 Jose A. Lopes
confdMaxClockSkew = 2 * nodeMaxClockSkew
2209 61e32567 Jose A. Lopes
2210 61e32567 Jose A. Lopes
-- | When we haven't reloaded the config for more than this amount of
2211 61e32567 Jose A. Lopes
-- seconds, we force a test to see if inotify is betraying us. Using a
2212 61e32567 Jose A. Lopes
-- prime number to ensure we get less chance of 'same wakeup' with
2213 61e32567 Jose A. Lopes
-- other processes.
2214 61e32567 Jose A. Lopes
confdConfigReloadTimeout :: Int
2215 61e32567 Jose A. Lopes
confdConfigReloadTimeout = 17
2216 61e32567 Jose A. Lopes
2217 61e32567 Jose A. Lopes
-- | If we receive more than one update in this amount of
2218 61e32567 Jose A. Lopes
-- microseconds, we move to polling every RATELIMIT seconds, rather
2219 61e32567 Jose A. Lopes
-- than relying on inotify, to be able to serve more requests.
2220 61e32567 Jose A. Lopes
confdConfigReloadRatelimit :: Int
2221 61e32567 Jose A. Lopes
confdConfigReloadRatelimit = 250000
2222 61e32567 Jose A. Lopes
2223 61e32567 Jose A. Lopes
-- | Magic number prepended to all confd queries.
2224 61e32567 Jose A. Lopes
--
2225 61e32567 Jose A. Lopes
-- This allows us to distinguish different types of confd protocols
2226 61e32567 Jose A. Lopes
-- and handle them. For example by changing this we can move the whole
2227 61e32567 Jose A. Lopes
-- payload to be compressed, or move away from json.
2228 61e32567 Jose A. Lopes
confdMagicFourcc :: String
2229 61e32567 Jose A. Lopes
confdMagicFourcc = "plj0"
2230 61e32567 Jose A. Lopes
2231 61e32567 Jose A. Lopes
-- | By default a confd request is sent to the minimum between this
2232 61e32567 Jose A. Lopes
-- number and all MCs. 6 was chosen because even in the case of a
2233 61e32567 Jose A. Lopes
-- disastrous 50% response rate, we should have enough answers to be
2234 61e32567 Jose A. Lopes
-- able to compare more than one.
2235 61e32567 Jose A. Lopes
confdDefaultReqCoverage :: Int
2236 61e32567 Jose A. Lopes
confdDefaultReqCoverage = 6
2237 61e32567 Jose A. Lopes
2238 61e32567 Jose A. Lopes
-- | Timeout in seconds to expire pending query request in the confd
2239 61e32567 Jose A. Lopes
-- client library. We don't actually expect any answer more than 10
2240 61e32567 Jose A. Lopes
-- seconds after we sent a request.
2241 61e32567 Jose A. Lopes
confdClientExpireTimeout :: Int
2242 61e32567 Jose A. Lopes
confdClientExpireTimeout = 10
2243 61e32567 Jose A. Lopes
2244 f361a6ee Jose A. Lopes
-- * Possible values for NodeGroup.alloc_policy
2245 f361a6ee Jose A. Lopes
2246 f361a6ee Jose A. Lopes
allocPolicyLastResort :: String
2247 58c09b0e Jose A. Lopes
allocPolicyLastResort = Types.allocPolicyToRaw AllocLastResort
2248 f361a6ee Jose A. Lopes
2249 f361a6ee Jose A. Lopes
allocPolicyPreferred :: String
2250 58c09b0e Jose A. Lopes
allocPolicyPreferred = Types.allocPolicyToRaw AllocPreferred
2251 f361a6ee Jose A. Lopes
2252 f361a6ee Jose A. Lopes
allocPolicyUnallocable :: String
2253 58c09b0e Jose A. Lopes
allocPolicyUnallocable = Types.allocPolicyToRaw AllocUnallocable
2254 f361a6ee Jose A. Lopes
2255 f361a6ee Jose A. Lopes
validAllocPolicies :: [String]
2256 58c09b0e Jose A. Lopes
validAllocPolicies = map Types.allocPolicyToRaw [minBound..]
2257 f361a6ee Jose A. Lopes
2258 f361a6ee Jose A. Lopes
-- | Temporary external/shared storage parameters
2259 f361a6ee Jose A. Lopes
blockdevDriverManual :: String
2260 5867e439 Jose A. Lopes
blockdevDriverManual = Types.blockDriverToRaw BlockDrvManual
2261 f361a6ee Jose A. Lopes
2262 3b170ad4 Jose A. Lopes
-- | 'qemu-img' path, required for 'ovfconverter'
2263 3b170ad4 Jose A. Lopes
qemuimgPath :: String
2264 3b170ad4 Jose A. Lopes
qemuimgPath = AutoConf.qemuimgPath
2265 3b170ad4 Jose A. Lopes
2266 3b170ad4 Jose A. Lopes
-- | Whether htools was enabled at compilation time
2267 3b170ad4 Jose A. Lopes
--
2268 3b170ad4 Jose A. Lopes
-- FIXME: this should be moved next to the other enable constants,
2269 3b170ad4 Jose A. Lopes
-- such as, 'enableConfd', and renamed to 'enableHtools'.
2270 3b170ad4 Jose A. Lopes
htools :: Bool
2271 3b170ad4 Jose A. Lopes
htools = AutoConf.htools
2272 3b170ad4 Jose A. Lopes
2273 84ad6b78 Jose A. Lopes
-- * Key files for SSH daemon
2274 84ad6b78 Jose A. Lopes
2275 84ad6b78 Jose A. Lopes
sshHostDsaPriv :: String
2276 84ad6b78 Jose A. Lopes
sshHostDsaPriv = sshConfigDir ++ "/ssh_host_dsa_key"
2277 84ad6b78 Jose A. Lopes
2278 84ad6b78 Jose A. Lopes
sshHostDsaPub :: String
2279 84ad6b78 Jose A. Lopes
sshHostDsaPub = sshHostDsaPriv ++ ".pub"
2280 84ad6b78 Jose A. Lopes
2281 84ad6b78 Jose A. Lopes
sshHostRsaPriv :: String
2282 84ad6b78 Jose A. Lopes
sshHostRsaPriv = sshConfigDir ++ "/ssh_host_rsa_key"
2283 84ad6b78 Jose A. Lopes
2284 84ad6b78 Jose A. Lopes
sshHostRsaPub :: String
2285 84ad6b78 Jose A. Lopes
sshHostRsaPub = sshHostRsaPriv ++ ".pub"
2286 84ad6b78 Jose A. Lopes
2287 06fd57e5 Jose A. Lopes
-- | Path generating random UUID
2288 06fd57e5 Jose A. Lopes
randomUuidFile :: String
2289 06fd57e5 Jose A. Lopes
randomUuidFile = ConstantUtils.randomUuidFile
2290 06fd57e5 Jose A. Lopes
2291 f361a6ee Jose A. Lopes
-- * Auto-repair tag prefixes
2292 f361a6ee Jose A. Lopes
2293 f361a6ee Jose A. Lopes
autoRepairTagPrefix :: String
2294 f361a6ee Jose A. Lopes
autoRepairTagPrefix = "ganeti:watcher:autorepair:"
2295 f361a6ee Jose A. Lopes
2296 f361a6ee Jose A. Lopes
autoRepairTagEnabled :: String
2297 f361a6ee Jose A. Lopes
autoRepairTagEnabled = autoRepairTagPrefix
2298 f361a6ee Jose A. Lopes
2299 f361a6ee Jose A. Lopes
autoRepairTagPending :: String
2300 f361a6ee Jose A. Lopes
autoRepairTagPending = autoRepairTagPrefix ++ "pending:"
2301 f361a6ee Jose A. Lopes
2302 f361a6ee Jose A. Lopes
autoRepairTagResult :: String
2303 f361a6ee Jose A. Lopes
autoRepairTagResult = autoRepairTagPrefix ++ "result:"
2304 f361a6ee Jose A. Lopes
2305 f361a6ee Jose A. Lopes
autoRepairTagSuspended :: String
2306 f361a6ee Jose A. Lopes
autoRepairTagSuspended = autoRepairTagPrefix ++ "suspend:"
2307 f361a6ee Jose A. Lopes
2308 f361a6ee Jose A. Lopes
-- * Auto-repair levels
2309 f361a6ee Jose A. Lopes
2310 f361a6ee Jose A. Lopes
autoRepairFailover :: String
2311 f361a6ee Jose A. Lopes
autoRepairFailover = "failover"
2312 f361a6ee Jose A. Lopes
2313 f361a6ee Jose A. Lopes
autoRepairFixStorage :: String
2314 f361a6ee Jose A. Lopes
autoRepairFixStorage = "fix-storage"
2315 f361a6ee Jose A. Lopes
2316 f361a6ee Jose A. Lopes
autoRepairMigrate :: String
2317 f361a6ee Jose A. Lopes
autoRepairMigrate = "migrate"
2318 f361a6ee Jose A. Lopes
2319 f361a6ee Jose A. Lopes
autoRepairReinstall :: String
2320 f361a6ee Jose A. Lopes
autoRepairReinstall = "reinstall"
2321 f361a6ee Jose A. Lopes
2322 f361a6ee Jose A. Lopes
autoRepairAllTypes :: FrozenSet String
2323 f361a6ee Jose A. Lopes
autoRepairAllTypes =
2324 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairFailover,
2325 43a9e860 Jose A. Lopes
                       autoRepairFixStorage,
2326 43a9e860 Jose A. Lopes
                       autoRepairMigrate,
2327 43a9e860 Jose A. Lopes
                       autoRepairReinstall]
2328 f361a6ee Jose A. Lopes
2329 f361a6ee Jose A. Lopes
-- * Auto-repair results
2330 f361a6ee Jose A. Lopes
2331 f361a6ee Jose A. Lopes
autoRepairEnoperm :: String
2332 f361a6ee Jose A. Lopes
autoRepairEnoperm = "enoperm"
2333 f361a6ee Jose A. Lopes
2334 f361a6ee Jose A. Lopes
autoRepairFailure :: String
2335 f361a6ee Jose A. Lopes
autoRepairFailure = "failure"
2336 f361a6ee Jose A. Lopes
2337 f361a6ee Jose A. Lopes
autoRepairSuccess :: String
2338 f361a6ee Jose A. Lopes
autoRepairSuccess = "success"
2339 f361a6ee Jose A. Lopes
2340 f361a6ee Jose A. Lopes
autoRepairAllResults :: FrozenSet String
2341 f361a6ee Jose A. Lopes
autoRepairAllResults =
2342 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairEnoperm, autoRepairFailure, autoRepairSuccess]
2343 f361a6ee Jose A. Lopes
2344 f361a6ee Jose A. Lopes
-- | The version identifier for builtin data collectors
2345 f361a6ee Jose A. Lopes
builtinDataCollectorVersion :: String
2346 f361a6ee Jose A. Lopes
builtinDataCollectorVersion = "B"
2347 2924f169 Jose A. Lopes
2348 2924f169 Jose A. Lopes
-- | The reason trail opcode parameter name
2349 2924f169 Jose A. Lopes
opcodeReason :: String
2350 2924f169 Jose A. Lopes
opcodeReason = "reason"
2351 2924f169 Jose A. Lopes
2352 2924f169 Jose A. Lopes
diskstatsFile :: String
2353 2924f169 Jose A. Lopes
diskstatsFile = "/proc/diskstats"
2354 2924f169 Jose A. Lopes
2355 74129b52 Jose A. Lopes
-- *  CPU load collector
2356 74129b52 Jose A. Lopes
2357 2924f169 Jose A. Lopes
statFile :: String
2358 2924f169 Jose A. Lopes
statFile = "/proc/stat"
2359 2924f169 Jose A. Lopes
2360 74129b52 Jose A. Lopes
cpuavgloadBufferSize :: Int
2361 74129b52 Jose A. Lopes
cpuavgloadBufferSize = 150
2362 74129b52 Jose A. Lopes
2363 74129b52 Jose A. Lopes
cpuavgloadWindowSize :: Int
2364 74129b52 Jose A. Lopes
cpuavgloadWindowSize = 600
2365 74129b52 Jose A. Lopes
2366 2924f169 Jose A. Lopes
-- | Mond's variable for periodical data collection
2367 2924f169 Jose A. Lopes
mondTimeInterval :: Int
2368 2924f169 Jose A. Lopes
mondTimeInterval = 5
2369 9b9e088c Raffa Santi
2370 9b9e088c Raffa Santi
-- * Disk access modes
2371 9b9e088c Raffa Santi
2372 9b9e088c Raffa Santi
diskUserspace :: String
2373 9b9e088c Raffa Santi
diskUserspace = Types.diskAccessModeToRaw DiskUserspace
2374 9b9e088c Raffa Santi
2375 9b9e088c Raffa Santi
diskKernelspace :: String
2376 9b9e088c Raffa Santi
diskKernelspace = Types.diskAccessModeToRaw DiskKernelspace
2377 9b9e088c Raffa Santi
2378 9b9e088c Raffa Santi
diskValidAccessModes :: FrozenSet String
2379 9b9e088c Raffa Santi
diskValidAccessModes =
2380 9b9e088c Raffa Santi
  ConstantUtils.mkSet $ map Types.diskAccessModeToRaw [minBound..]
2381 55f0626b Klaus Aehlig
2382 55f0626b Klaus Aehlig
-- | Timeout for queue draining in upgrades
2383 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout :: Int
2384 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout = 36 * 60 * 60 -- 1.5 days
2385 55f0626b Klaus Aehlig
2386 55f0626b Klaus Aehlig
-- | Intervall at which the queue is polled during upgrades
2387 55f0626b Klaus Aehlig
upgradeQueuePollInterval :: Int
2388 55f0626b Klaus Aehlig
upgradeQueuePollInterval  = 10