Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ 3b170ad4

History | View | Annotate | Download (33.2 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 6dc0cb59 Jose A. Lopes
import Data.Map (Map)
40 6dc0cb59 Jose A. Lopes
import qualified Data.Map as Map (fromList)
41 6dc0cb59 Jose A. Lopes
42 26eca119 Jose A. Lopes
import AutoConf
43 3b170ad4 Jose A. Lopes
import Ganeti.ConstantUtils (FrozenSet, Protocol(..), buildVersion)
44 df726590 Jose A. Lopes
import qualified Ganeti.ConstantUtils as ConstantUtils
45 1c31b263 Jose A. Lopes
import Ganeti.Runtime (GanetiDaemon(..), MiscGroup(..), GanetiGroup(..),
46 1c31b263 Jose A. Lopes
                       ExtraLogReason(..))
47 df726590 Jose A. Lopes
import Ganeti.Logging (SyslogUsage(..))
48 df726590 Jose A. Lopes
import qualified Ganeti.Logging as Logging (syslogUsageToRaw)
49 1c31b263 Jose A. Lopes
import qualified Ganeti.Runtime as Runtime
50 85c48fbb Jose A. Lopes
import Ganeti.Types
51 85c48fbb Jose A. Lopes
import qualified Ganeti.Types as Types
52 85c48fbb Jose A. Lopes
53 3b170ad4 Jose A. Lopes
-- * 'autoconf' constants for Python only
54 3b170ad4 Jose A. Lopes
55 3b170ad4 Jose A. Lopes
drbdBarriers :: String
56 3b170ad4 Jose A. Lopes
drbdBarriers = AutoConf.drbdBarriers
57 3b170ad4 Jose A. Lopes
58 3b170ad4 Jose A. Lopes
drbdNoMetaFlush :: Bool
59 3b170ad4 Jose A. Lopes
drbdNoMetaFlush = AutoConf.drbdNoMetaFlush
60 3b170ad4 Jose A. Lopes
61 3b170ad4 Jose A. Lopes
lvmStripecount :: Int
62 3b170ad4 Jose A. Lopes
lvmStripecount = AutoConf.lvmStripecount
63 3b170ad4 Jose A. Lopes
64 3b170ad4 Jose A. Lopes
-- * Various versions
65 3b170ad4 Jose A. Lopes
66 3b170ad4 Jose A. Lopes
releaseVersion :: String
67 3b170ad4 Jose A. Lopes
releaseVersion = AutoConf.packageVersion
68 3b170ad4 Jose A. Lopes
69 3b170ad4 Jose A. Lopes
configMajor :: Int
70 3b170ad4 Jose A. Lopes
configMajor = AutoConf.versionMajor
71 3b170ad4 Jose A. Lopes
72 3b170ad4 Jose A. Lopes
configMinor :: Int
73 3b170ad4 Jose A. Lopes
configMinor = AutoConf.versionMinor
74 3b170ad4 Jose A. Lopes
75 3b170ad4 Jose A. Lopes
-- | The configuration is supposed to remain stable across
76 3b170ad4 Jose A. Lopes
-- revisions. Therefore, the revision number is cleared to '0'.
77 3b170ad4 Jose A. Lopes
configRevision :: Int
78 3b170ad4 Jose A. Lopes
configRevision = 0
79 3b170ad4 Jose A. Lopes
80 3b170ad4 Jose A. Lopes
configVersion :: Int
81 3b170ad4 Jose A. Lopes
configVersion = buildVersion configMajor configMinor configRevision
82 3b170ad4 Jose A. Lopes
83 3b170ad4 Jose A. Lopes
-- | Similarly to the configuration (see 'configRevision'), the
84 3b170ad4 Jose A. Lopes
-- protocols are supposed to remain stable across revisions.
85 3b170ad4 Jose A. Lopes
protocolVersion :: Int
86 3b170ad4 Jose A. Lopes
protocolVersion = buildVersion configMajor configMinor configRevision
87 3b170ad4 Jose A. Lopes
88 3311e336 Jose A. Lopes
-- * Constants for 'lib/pathutils.py'
89 3311e336 Jose A. Lopes
90 3311e336 Jose A. Lopes
osSearchPath :: [String]
91 3311e336 Jose A. Lopes
osSearchPath = AutoConf.osSearchPath
92 3311e336 Jose A. Lopes
93 3311e336 Jose A. Lopes
esSearchPath :: [String]
94 3311e336 Jose A. Lopes
esSearchPath = AutoConf.esSearchPath
95 3311e336 Jose A. Lopes
96 c890f66a Jose A. Lopes
-- * User separation
97 c890f66a Jose A. Lopes
daemonsGroup :: String
98 c890f66a Jose A. Lopes
daemonsGroup = Runtime.daemonGroup (ExtraGroup DaemonsGroup)
99 85c48fbb Jose A. Lopes
100 c890f66a Jose A. Lopes
adminGroup :: String
101 c890f66a Jose A. Lopes
adminGroup = Runtime.daemonGroup (ExtraGroup AdminGroup)
102 85c48fbb Jose A. Lopes
103 c890f66a Jose A. Lopes
masterdUser :: String
104 c890f66a Jose A. Lopes
masterdUser = Runtime.daemonUser GanetiMasterd
105 85c48fbb Jose A. Lopes
106 c890f66a Jose A. Lopes
masterdGroup :: String
107 c890f66a Jose A. Lopes
masterdGroup = Runtime.daemonGroup (DaemonGroup GanetiMasterd)
108 85c48fbb Jose A. Lopes
109 c890f66a Jose A. Lopes
rapiUser :: String
110 c890f66a Jose A. Lopes
rapiUser = Runtime.daemonUser GanetiRapi
111 85c48fbb Jose A. Lopes
112 c890f66a Jose A. Lopes
rapiGroup :: String
113 c890f66a Jose A. Lopes
rapiGroup = Runtime.daemonGroup (DaemonGroup GanetiRapi)
114 85c48fbb Jose A. Lopes
115 c890f66a Jose A. Lopes
confdUser :: String
116 c890f66a Jose A. Lopes
confdUser = Runtime.daemonUser GanetiConfd
117 85c48fbb Jose A. Lopes
118 c890f66a Jose A. Lopes
confdGroup :: String
119 c890f66a Jose A. Lopes
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
120 85c48fbb Jose A. Lopes
121 c890f66a Jose A. Lopes
luxidUser :: String
122 c890f66a Jose A. Lopes
luxidUser = Runtime.daemonUser GanetiLuxid
123 85c48fbb Jose A. Lopes
124 c890f66a Jose A. Lopes
luxidGroup :: String
125 c890f66a Jose A. Lopes
luxidGroup = Runtime.daemonGroup (DaemonGroup GanetiLuxid)
126 85c48fbb Jose A. Lopes
127 c890f66a Jose A. Lopes
nodedUser :: String
128 c890f66a Jose A. Lopes
nodedUser = Runtime.daemonUser GanetiNoded
129 85c48fbb Jose A. Lopes
130 c890f66a Jose A. Lopes
nodedGroup :: String
131 c890f66a Jose A. Lopes
nodedGroup = Runtime.daemonGroup (DaemonGroup GanetiNoded)
132 85c48fbb Jose A. Lopes
133 c890f66a Jose A. Lopes
mondUser :: String
134 c890f66a Jose A. Lopes
mondUser = Runtime.daemonUser GanetiMond
135 85c48fbb Jose A. Lopes
136 c890f66a Jose A. Lopes
mondGroup :: String
137 c890f66a Jose A. Lopes
mondGroup = Runtime.daemonGroup (DaemonGroup GanetiMond)
138 85c48fbb Jose A. Lopes
139 c890f66a Jose A. Lopes
sshLoginUser :: String
140 c890f66a Jose A. Lopes
sshLoginUser = AutoConf.sshLoginUser
141 85c48fbb Jose A. Lopes
142 c890f66a Jose A. Lopes
sshConsoleUser :: String
143 c890f66a Jose A. Lopes
sshConsoleUser = AutoConf.sshConsoleUser
144 85c48fbb Jose A. Lopes
145 3b170ad4 Jose A. Lopes
-- * 'autoconf' enable/disable
146 3b170ad4 Jose A. Lopes
147 3b170ad4 Jose A. Lopes
enableConfd :: Bool
148 3b170ad4 Jose A. Lopes
enableConfd = AutoConf.enableConfd
149 3b170ad4 Jose A. Lopes
150 3b170ad4 Jose A. Lopes
enableMond :: Bool
151 3b170ad4 Jose A. Lopes
enableMond = AutoConf.enableMond
152 3b170ad4 Jose A. Lopes
153 3b170ad4 Jose A. Lopes
enableRestrictedCommands :: Bool
154 3b170ad4 Jose A. Lopes
enableRestrictedCommands = AutoConf.enableRestrictedCommands
155 3b170ad4 Jose A. Lopes
156 3b170ad4 Jose A. Lopes
enableSplitQuery :: Bool
157 3b170ad4 Jose A. Lopes
enableSplitQuery = AutoConf.enableSplitQuery
158 3b170ad4 Jose A. Lopes
159 c890f66a Jose A. Lopes
-- * SSH constants
160 85c48fbb Jose A. Lopes
161 c890f66a Jose A. Lopes
ssh :: String
162 c890f66a Jose A. Lopes
ssh = "ssh"
163 85c48fbb Jose A. Lopes
164 c890f66a Jose A. Lopes
scp :: String
165 c890f66a Jose A. Lopes
scp = "scp"
166 85c48fbb Jose A. Lopes
167 c890f66a Jose A. Lopes
-- * Daemons
168 85c48fbb Jose A. Lopes
169 c890f66a Jose A. Lopes
confd :: String
170 c890f66a Jose A. Lopes
confd = Runtime.daemonName GanetiConfd
171 85c48fbb Jose A. Lopes
172 c890f66a Jose A. Lopes
masterd :: String
173 c890f66a Jose A. Lopes
masterd = Runtime.daemonName GanetiMasterd
174 85c48fbb Jose A. Lopes
175 c890f66a Jose A. Lopes
mond :: String
176 c890f66a Jose A. Lopes
mond = Runtime.daemonName GanetiMond
177 85c48fbb Jose A. Lopes
178 c890f66a Jose A. Lopes
noded :: String
179 c890f66a Jose A. Lopes
noded = Runtime.daemonName GanetiNoded
180 85c48fbb Jose A. Lopes
181 c890f66a Jose A. Lopes
luxid :: String
182 c890f66a Jose A. Lopes
luxid = Runtime.daemonName GanetiLuxid
183 85c48fbb Jose A. Lopes
184 c890f66a Jose A. Lopes
rapi :: String
185 c890f66a Jose A. Lopes
rapi = Runtime.daemonName GanetiRapi
186 85c48fbb Jose A. Lopes
187 c890f66a Jose A. Lopes
daemons :: FrozenSet String
188 c890f66a Jose A. Lopes
daemons =
189 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [confd,
190 c890f66a Jose A. Lopes
                       luxid,
191 c890f66a Jose A. Lopes
                       masterd,
192 c890f66a Jose A. Lopes
                       mond,
193 c890f66a Jose A. Lopes
                       noded,
194 c890f66a Jose A. Lopes
                       rapi]
195 85c48fbb Jose A. Lopes
196 c890f66a Jose A. Lopes
defaultConfdPort :: Int
197 c890f66a Jose A. Lopes
defaultConfdPort = 1814
198 85c48fbb Jose A. Lopes
199 c890f66a Jose A. Lopes
defaultMondPort :: Int
200 c890f66a Jose A. Lopes
defaultMondPort = 1815
201 85c48fbb Jose A. Lopes
202 c890f66a Jose A. Lopes
defaultNodedPort :: Int
203 c890f66a Jose A. Lopes
defaultNodedPort = 1811
204 85c48fbb Jose A. Lopes
205 c890f66a Jose A. Lopes
defaultRapiPort :: Int
206 c890f66a Jose A. Lopes
defaultRapiPort = 5080
207 85c48fbb Jose A. Lopes
208 c890f66a Jose A. Lopes
daemonsPorts :: Map String (Protocol, Int)
209 c890f66a Jose A. Lopes
daemonsPorts =
210 c890f66a Jose A. Lopes
  Map.fromList [(confd, (Udp, defaultConfdPort)),
211 c890f66a Jose A. Lopes
                (mond, (Tcp, defaultMondPort)),
212 c890f66a Jose A. Lopes
                (noded, (Tcp, defaultNodedPort)),
213 c890f66a Jose A. Lopes
                (rapi, (Tcp, defaultRapiPort)),
214 c890f66a Jose A. Lopes
                (ssh, (Tcp, 22))]
215 85c48fbb Jose A. Lopes
216 c890f66a Jose A. Lopes
daemonsLogbase :: Map String String
217 c890f66a Jose A. Lopes
daemonsLogbase =
218 c890f66a Jose A. Lopes
  Map.fromList
219 c890f66a Jose A. Lopes
  [ (Runtime.daemonName d, Runtime.daemonLogBase d) | d <- [minBound..] ]
220 85c48fbb Jose A. Lopes
221 c890f66a Jose A. Lopes
extraLogreasonAccess :: String
222 c890f66a Jose A. Lopes
extraLogreasonAccess = Runtime.daemonsExtraLogbase GanetiMond AccessLog
223 85c48fbb Jose A. Lopes
224 c890f66a Jose A. Lopes
extraLogreasonError :: String
225 c890f66a Jose A. Lopes
extraLogreasonError = Runtime.daemonsExtraLogbase GanetiMond ErrorLog
226 85c48fbb Jose A. Lopes
227 c890f66a Jose A. Lopes
devConsole :: String
228 c890f66a Jose A. Lopes
devConsole = ConstantUtils.devConsole
229 85c48fbb Jose A. Lopes
230 c890f66a Jose A. Lopes
-- * Syslog
231 85c48fbb Jose A. Lopes
232 c890f66a Jose A. Lopes
syslogUsage :: String
233 c890f66a Jose A. Lopes
syslogUsage = AutoConf.syslogUsage
234 85c48fbb Jose A. Lopes
235 c890f66a Jose A. Lopes
syslogNo :: String
236 c890f66a Jose A. Lopes
syslogNo = Logging.syslogUsageToRaw SyslogNo
237 85c48fbb Jose A. Lopes
238 c890f66a Jose A. Lopes
syslogYes :: String
239 c890f66a Jose A. Lopes
syslogYes = Logging.syslogUsageToRaw SyslogYes
240 85c48fbb Jose A. Lopes
241 c890f66a Jose A. Lopes
syslogOnly :: String
242 c890f66a Jose A. Lopes
syslogOnly = Logging.syslogUsageToRaw SyslogOnly
243 85c48fbb Jose A. Lopes
244 c890f66a Jose A. Lopes
syslogSocket :: String
245 c890f66a Jose A. Lopes
syslogSocket = "/dev/log"
246 85c48fbb Jose A. Lopes
247 c890f66a Jose A. Lopes
-- * Xen
248 85c48fbb Jose A. Lopes
249 c890f66a Jose A. Lopes
xenBootloader :: String
250 c890f66a Jose A. Lopes
xenBootloader = AutoConf.xenBootloader
251 85c48fbb Jose A. Lopes
252 c890f66a Jose A. Lopes
xenCmdXl :: String
253 c890f66a Jose A. Lopes
xenCmdXl = "xl"
254 85c48fbb Jose A. Lopes
255 c890f66a Jose A. Lopes
xenCmdXm :: String
256 c890f66a Jose A. Lopes
xenCmdXm = "xm"
257 85c48fbb Jose A. Lopes
258 c890f66a Jose A. Lopes
xenInitrd :: String
259 c890f66a Jose A. Lopes
xenInitrd = AutoConf.xenInitrd
260 85c48fbb Jose A. Lopes
261 c890f66a Jose A. Lopes
xenKernel :: String
262 c890f66a Jose A. Lopes
xenKernel = AutoConf.xenKernel
263 85c48fbb Jose A. Lopes
264 c890f66a Jose A. Lopes
-- FIXME: perhaps rename to 'validXenCommands' for consistency with
265 c890f66a Jose A. Lopes
-- other constants
266 c890f66a Jose A. Lopes
knownXenCommands :: FrozenSet String
267 c890f66a Jose A. Lopes
knownXenCommands = ConstantUtils.mkSet [xenCmdXl, xenCmdXm]
268 85c48fbb Jose A. Lopes
269 3b170ad4 Jose A. Lopes
-- * KVM and socat
270 3b170ad4 Jose A. Lopes
271 3b170ad4 Jose A. Lopes
kvmPath :: String
272 3b170ad4 Jose A. Lopes
kvmPath = AutoConf.kvmPath
273 3b170ad4 Jose A. Lopes
274 3b170ad4 Jose A. Lopes
kvmKernel :: String
275 3b170ad4 Jose A. Lopes
kvmKernel = AutoConf.kvmKernel
276 3b170ad4 Jose A. Lopes
277 3b170ad4 Jose A. Lopes
socatEscapeCode :: String
278 3b170ad4 Jose A. Lopes
socatEscapeCode = "0x1d"
279 3b170ad4 Jose A. Lopes
280 3b170ad4 Jose A. Lopes
socatPath :: String
281 3b170ad4 Jose A. Lopes
socatPath = AutoConf.socatPath
282 3b170ad4 Jose A. Lopes
283 3b170ad4 Jose A. Lopes
socatUseCompress :: Bool
284 3b170ad4 Jose A. Lopes
socatUseCompress = AutoConf.socatUseCompress
285 3b170ad4 Jose A. Lopes
286 3b170ad4 Jose A. Lopes
socatUseEscape :: Bool
287 3b170ad4 Jose A. Lopes
socatUseEscape = AutoConf.socatUseEscape
288 3b170ad4 Jose A. Lopes
289 c890f66a Jose A. Lopes
-- * Storage types
290 85c48fbb Jose A. Lopes
291 c890f66a Jose A. Lopes
stBlock :: String
292 c890f66a Jose A. Lopes
stBlock = Types.storageTypeToRaw StorageBlock
293 85c48fbb Jose A. Lopes
294 c890f66a Jose A. Lopes
stDiskless :: String
295 c890f66a Jose A. Lopes
stDiskless = Types.storageTypeToRaw StorageDiskless
296 85c48fbb Jose A. Lopes
297 c890f66a Jose A. Lopes
stExt :: String
298 c890f66a Jose A. Lopes
stExt = Types.storageTypeToRaw StorageExt
299 85c48fbb Jose A. Lopes
300 c890f66a Jose A. Lopes
stFile :: String
301 c890f66a Jose A. Lopes
stFile = Types.storageTypeToRaw StorageFile
302 85c48fbb Jose A. Lopes
303 c890f66a Jose A. Lopes
stLvmPv :: String
304 c890f66a Jose A. Lopes
stLvmPv = Types.storageTypeToRaw StorageLvmPv
305 85c48fbb Jose A. Lopes
306 c890f66a Jose A. Lopes
stLvmVg :: String
307 c890f66a Jose A. Lopes
stLvmVg = Types.storageTypeToRaw StorageLvmVg
308 85c48fbb Jose A. Lopes
309 c890f66a Jose A. Lopes
stRados :: String
310 c890f66a Jose A. Lopes
stRados = Types.storageTypeToRaw StorageRados
311 85c48fbb Jose A. Lopes
312 c890f66a Jose A. Lopes
storageTypes :: FrozenSet String
313 c890f66a Jose A. Lopes
storageTypes = ConstantUtils.mkSet $ map Types.storageTypeToRaw [minBound..]
314 85c48fbb Jose A. Lopes
315 c890f66a Jose A. Lopes
-- * Storage fields
316 c890f66a Jose A. Lopes
-- ** First two are valid in LU context only, not passed to backend
317 85c48fbb Jose A. Lopes
318 c890f66a Jose A. Lopes
sfNode :: String
319 c890f66a Jose A. Lopes
sfNode = "node"
320 85c48fbb Jose A. Lopes
321 c890f66a Jose A. Lopes
sfType :: String
322 c890f66a Jose A. Lopes
sfType = "type"
323 85c48fbb Jose A. Lopes
324 c890f66a Jose A. Lopes
-- ** and the rest are valid in backend
325 85c48fbb Jose A. Lopes
326 c890f66a Jose A. Lopes
sfAllocatable :: String
327 c890f66a Jose A. Lopes
sfAllocatable = Types.storageFieldToRaw SFAllocatable
328 85c48fbb Jose A. Lopes
329 c890f66a Jose A. Lopes
sfFree :: String
330 c890f66a Jose A. Lopes
sfFree = Types.storageFieldToRaw SFFree
331 85c48fbb Jose A. Lopes
332 c890f66a Jose A. Lopes
sfName :: String
333 c890f66a Jose A. Lopes
sfName = Types.storageFieldToRaw SFName
334 85c48fbb Jose A. Lopes
335 c890f66a Jose A. Lopes
sfSize :: String
336 c890f66a Jose A. Lopes
sfSize = Types.storageFieldToRaw SFSize
337 85c48fbb Jose A. Lopes
338 c890f66a Jose A. Lopes
sfUsed :: String
339 c890f66a Jose A. Lopes
sfUsed = Types.storageFieldToRaw SFUsed
340 85c48fbb Jose A. Lopes
341 c890f66a Jose A. Lopes
-- * Disk template types
342 85c48fbb Jose A. Lopes
343 c890f66a Jose A. Lopes
dtDiskless :: String
344 c890f66a Jose A. Lopes
dtDiskless = Types.diskTemplateToRaw DTDiskless
345 85c48fbb Jose A. Lopes
346 c890f66a Jose A. Lopes
dtFile :: String
347 c890f66a Jose A. Lopes
dtFile = Types.diskTemplateToRaw DTFile
348 85c48fbb Jose A. Lopes
349 c890f66a Jose A. Lopes
dtSharedFile :: String
350 c890f66a Jose A. Lopes
dtSharedFile = Types.diskTemplateToRaw DTSharedFile
351 85c48fbb Jose A. Lopes
352 c890f66a Jose A. Lopes
dtPlain :: String
353 c890f66a Jose A. Lopes
dtPlain = Types.diskTemplateToRaw DTPlain
354 85c48fbb Jose A. Lopes
355 c890f66a Jose A. Lopes
dtBlock :: String
356 c890f66a Jose A. Lopes
dtBlock = Types.diskTemplateToRaw DTBlock
357 85c48fbb Jose A. Lopes
358 c890f66a Jose A. Lopes
dtDrbd8 :: String
359 c890f66a Jose A. Lopes
dtDrbd8 = Types.diskTemplateToRaw DTDrbd8
360 85c48fbb Jose A. Lopes
361 c890f66a Jose A. Lopes
dtRbd :: String
362 c890f66a Jose A. Lopes
dtRbd = Types.diskTemplateToRaw DTRbd
363 85c48fbb Jose A. Lopes
364 c890f66a Jose A. Lopes
dtExt :: String
365 c890f66a Jose A. Lopes
dtExt = Types.diskTemplateToRaw DTExt
366 85c48fbb Jose A. Lopes
367 c890f66a Jose A. Lopes
-- | This is used to order determine the default disk template when
368 c890f66a Jose A. Lopes
-- the list of enabled disk templates is inferred from the current
369 c890f66a Jose A. Lopes
-- state of the cluster.  This only happens on an upgrade from a
370 c890f66a Jose A. Lopes
-- version of Ganeti that did not support the 'enabled_disk_templates'
371 c890f66a Jose A. Lopes
-- so far.
372 c890f66a Jose A. Lopes
diskTemplatePreference :: [String]
373 c890f66a Jose A. Lopes
diskTemplatePreference =
374 c890f66a Jose A. Lopes
  map Types.diskTemplateToRaw
375 c890f66a Jose A. Lopes
  [DTBlock, DTDiskless, DTDrbd8, DTExt, DTFile, DTPlain, DTRbd, DTSharedFile]
376 85c48fbb Jose A. Lopes
377 c890f66a Jose A. Lopes
diskTemplates :: FrozenSet String
378 c890f66a Jose A. Lopes
diskTemplates = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [minBound..]
379 85c48fbb Jose A. Lopes
380 c890f66a Jose A. Lopes
-- | Disk templates that are enabled by default
381 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates :: [String]
382 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
383 85c48fbb Jose A. Lopes
384 c890f66a Jose A. Lopes
-- * File backend driver
385 85c48fbb Jose A. Lopes
386 c890f66a Jose A. Lopes
fdBlktap :: String
387 c890f66a Jose A. Lopes
fdBlktap = Types.fileDriverToRaw FileBlktap
388 85c48fbb Jose A. Lopes
389 c890f66a Jose A. Lopes
fdLoop :: String
390 c890f66a Jose A. Lopes
fdLoop = Types.fileDriverToRaw FileLoop
391 85c48fbb Jose A. Lopes
392 c890f66a Jose A. Lopes
-- * Disk access mode
393 85c48fbb Jose A. Lopes
394 c890f66a Jose A. Lopes
diskRdonly :: String
395 c890f66a Jose A. Lopes
diskRdonly = Types.diskModeToRaw DiskRdOnly
396 85c48fbb Jose A. Lopes
397 c890f66a Jose A. Lopes
diskRdwr :: String
398 c890f66a Jose A. Lopes
diskRdwr = Types.diskModeToRaw DiskRdWr
399 85c48fbb Jose A. Lopes
400 c890f66a Jose A. Lopes
diskAccessSet :: FrozenSet String
401 c890f66a Jose A. Lopes
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
402 85c48fbb Jose A. Lopes
403 c890f66a Jose A. Lopes
-- * Instance export mode
404 85c48fbb Jose A. Lopes
405 c890f66a Jose A. Lopes
exportModeLocal :: String
406 c890f66a Jose A. Lopes
exportModeLocal = Types.exportModeToRaw ExportModeLocal
407 85c48fbb Jose A. Lopes
408 c890f66a Jose A. Lopes
exportModeRemote :: String
409 c890f66a Jose A. Lopes
exportModeRemote = Types.exportModeToRaw ExportModeRemote
410 85c48fbb Jose A. Lopes
411 c890f66a Jose A. Lopes
exportModes :: FrozenSet String
412 c890f66a Jose A. Lopes
exportModes = ConstantUtils.mkSet $ map Types.exportModeToRaw [minBound..]
413 85c48fbb Jose A. Lopes
414 c890f66a Jose A. Lopes
-- * Instance creation modes
415 85c48fbb Jose A. Lopes
416 c890f66a Jose A. Lopes
instanceCreate :: String
417 c890f66a Jose A. Lopes
instanceCreate = Types.instCreateModeToRaw InstCreate
418 85c48fbb Jose A. Lopes
419 c890f66a Jose A. Lopes
instanceImport :: String
420 c890f66a Jose A. Lopes
instanceImport = Types.instCreateModeToRaw InstImport
421 85c48fbb Jose A. Lopes
422 c890f66a Jose A. Lopes
instanceRemoteImport :: String
423 c890f66a Jose A. Lopes
instanceRemoteImport = Types.instCreateModeToRaw InstRemoteImport
424 85c48fbb Jose A. Lopes
425 c890f66a Jose A. Lopes
instanceCreateModes :: FrozenSet String
426 c890f66a Jose A. Lopes
instanceCreateModes =
427 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.instCreateModeToRaw [minBound..]
428 9413ef24 Jose A. Lopes
429 c890f66a Jose A. Lopes
-- * Dynamic device modification
430 9413ef24 Jose A. Lopes
431 c890f66a Jose A. Lopes
ddmAdd :: String
432 c890f66a Jose A. Lopes
ddmAdd = Types.ddmFullToRaw DdmFullAdd
433 1b2adaa6 Jose A. Lopes
434 c890f66a Jose A. Lopes
ddmModify :: String
435 c890f66a Jose A. Lopes
ddmModify = Types.ddmFullToRaw DdmFullModify
436 1b2adaa6 Jose A. Lopes
437 c890f66a Jose A. Lopes
ddmRemove :: String
438 c890f66a Jose A. Lopes
ddmRemove = Types.ddmFullToRaw DdmFullRemove
439 9413ef24 Jose A. Lopes
440 c890f66a Jose A. Lopes
ddmsValues :: FrozenSet String
441 c890f66a Jose A. Lopes
ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
442 5867e439 Jose A. Lopes
443 c890f66a Jose A. Lopes
ddmsValuesWithModify :: FrozenSet String
444 c890f66a Jose A. Lopes
ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
445 5867e439 Jose A. Lopes
446 c890f66a Jose A. Lopes
-- * Common exit codes
447 5867e439 Jose A. Lopes
448 c890f66a Jose A. Lopes
exitSuccess :: Int
449 c890f66a Jose A. Lopes
exitSuccess = 0
450 5867e439 Jose A. Lopes
451 c890f66a Jose A. Lopes
exitFailure :: Int
452 c890f66a Jose A. Lopes
exitFailure = ConstantUtils.exitFailure
453 5867e439 Jose A. Lopes
454 c890f66a Jose A. Lopes
exitNotcluster :: Int
455 c890f66a Jose A. Lopes
exitNotcluster = 5
456 5867e439 Jose A. Lopes
457 c890f66a Jose A. Lopes
exitNotmaster :: Int
458 c890f66a Jose A. Lopes
exitNotmaster = 11
459 5867e439 Jose A. Lopes
460 c890f66a Jose A. Lopes
exitNodesetupError :: Int
461 c890f66a Jose A. Lopes
exitNodesetupError = 12
462 26eca119 Jose A. Lopes
463 c890f66a Jose A. Lopes
-- | Need user confirmation
464 c890f66a Jose A. Lopes
exitConfirmation :: Int
465 c890f66a Jose A. Lopes
exitConfirmation = 13
466 85c48fbb Jose A. Lopes
467 c890f66a Jose A. Lopes
-- | Exit code for query operations with unknown fields
468 c890f66a Jose A. Lopes
exitUnknownField :: Int
469 c890f66a Jose A. Lopes
exitUnknownField = 14
470 85c48fbb Jose A. Lopes
471 c890f66a Jose A. Lopes
-- * Tags
472 85c48fbb Jose A. Lopes
473 c890f66a Jose A. Lopes
tagCluster :: String
474 c890f66a Jose A. Lopes
tagCluster = Types.tagKindToRaw TagKindCluster
475 85c48fbb Jose A. Lopes
476 c890f66a Jose A. Lopes
tagInstance :: String
477 c890f66a Jose A. Lopes
tagInstance = Types.tagKindToRaw TagKindInstance
478 85c48fbb Jose A. Lopes
479 c890f66a Jose A. Lopes
tagNetwork :: String
480 c890f66a Jose A. Lopes
tagNetwork = Types.tagKindToRaw TagKindNetwork
481 85c48fbb Jose A. Lopes
482 c890f66a Jose A. Lopes
tagNode :: String
483 c890f66a Jose A. Lopes
tagNode = Types.tagKindToRaw TagKindNode
484 85c48fbb Jose A. Lopes
485 c890f66a Jose A. Lopes
tagNodegroup :: String
486 c890f66a Jose A. Lopes
tagNodegroup = Types.tagKindToRaw TagKindGroup
487 85c48fbb Jose A. Lopes
488 c890f66a Jose A. Lopes
validTagTypes :: FrozenSet String
489 c890f66a Jose A. Lopes
validTagTypes = ConstantUtils.mkSet $ map Types.tagKindToRaw [minBound..]
490 85c48fbb Jose A. Lopes
491 c890f66a Jose A. Lopes
maxTagLen :: Int
492 c890f66a Jose A. Lopes
maxTagLen = 128
493 85c48fbb Jose A. Lopes
494 c890f66a Jose A. Lopes
maxTagsPerObj :: Int
495 c890f66a Jose A. Lopes
maxTagsPerObj = 4096
496 85c48fbb Jose A. Lopes
497 61e32567 Jose A. Lopes
-- | Node clock skew in seconds
498 61e32567 Jose A. Lopes
nodeMaxClockSkew :: Int
499 61e32567 Jose A. Lopes
nodeMaxClockSkew = 150
500 61e32567 Jose A. Lopes
501 3b170ad4 Jose A. Lopes
-- | Disk index separator
502 3b170ad4 Jose A. Lopes
diskSeparator :: String
503 3b170ad4 Jose A. Lopes
diskSeparator = AutoConf.diskSeparator
504 3b170ad4 Jose A. Lopes
505 3b170ad4 Jose A. Lopes
ipCommandPath :: String
506 3b170ad4 Jose A. Lopes
ipCommandPath = AutoConf.ipPath
507 3b170ad4 Jose A. Lopes
508 c890f66a Jose A. Lopes
-- * Reboot types
509 85c48fbb Jose A. Lopes
510 c890f66a Jose A. Lopes
instanceRebootSoft :: String
511 c890f66a Jose A. Lopes
instanceRebootSoft = Types.rebootTypeToRaw RebootSoft
512 85c48fbb Jose A. Lopes
513 c890f66a Jose A. Lopes
instanceRebootHard :: String
514 c890f66a Jose A. Lopes
instanceRebootHard = Types.rebootTypeToRaw RebootHard
515 85c48fbb Jose A. Lopes
516 c890f66a Jose A. Lopes
instanceRebootFull :: String
517 c890f66a Jose A. Lopes
instanceRebootFull = Types.rebootTypeToRaw RebootFull
518 85c48fbb Jose A. Lopes
519 c890f66a Jose A. Lopes
rebootTypes :: FrozenSet String
520 c890f66a Jose A. Lopes
rebootTypes = ConstantUtils.mkSet $ map Types.rebootTypeToRaw [minBound..]
521 85c48fbb Jose A. Lopes
522 c890f66a Jose A. Lopes
-- * VTypes
523 85c48fbb Jose A. Lopes
524 c890f66a Jose A. Lopes
vtypeBool :: String
525 c890f66a Jose A. Lopes
vtypeBool = Types.vTypeToRaw VTypeBool
526 85c48fbb Jose A. Lopes
527 c890f66a Jose A. Lopes
vtypeInt :: String
528 c890f66a Jose A. Lopes
vtypeInt = Types.vTypeToRaw VTypeInt
529 85c48fbb Jose A. Lopes
530 c890f66a Jose A. Lopes
vtypeMaybeString :: String
531 c890f66a Jose A. Lopes
vtypeMaybeString = Types.vTypeToRaw VTypeMaybeString
532 85c48fbb Jose A. Lopes
533 c890f66a Jose A. Lopes
-- | Size in MiBs
534 c890f66a Jose A. Lopes
vtypeSize :: String
535 c890f66a Jose A. Lopes
vtypeSize = Types.vTypeToRaw VTypeSize
536 85c48fbb Jose A. Lopes
537 c890f66a Jose A. Lopes
vtypeString :: String
538 c890f66a Jose A. Lopes
vtypeString = Types.vTypeToRaw VTypeString
539 85c48fbb Jose A. Lopes
540 c890f66a Jose A. Lopes
enforceableTypes :: FrozenSet String
541 c890f66a Jose A. Lopes
enforceableTypes = ConstantUtils.mkSet $ map Types.vTypeToRaw [minBound..]
542 85c48fbb Jose A. Lopes
543 c890f66a Jose A. Lopes
-- * OOB supported commands
544 85c48fbb Jose A. Lopes
545 c890f66a Jose A. Lopes
oobPowerOn :: String
546 c890f66a Jose A. Lopes
oobPowerOn = Types.oobCommandToRaw OobPowerOn
547 85c48fbb Jose A. Lopes
548 c890f66a Jose A. Lopes
oobPowerOff :: String
549 c890f66a Jose A. Lopes
oobPowerOff = Types.oobCommandToRaw OobPowerOff
550 85c48fbb Jose A. Lopes
551 c890f66a Jose A. Lopes
oobPowerCycle :: String
552 c890f66a Jose A. Lopes
oobPowerCycle = Types.oobCommandToRaw OobPowerCycle
553 85c48fbb Jose A. Lopes
554 c890f66a Jose A. Lopes
oobPowerStatus :: String
555 c890f66a Jose A. Lopes
oobPowerStatus = Types.oobCommandToRaw OobPowerStatus
556 85c48fbb Jose A. Lopes
557 c890f66a Jose A. Lopes
oobHealth :: String
558 c890f66a Jose A. Lopes
oobHealth = Types.oobCommandToRaw OobHealth
559 85c48fbb Jose A. Lopes
560 c890f66a Jose A. Lopes
oobCommands :: FrozenSet String
561 c890f66a Jose A. Lopes
oobCommands = ConstantUtils.mkSet $ map Types.oobCommandToRaw [minBound..]
562 85c48fbb Jose A. Lopes
563 c890f66a Jose A. Lopes
oobPowerStatusPowered :: String
564 c890f66a Jose A. Lopes
oobPowerStatusPowered = "powered"
565 85c48fbb Jose A. Lopes
566 c890f66a Jose A. Lopes
-- | 60 seconds
567 c890f66a Jose A. Lopes
oobTimeout :: Int
568 c890f66a Jose A. Lopes
oobTimeout = 60
569 85c48fbb Jose A. Lopes
570 c890f66a Jose A. Lopes
-- | 2 seconds
571 c890f66a Jose A. Lopes
oobPowerDelay :: Double
572 c890f66a Jose A. Lopes
oobPowerDelay = 2.0
573 85c48fbb Jose A. Lopes
574 c890f66a Jose A. Lopes
oobStatusCritical :: String
575 c890f66a Jose A. Lopes
oobStatusCritical = Types.oobStatusToRaw OobStatusCritical
576 85c48fbb Jose A. Lopes
577 c890f66a Jose A. Lopes
oobStatusOk :: String
578 c890f66a Jose A. Lopes
oobStatusOk = Types.oobStatusToRaw OobStatusOk
579 85c48fbb Jose A. Lopes
580 c890f66a Jose A. Lopes
oobStatusUnknown :: String
581 c890f66a Jose A. Lopes
oobStatusUnknown = Types.oobStatusToRaw OobStatusUnknown
582 85c48fbb Jose A. Lopes
583 c890f66a Jose A. Lopes
oobStatusWarning :: String
584 c890f66a Jose A. Lopes
oobStatusWarning = Types.oobStatusToRaw OobStatusWarning
585 85c48fbb Jose A. Lopes
586 c890f66a Jose A. Lopes
oobStatuses :: FrozenSet String
587 c890f66a Jose A. Lopes
oobStatuses = ConstantUtils.mkSet $ map Types.oobStatusToRaw [minBound..]
588 85c48fbb Jose A. Lopes
589 c890f66a Jose A. Lopes
-- * NIC_* constants are used inside the ganeti config
590 85c48fbb Jose A. Lopes
591 c890f66a Jose A. Lopes
nicLink :: String
592 c890f66a Jose A. Lopes
nicLink = "link"
593 85c48fbb Jose A. Lopes
594 c890f66a Jose A. Lopes
nicMode :: String
595 c890f66a Jose A. Lopes
nicMode = "mode"
596 85c48fbb Jose A. Lopes
597 c890f66a Jose A. Lopes
nicVlan :: String
598 c890f66a Jose A. Lopes
nicVlan = "vlan"
599 85c48fbb Jose A. Lopes
600 c890f66a Jose A. Lopes
nicModeBridged :: String
601 c890f66a Jose A. Lopes
nicModeBridged = Types.nICModeToRaw NMBridged
602 85c48fbb Jose A. Lopes
603 c890f66a Jose A. Lopes
nicModeRouted :: String
604 c890f66a Jose A. Lopes
nicModeRouted = Types.nICModeToRaw NMRouted
605 85c48fbb Jose A. Lopes
606 c890f66a Jose A. Lopes
nicModeOvs :: String
607 c890f66a Jose A. Lopes
nicModeOvs = Types.nICModeToRaw NMOvs
608 85c48fbb Jose A. Lopes
609 c890f66a Jose A. Lopes
nicIpPool :: String
610 c890f66a Jose A. Lopes
nicIpPool = Types.nICModeToRaw NMPool
611 85c48fbb Jose A. Lopes
612 c890f66a Jose A. Lopes
nicValidModes :: FrozenSet String
613 c890f66a Jose A. Lopes
nicValidModes = ConstantUtils.mkSet $ map Types.nICModeToRaw [minBound..]
614 85c48fbb Jose A. Lopes
615 c890f66a Jose A. Lopes
-- * Hypervisor constants
616 85c48fbb Jose A. Lopes
617 c890f66a Jose A. Lopes
htXenPvm :: String
618 c890f66a Jose A. Lopes
htXenPvm = Types.hypervisorToRaw XenPvm
619 85c48fbb Jose A. Lopes
620 c890f66a Jose A. Lopes
htFake :: String
621 c890f66a Jose A. Lopes
htFake = Types.hypervisorToRaw Fake
622 85c48fbb Jose A. Lopes
623 c890f66a Jose A. Lopes
htXenHvm :: String
624 c890f66a Jose A. Lopes
htXenHvm = Types.hypervisorToRaw XenHvm
625 85c48fbb Jose A. Lopes
626 c890f66a Jose A. Lopes
htKvm :: String
627 c890f66a Jose A. Lopes
htKvm = Types.hypervisorToRaw Kvm
628 85c48fbb Jose A. Lopes
629 c890f66a Jose A. Lopes
htChroot :: String
630 c890f66a Jose A. Lopes
htChroot = Types.hypervisorToRaw Chroot
631 85c48fbb Jose A. Lopes
632 c890f66a Jose A. Lopes
htLxc :: String
633 c890f66a Jose A. Lopes
htLxc = Types.hypervisorToRaw Lxc
634 85c48fbb Jose A. Lopes
635 c890f66a Jose A. Lopes
hyperTypes :: FrozenSet String
636 c890f66a Jose A. Lopes
hyperTypes = ConstantUtils.mkSet $ map Types.hypervisorToRaw [minBound..]
637 85c48fbb Jose A. Lopes
638 c890f66a Jose A. Lopes
htsReqPort :: FrozenSet String
639 c890f66a Jose A. Lopes
htsReqPort = ConstantUtils.mkSet [htXenHvm, htKvm]
640 85c48fbb Jose A. Lopes
641 c890f66a Jose A. Lopes
-- * Migration type
642 26eca119 Jose A. Lopes
643 c890f66a Jose A. Lopes
htMigrationLive :: String
644 c890f66a Jose A. Lopes
htMigrationLive = Types.migrationModeToRaw MigrationLive
645 26eca119 Jose A. Lopes
646 c890f66a Jose A. Lopes
htMigrationNonlive :: String
647 c890f66a Jose A. Lopes
htMigrationNonlive = Types.migrationModeToRaw MigrationNonLive
648 26eca119 Jose A. Lopes
649 c890f66a Jose A. Lopes
htMigrationModes :: FrozenSet String
650 c890f66a Jose A. Lopes
htMigrationModes =
651 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.migrationModeToRaw [minBound..]
652 26eca119 Jose A. Lopes
653 c890f66a Jose A. Lopes
-- * Cluster verify steps
654 26eca119 Jose A. Lopes
655 c890f66a Jose A. Lopes
verifyNplusoneMem :: String
656 c890f66a Jose A. Lopes
verifyNplusoneMem = Types.verifyOptionalChecksToRaw VerifyNPlusOneMem
657 26eca119 Jose A. Lopes
658 c890f66a Jose A. Lopes
verifyOptionalChecks :: FrozenSet String
659 c890f66a Jose A. Lopes
verifyOptionalChecks =
660 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.verifyOptionalChecksToRaw [minBound..]
661 26eca119 Jose A. Lopes
662 c890f66a Jose A. Lopes
-- * Cluster Verify error classes
663 26eca119 Jose A. Lopes
664 c890f66a Jose A. Lopes
cvTcluster :: String
665 c890f66a Jose A. Lopes
cvTcluster = "cluster"
666 26eca119 Jose A. Lopes
667 c890f66a Jose A. Lopes
cvTgroup :: String
668 c890f66a Jose A. Lopes
cvTgroup = "group"
669 26eca119 Jose A. Lopes
670 c890f66a Jose A. Lopes
cvTnode :: String
671 c890f66a Jose A. Lopes
cvTnode = "node"
672 26eca119 Jose A. Lopes
673 c890f66a Jose A. Lopes
cvTinstance :: String
674 c890f66a Jose A. Lopes
cvTinstance = "instance"
675 26eca119 Jose A. Lopes
676 c890f66a Jose A. Lopes
-- * Cluster Verify error codes and documentation
677 26eca119 Jose A. Lopes
678 c890f66a Jose A. Lopes
cvEclustercert :: (String, String, String)
679 c890f66a Jose A. Lopes
cvEclustercert =
680 c890f66a Jose A. Lopes
  ("cluster",
681 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCERT,
682 c890f66a Jose A. Lopes
   "Cluster certificate files verification failure")
683 26eca119 Jose A. Lopes
684 c890f66a Jose A. Lopes
cvEclustercfg :: (String, String, String)
685 c890f66a Jose A. Lopes
cvEclustercfg =
686 c890f66a Jose A. Lopes
  ("cluster",
687 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCFG,
688 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
689 26eca119 Jose A. Lopes
690 c890f66a Jose A. Lopes
cvEclusterdanglinginst :: (String, String, String)
691 c890f66a Jose A. Lopes
cvEclusterdanglinginst =
692 c890f66a Jose A. Lopes
  ("node",
693 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGINST,
694 c890f66a Jose A. Lopes
   "Some instances have a non-existing primary node")
695 26eca119 Jose A. Lopes
696 c890f66a Jose A. Lopes
cvEclusterdanglingnodes :: (String, String, String)
697 c890f66a Jose A. Lopes
cvEclusterdanglingnodes =
698 c890f66a Jose A. Lopes
  ("node",
699 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGNODES,
700 c890f66a Jose A. Lopes
   "Some nodes belong to non-existing groups")
701 f361a6ee Jose A. Lopes
702 c890f66a Jose A. Lopes
cvEclusterfilecheck :: (String, String, String)
703 c890f66a Jose A. Lopes
cvEclusterfilecheck =
704 c890f66a Jose A. Lopes
  ("cluster",
705 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERFILECHECK,
706 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
707 f361a6ee Jose A. Lopes
708 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize :: (String, String, String)
709 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize =
710 c890f66a Jose A. Lopes
  ("group",
711 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEGROUPDIFFERENTPVSIZE,
712 c890f66a Jose A. Lopes
   "PVs in the group have different sizes")
713 f361a6ee Jose A. Lopes
714 c890f66a Jose A. Lopes
cvEinstancebadnode :: (String, String, String)
715 c890f66a Jose A. Lopes
cvEinstancebadnode =
716 c890f66a Jose A. Lopes
  ("instance",
717 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEBADNODE,
718 c890f66a Jose A. Lopes
   "Instance marked as running lives on an offline node")
719 f361a6ee Jose A. Lopes
720 c890f66a Jose A. Lopes
cvEinstancedown :: (String, String, String)
721 c890f66a Jose A. Lopes
cvEinstancedown =
722 c890f66a Jose A. Lopes
  ("instance",
723 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEDOWN,
724 c890f66a Jose A. Lopes
   "Instance not running on its primary node")
725 f361a6ee Jose A. Lopes
726 c890f66a Jose A. Lopes
cvEinstancefaultydisk :: (String, String, String)
727 c890f66a Jose A. Lopes
cvEinstancefaultydisk =
728 c890f66a Jose A. Lopes
  ("instance",
729 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEFAULTYDISK,
730 c890f66a Jose A. Lopes
   "Impossible to retrieve status for a disk")
731 f361a6ee Jose A. Lopes
732 c890f66a Jose A. Lopes
cvEinstancelayout :: (String, String, String)
733 c890f66a Jose A. Lopes
cvEinstancelayout =
734 c890f66a Jose A. Lopes
  ("instance",
735 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCELAYOUT,
736 c890f66a Jose A. Lopes
   "Instance has multiple secondary nodes")
737 f361a6ee Jose A. Lopes
738 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter :: (String, String, String)
739 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter =
740 c890f66a Jose A. Lopes
  ("instance",
741 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGCFGPARAMETER,
742 c890f66a Jose A. Lopes
   "A configuration parameter for an instance is missing")
743 f361a6ee Jose A. Lopes
744 c890f66a Jose A. Lopes
cvEinstancemissingdisk :: (String, String, String)
745 c890f66a Jose A. Lopes
cvEinstancemissingdisk =
746 c890f66a Jose A. Lopes
  ("instance",
747 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGDISK,
748 c890f66a Jose A. Lopes
   "Missing volume on an instance")
749 f361a6ee Jose A. Lopes
750 c890f66a Jose A. Lopes
cvEinstancepolicy :: (String, String, String)
751 c890f66a Jose A. Lopes
cvEinstancepolicy =
752 c890f66a Jose A. Lopes
  ("instance",
753 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEPOLICY,
754 c890f66a Jose A. Lopes
   "Instance does not meet policy")
755 f361a6ee Jose A. Lopes
756 c890f66a Jose A. Lopes
cvEinstancesplitgroups :: (String, String, String)
757 c890f66a Jose A. Lopes
cvEinstancesplitgroups =
758 c890f66a Jose A. Lopes
  ("instance",
759 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCESPLITGROUPS,
760 c890f66a Jose A. Lopes
   "Instance with primary and secondary nodes in different groups")
761 f361a6ee Jose A. Lopes
762 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode :: (String, String, String)
763 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode =
764 c890f66a Jose A. Lopes
  ("instance",
765 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEUNSUITABLENODE,
766 c890f66a Jose A. Lopes
   "Instance running on nodes that are not suitable for it")
767 f361a6ee Jose A. Lopes
768 c890f66a Jose A. Lopes
cvEinstancewrongnode :: (String, String, String)
769 c890f66a Jose A. Lopes
cvEinstancewrongnode =
770 c890f66a Jose A. Lopes
  ("instance",
771 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEWRONGNODE,
772 c890f66a Jose A. Lopes
   "Instance running on the wrong node")
773 6dc0cb59 Jose A. Lopes
774 c890f66a Jose A. Lopes
cvEnodedrbd :: (String, String, String)
775 c890f66a Jose A. Lopes
cvEnodedrbd =
776 c890f66a Jose A. Lopes
  ("node",
777 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBD,
778 c890f66a Jose A. Lopes
   "Error parsing the DRBD status file")
779 6dc0cb59 Jose A. Lopes
780 c890f66a Jose A. Lopes
cvEnodedrbdhelper :: (String, String, String)
781 c890f66a Jose A. Lopes
cvEnodedrbdhelper =
782 c890f66a Jose A. Lopes
  ("node",
783 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDHELPER,
784 c890f66a Jose A. Lopes
   "Error caused by the DRBD helper")
785 6dc0cb59 Jose A. Lopes
786 c890f66a Jose A. Lopes
cvEnodedrbdversion :: (String, String, String)
787 c890f66a Jose A. Lopes
cvEnodedrbdversion =
788 c890f66a Jose A. Lopes
  ("node",
789 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDVERSION,
790 c890f66a Jose A. Lopes
   "DRBD version mismatch within a node group")
791 6dc0cb59 Jose A. Lopes
792 c890f66a Jose A. Lopes
cvEnodefilecheck :: (String, String, String)
793 c890f66a Jose A. Lopes
cvEnodefilecheck =
794 c890f66a Jose A. Lopes
  ("node",
795 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILECHECK,
796 c890f66a Jose A. Lopes
   "Error retrieving the checksum of the node files")
797 6dc0cb59 Jose A. Lopes
798 c890f66a Jose A. Lopes
cvEnodefilestoragepaths :: (String, String, String)
799 c890f66a Jose A. Lopes
cvEnodefilestoragepaths =
800 c890f66a Jose A. Lopes
  ("node",
801 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHS,
802 c890f66a Jose A. Lopes
   "Detected bad file storage paths")
803 856eb53c Jose A. Lopes
804 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable :: (String, String, String)
805 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable =
806 c890f66a Jose A. Lopes
  ("node",
807 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHUNUSABLE,
808 c890f66a Jose A. Lopes
   "File storage path unusable")
809 1c31b263 Jose A. Lopes
810 c890f66a Jose A. Lopes
cvEnodehooks :: (String, String, String)
811 c890f66a Jose A. Lopes
cvEnodehooks =
812 c890f66a Jose A. Lopes
  ("node",
813 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHOOKS,
814 c890f66a Jose A. Lopes
   "Communication failure in hooks execution")
815 1c31b263 Jose A. Lopes
816 c890f66a Jose A. Lopes
cvEnodehv :: (String, String, String)
817 c890f66a Jose A. Lopes
cvEnodehv =
818 c890f66a Jose A. Lopes
  ("node",
819 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHV,
820 c890f66a Jose A. Lopes
   "Hypervisor parameters verification failure")
821 df726590 Jose A. Lopes
822 c890f66a Jose A. Lopes
cvEnodelvm :: (String, String, String)
823 c890f66a Jose A. Lopes
cvEnodelvm =
824 c890f66a Jose A. Lopes
  ("node",
825 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODELVM,
826 c890f66a Jose A. Lopes
   "LVM-related node error")
827 df726590 Jose A. Lopes
828 c890f66a Jose A. Lopes
cvEnoden1 :: (String, String, String)
829 c890f66a Jose A. Lopes
cvEnoden1 =
830 c890f66a Jose A. Lopes
  ("node",
831 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEN1,
832 c890f66a Jose A. Lopes
   "Not enough memory to accommodate instance failovers")
833 df726590 Jose A. Lopes
834 c890f66a Jose A. Lopes
cvEnodenet :: (String, String, String)
835 c890f66a Jose A. Lopes
cvEnodenet =
836 c890f66a Jose A. Lopes
  ("node",
837 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODENET,
838 c890f66a Jose A. Lopes
   "Network-related node error")
839 df726590 Jose A. Lopes
840 c890f66a Jose A. Lopes
cvEnodeoobpath :: (String, String, String)
841 c890f66a Jose A. Lopes
cvEnodeoobpath =
842 c890f66a Jose A. Lopes
  ("node",
843 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOOBPATH,
844 c890f66a Jose A. Lopes
   "Invalid Out Of Band path")
845 df726590 Jose A. Lopes
846 c890f66a Jose A. Lopes
cvEnodeorphaninstance :: (String, String, String)
847 c890f66a Jose A. Lopes
cvEnodeorphaninstance =
848 c890f66a Jose A. Lopes
  ("node",
849 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANINSTANCE,
850 c890f66a Jose A. Lopes
   "Unknown intance running on a node")
851 df726590 Jose A. Lopes
852 c890f66a Jose A. Lopes
cvEnodeorphanlv :: (String, String, String)
853 c890f66a Jose A. Lopes
cvEnodeorphanlv =
854 c890f66a Jose A. Lopes
  ("node",
855 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANLV,
856 c890f66a Jose A. Lopes
   "Unknown LVM logical volume")
857 df726590 Jose A. Lopes
858 c890f66a Jose A. Lopes
cvEnodeos :: (String, String, String)
859 c890f66a Jose A. Lopes
cvEnodeos =
860 c890f66a Jose A. Lopes
  ("node",
861 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOS,
862 c890f66a Jose A. Lopes
   "OS-related node error")
863 7236533e Jose A. Lopes
864 c890f66a Jose A. Lopes
cvEnoderpc :: (String, String, String)
865 c890f66a Jose A. Lopes
cvEnoderpc =
866 c890f66a Jose A. Lopes
  ("node",
867 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODERPC,
868 c890f66a Jose A. Lopes
   "Error during connection to the primary node of an instance")
869 7236533e Jose A. Lopes
870 c890f66a Jose A. Lopes
cvEnodesetup :: (String, String, String)
871 c890f66a Jose A. Lopes
cvEnodesetup =
872 c890f66a Jose A. Lopes
  ("node",
873 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESETUP,
874 c890f66a Jose A. Lopes
   "Node setup error")
875 7236533e Jose A. Lopes
876 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable :: (String, String, String)
877 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable =
878 c890f66a Jose A. Lopes
  ("node",
879 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESHAREDFILESTORAGEPATHUNUSABLE,
880 c890f66a Jose A. Lopes
   "Shared file storage path unusable")
881 7236533e Jose A. Lopes
882 c890f66a Jose A. Lopes
cvEnodessh :: (String, String, String)
883 c890f66a Jose A. Lopes
cvEnodessh =
884 c890f66a Jose A. Lopes
  ("node",
885 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESSH,
886 c890f66a Jose A. Lopes
   "SSH-related node error")
887 7236533e Jose A. Lopes
888 c890f66a Jose A. Lopes
cvEnodetime :: (String, String, String)
889 c890f66a Jose A. Lopes
cvEnodetime =
890 c890f66a Jose A. Lopes
  ("node",
891 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODETIME,
892 c890f66a Jose A. Lopes
   "Node returned invalid time")
893 7236533e Jose A. Lopes
894 c890f66a Jose A. Lopes
cvEnodeuserscripts :: (String, String, String)
895 c890f66a Jose A. Lopes
cvEnodeuserscripts =
896 c890f66a Jose A. Lopes
  ("node",
897 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEUSERSCRIPTS,
898 c890f66a Jose A. Lopes
   "User scripts not present or not executable")
899 7236533e Jose A. Lopes
900 c890f66a Jose A. Lopes
cvEnodeversion :: (String, String, String)
901 c890f66a Jose A. Lopes
cvEnodeversion =
902 c890f66a Jose A. Lopes
  ("node",
903 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEVERSION,
904 c890f66a Jose A. Lopes
   "Protocol version mismatch or Ganeti version mismatch")
905 85c48fbb Jose A. Lopes
906 c890f66a Jose A. Lopes
cvAllEcodes :: FrozenSet (String, String, String)
907 c890f66a Jose A. Lopes
cvAllEcodes =
908 c890f66a Jose A. Lopes
  ConstantUtils.mkSet
909 c890f66a Jose A. Lopes
  [cvEclustercert,
910 c890f66a Jose A. Lopes
   cvEclustercfg,
911 c890f66a Jose A. Lopes
   cvEclusterdanglinginst,
912 c890f66a Jose A. Lopes
   cvEclusterdanglingnodes,
913 c890f66a Jose A. Lopes
   cvEclusterfilecheck,
914 c890f66a Jose A. Lopes
   cvEgroupdifferentpvsize,
915 c890f66a Jose A. Lopes
   cvEinstancebadnode,
916 c890f66a Jose A. Lopes
   cvEinstancedown,
917 c890f66a Jose A. Lopes
   cvEinstancefaultydisk,
918 c890f66a Jose A. Lopes
   cvEinstancelayout,
919 c890f66a Jose A. Lopes
   cvEinstancemissingcfgparameter,
920 c890f66a Jose A. Lopes
   cvEinstancemissingdisk,
921 c890f66a Jose A. Lopes
   cvEinstancepolicy,
922 c890f66a Jose A. Lopes
   cvEinstancesplitgroups,
923 c890f66a Jose A. Lopes
   cvEinstanceunsuitablenode,
924 c890f66a Jose A. Lopes
   cvEinstancewrongnode,
925 c890f66a Jose A. Lopes
   cvEnodedrbd,
926 c890f66a Jose A. Lopes
   cvEnodedrbdhelper,
927 c890f66a Jose A. Lopes
   cvEnodedrbdversion,
928 c890f66a Jose A. Lopes
   cvEnodefilecheck,
929 c890f66a Jose A. Lopes
   cvEnodefilestoragepaths,
930 c890f66a Jose A. Lopes
   cvEnodefilestoragepathunusable,
931 c890f66a Jose A. Lopes
   cvEnodehooks,
932 c890f66a Jose A. Lopes
   cvEnodehv,
933 c890f66a Jose A. Lopes
   cvEnodelvm,
934 c890f66a Jose A. Lopes
   cvEnoden1,
935 c890f66a Jose A. Lopes
   cvEnodenet,
936 c890f66a Jose A. Lopes
   cvEnodeoobpath,
937 c890f66a Jose A. Lopes
   cvEnodeorphaninstance,
938 c890f66a Jose A. Lopes
   cvEnodeorphanlv,
939 c890f66a Jose A. Lopes
   cvEnodeos,
940 c890f66a Jose A. Lopes
   cvEnoderpc,
941 c890f66a Jose A. Lopes
   cvEnodesetup,
942 c890f66a Jose A. Lopes
   cvEnodesharedfilestoragepathunusable,
943 c890f66a Jose A. Lopes
   cvEnodessh,
944 c890f66a Jose A. Lopes
   cvEnodetime,
945 c890f66a Jose A. Lopes
   cvEnodeuserscripts,
946 c890f66a Jose A. Lopes
   cvEnodeversion]
947 85c48fbb Jose A. Lopes
948 c890f66a Jose A. Lopes
cvAllEcodesStrings :: FrozenSet String
949 c890f66a Jose A. Lopes
cvAllEcodesStrings =
950 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.cVErrorCodeToRaw [minBound..]
951 85c48fbb Jose A. Lopes
952 c890f66a Jose A. Lopes
-- * Instance status
953 85c48fbb Jose A. Lopes
954 c890f66a Jose A. Lopes
inststAdmindown :: String
955 c890f66a Jose A. Lopes
inststAdmindown = Types.instanceStatusToRaw StatusDown
956 85c48fbb Jose A. Lopes
957 c890f66a Jose A. Lopes
inststAdminoffline :: String
958 c890f66a Jose A. Lopes
inststAdminoffline = Types.instanceStatusToRaw StatusOffline
959 85c48fbb Jose A. Lopes
960 c890f66a Jose A. Lopes
inststErrordown :: String
961 c890f66a Jose A. Lopes
inststErrordown = Types.instanceStatusToRaw ErrorDown
962 85c48fbb Jose A. Lopes
963 c890f66a Jose A. Lopes
inststErrorup :: String
964 c890f66a Jose A. Lopes
inststErrorup = Types.instanceStatusToRaw ErrorUp
965 85c48fbb Jose A. Lopes
966 c890f66a Jose A. Lopes
inststNodedown :: String
967 c890f66a Jose A. Lopes
inststNodedown = Types.instanceStatusToRaw NodeDown
968 85c48fbb Jose A. Lopes
969 c890f66a Jose A. Lopes
inststNodeoffline :: String
970 c890f66a Jose A. Lopes
inststNodeoffline = Types.instanceStatusToRaw NodeOffline
971 37248170 Jose A. Lopes
972 c890f66a Jose A. Lopes
inststRunning :: String
973 c890f66a Jose A. Lopes
inststRunning = Types.instanceStatusToRaw Running
974 37248170 Jose A. Lopes
975 c890f66a Jose A. Lopes
inststWrongnode :: String
976 c890f66a Jose A. Lopes
inststWrongnode = Types.instanceStatusToRaw WrongNode
977 37248170 Jose A. Lopes
978 c890f66a Jose A. Lopes
inststAll :: FrozenSet String
979 c890f66a Jose A. Lopes
inststAll = ConstantUtils.mkSet $ map Types.instanceStatusToRaw [minBound..]
980 37248170 Jose A. Lopes
981 c890f66a Jose A. Lopes
-- * Admin states
982 37248170 Jose A. Lopes
983 c890f66a Jose A. Lopes
adminstDown :: String
984 c890f66a Jose A. Lopes
adminstDown = Types.adminStateToRaw AdminDown
985 37248170 Jose A. Lopes
986 c890f66a Jose A. Lopes
adminstOffline :: String
987 c890f66a Jose A. Lopes
adminstOffline = Types.adminStateToRaw AdminOffline
988 37248170 Jose A. Lopes
989 c890f66a Jose A. Lopes
adminstUp :: String
990 c890f66a Jose A. Lopes
adminstUp = Types.adminStateToRaw AdminUp
991 37248170 Jose A. Lopes
992 c890f66a Jose A. Lopes
adminstAll :: FrozenSet String
993 c890f66a Jose A. Lopes
adminstAll = ConstantUtils.mkSet $ map Types.adminStateToRaw [minBound..]
994 37248170 Jose A. Lopes
995 c890f66a Jose A. Lopes
-- * Node roles
996 85c48fbb Jose A. Lopes
997 c890f66a Jose A. Lopes
nrDrained :: String
998 c890f66a Jose A. Lopes
nrDrained = Types.nodeRoleToRaw NRDrained
999 85c48fbb Jose A. Lopes
1000 c890f66a Jose A. Lopes
nrMaster :: String
1001 c890f66a Jose A. Lopes
nrMaster = Types.nodeRoleToRaw NRMaster
1002 85c48fbb Jose A. Lopes
1003 c890f66a Jose A. Lopes
nrMcandidate :: String
1004 c890f66a Jose A. Lopes
nrMcandidate = Types.nodeRoleToRaw NRCandidate
1005 85c48fbb Jose A. Lopes
1006 c890f66a Jose A. Lopes
nrOffline :: String
1007 c890f66a Jose A. Lopes
nrOffline = Types.nodeRoleToRaw NROffline
1008 85c48fbb Jose A. Lopes
1009 c890f66a Jose A. Lopes
nrRegular :: String
1010 c890f66a Jose A. Lopes
nrRegular = Types.nodeRoleToRaw NRRegular
1011 85c48fbb Jose A. Lopes
1012 c890f66a Jose A. Lopes
nrAll :: FrozenSet String
1013 c890f66a Jose A. Lopes
nrAll = ConstantUtils.mkSet $ map Types.nodeRoleToRaw [minBound..]
1014 85c48fbb Jose A. Lopes
1015 c890f66a Jose A. Lopes
-- * Allocator framework constants
1016 85c48fbb Jose A. Lopes
1017 c890f66a Jose A. Lopes
iallocatorVersion :: Int
1018 c890f66a Jose A. Lopes
iallocatorVersion = 2
1019 85c48fbb Jose A. Lopes
1020 c890f66a Jose A. Lopes
iallocatorDirIn :: String
1021 c890f66a Jose A. Lopes
iallocatorDirIn = Types.iAllocatorTestDirToRaw IAllocatorDirIn
1022 85c48fbb Jose A. Lopes
1023 c890f66a Jose A. Lopes
iallocatorDirOut :: String
1024 c890f66a Jose A. Lopes
iallocatorDirOut = Types.iAllocatorTestDirToRaw IAllocatorDirOut
1025 85c48fbb Jose A. Lopes
1026 c890f66a Jose A. Lopes
validIallocatorDirections :: FrozenSet String
1027 c890f66a Jose A. Lopes
validIallocatorDirections =
1028 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorTestDirToRaw [minBound..]
1029 85c48fbb Jose A. Lopes
1030 c890f66a Jose A. Lopes
iallocatorModeAlloc :: String
1031 c890f66a Jose A. Lopes
iallocatorModeAlloc = Types.iAllocatorModeToRaw IAllocatorAlloc
1032 85c48fbb Jose A. Lopes
1033 c890f66a Jose A. Lopes
iallocatorModeChgGroup :: String
1034 c890f66a Jose A. Lopes
iallocatorModeChgGroup = Types.iAllocatorModeToRaw IAllocatorChangeGroup
1035 85c48fbb Jose A. Lopes
1036 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc :: String
1037 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc = Types.iAllocatorModeToRaw IAllocatorMultiAlloc
1038 85c48fbb Jose A. Lopes
1039 c890f66a Jose A. Lopes
iallocatorModeNodeEvac :: String
1040 c890f66a Jose A. Lopes
iallocatorModeNodeEvac = Types.iAllocatorModeToRaw IAllocatorNodeEvac
1041 5867e439 Jose A. Lopes
1042 c890f66a Jose A. Lopes
iallocatorModeReloc :: String
1043 c890f66a Jose A. Lopes
iallocatorModeReloc = Types.iAllocatorModeToRaw IAllocatorReloc
1044 5867e439 Jose A. Lopes
1045 c890f66a Jose A. Lopes
validIallocatorModes :: FrozenSet String
1046 c890f66a Jose A. Lopes
validIallocatorModes =
1047 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorModeToRaw [minBound..]
1048 5867e439 Jose A. Lopes
1049 c890f66a Jose A. Lopes
iallocatorSearchPath :: [String]
1050 c890f66a Jose A. Lopes
iallocatorSearchPath = AutoConf.iallocatorSearchPath
1051 5867e439 Jose A. Lopes
1052 c890f66a Jose A. Lopes
defaultIallocatorShortcut :: String
1053 c890f66a Jose A. Lopes
defaultIallocatorShortcut = "."
1054 85c48fbb Jose A. Lopes
1055 c890f66a Jose A. Lopes
iallocatorNevacPri :: String
1056 c890f66a Jose A. Lopes
iallocatorNevacPri = Types.nodeEvacModeToRaw NEvacPrimary
1057 85c48fbb Jose A. Lopes
1058 c890f66a Jose A. Lopes
iallocatorNevacSec :: String
1059 c890f66a Jose A. Lopes
iallocatorNevacSec = Types.nodeEvacModeToRaw NEvacSecondary
1060 85c48fbb Jose A. Lopes
1061 c890f66a Jose A. Lopes
iallocatorNevacAll :: String
1062 c890f66a Jose A. Lopes
iallocatorNevacAll = Types.nodeEvacModeToRaw NEvacAll
1063 85c48fbb Jose A. Lopes
1064 c890f66a Jose A. Lopes
iallocatorNevacModes :: FrozenSet String
1065 c890f66a Jose A. Lopes
iallocatorNevacModes =
1066 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.nodeEvacModeToRaw [minBound..]
1067 85c48fbb Jose A. Lopes
1068 c890f66a Jose A. Lopes
-- * Node evacuation
1069 85c48fbb Jose A. Lopes
1070 c890f66a Jose A. Lopes
nodeEvacPri :: String
1071 c890f66a Jose A. Lopes
nodeEvacPri = Types.nodeEvacModeToRaw NEvacPrimary
1072 85c48fbb Jose A. Lopes
1073 c890f66a Jose A. Lopes
nodeEvacSec :: String
1074 c890f66a Jose A. Lopes
nodeEvacSec = Types.nodeEvacModeToRaw NEvacSecondary
1075 85c48fbb Jose A. Lopes
1076 c890f66a Jose A. Lopes
nodeEvacAll :: String
1077 c890f66a Jose A. Lopes
nodeEvacAll = Types.nodeEvacModeToRaw NEvacAll
1078 85c48fbb Jose A. Lopes
1079 c890f66a Jose A. Lopes
nodeEvacModes :: FrozenSet String
1080 c890f66a Jose A. Lopes
nodeEvacModes = ConstantUtils.mkSet $ map Types.nodeEvacModeToRaw [minBound..]
1081 85c48fbb Jose A. Lopes
1082 c890f66a Jose A. Lopes
-- * Job status
1083 85c48fbb Jose A. Lopes
1084 c890f66a Jose A. Lopes
jobStatusQueued :: String
1085 c890f66a Jose A. Lopes
jobStatusQueued = Types.jobStatusToRaw JOB_STATUS_QUEUED
1086 85c48fbb Jose A. Lopes
1087 c890f66a Jose A. Lopes
jobStatusWaiting :: String
1088 c890f66a Jose A. Lopes
jobStatusWaiting = Types.jobStatusToRaw JOB_STATUS_WAITING
1089 85c48fbb Jose A. Lopes
1090 c890f66a Jose A. Lopes
jobStatusCanceling :: String
1091 c890f66a Jose A. Lopes
jobStatusCanceling = Types.jobStatusToRaw JOB_STATUS_CANCELING
1092 85c48fbb Jose A. Lopes
1093 c890f66a Jose A. Lopes
jobStatusRunning :: String
1094 c890f66a Jose A. Lopes
jobStatusRunning = Types.jobStatusToRaw JOB_STATUS_RUNNING
1095 85c48fbb Jose A. Lopes
1096 c890f66a Jose A. Lopes
jobStatusCanceled :: String
1097 c890f66a Jose A. Lopes
jobStatusCanceled = Types.jobStatusToRaw JOB_STATUS_CANCELED
1098 43a9e860 Jose A. Lopes
1099 c890f66a Jose A. Lopes
jobStatusSuccess :: String
1100 c890f66a Jose A. Lopes
jobStatusSuccess = Types.jobStatusToRaw JOB_STATUS_SUCCESS
1101 43a9e860 Jose A. Lopes
1102 c890f66a Jose A. Lopes
jobStatusError :: String
1103 c890f66a Jose A. Lopes
jobStatusError = Types.jobStatusToRaw JOB_STATUS_ERROR
1104 43a9e860 Jose A. Lopes
1105 c890f66a Jose A. Lopes
jobsPending :: FrozenSet String
1106 c890f66a Jose A. Lopes
jobsPending =
1107 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [jobStatusQueued, jobStatusWaiting, jobStatusCanceling]
1108 43a9e860 Jose A. Lopes
1109 c890f66a Jose A. Lopes
jobsFinalized :: FrozenSet String
1110 c890f66a Jose A. Lopes
jobsFinalized =
1111 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.finalizedJobStatusToRaw [minBound..]
1112 43a9e860 Jose A. Lopes
1113 c890f66a Jose A. Lopes
jobStatusAll :: FrozenSet String
1114 c890f66a Jose A. Lopes
jobStatusAll = ConstantUtils.mkSet $ map Types.jobStatusToRaw [minBound..]
1115 43a9e860 Jose A. Lopes
1116 c890f66a Jose A. Lopes
-- * OpCode status
1117 43a9e860 Jose A. Lopes
1118 c890f66a Jose A. Lopes
-- ** Not yet finalized opcodes
1119 43a9e860 Jose A. Lopes
1120 c890f66a Jose A. Lopes
opStatusCanceling :: String
1121 c890f66a Jose A. Lopes
opStatusCanceling = "canceling"
1122 85c48fbb Jose A. Lopes
1123 c890f66a Jose A. Lopes
opStatusQueued :: String
1124 c890f66a Jose A. Lopes
opStatusQueued = "queued"
1125 85c48fbb Jose A. Lopes
1126 c890f66a Jose A. Lopes
opStatusRunning :: String
1127 c890f66a Jose A. Lopes
opStatusRunning = "running"
1128 85c48fbb Jose A. Lopes
1129 c890f66a Jose A. Lopes
opStatusWaiting :: String
1130 c890f66a Jose A. Lopes
opStatusWaiting = "waiting"
1131 85c48fbb Jose A. Lopes
1132 c890f66a Jose A. Lopes
-- ** Finalized opcodes
1133 85c48fbb Jose A. Lopes
1134 c890f66a Jose A. Lopes
opStatusCanceled :: String
1135 c890f66a Jose A. Lopes
opStatusCanceled = "canceled"
1136 85c48fbb Jose A. Lopes
1137 c890f66a Jose A. Lopes
opStatusError :: String
1138 c890f66a Jose A. Lopes
opStatusError = "error"
1139 85c48fbb Jose A. Lopes
1140 c890f66a Jose A. Lopes
opStatusSuccess :: String
1141 c890f66a Jose A. Lopes
opStatusSuccess = "success"
1142 85c48fbb Jose A. Lopes
1143 c890f66a Jose A. Lopes
opsFinalized :: FrozenSet String
1144 c890f66a Jose A. Lopes
opsFinalized =
1145 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [opStatusCanceled, opStatusError, opStatusSuccess]
1146 85c48fbb Jose A. Lopes
1147 c890f66a Jose A. Lopes
-- * OpCode priority
1148 85c48fbb Jose A. Lopes
1149 c890f66a Jose A. Lopes
opPrioLowest :: Int
1150 c890f66a Jose A. Lopes
opPrioLowest = 19
1151 85c48fbb Jose A. Lopes
1152 c890f66a Jose A. Lopes
opPrioHighest :: Int
1153 c890f66a Jose A. Lopes
opPrioHighest = -20
1154 85c48fbb Jose A. Lopes
1155 c890f66a Jose A. Lopes
opPrioLow :: Int
1156 c890f66a Jose A. Lopes
opPrioLow = Types.opSubmitPriorityToRaw OpPrioLow
1157 85c48fbb Jose A. Lopes
1158 c890f66a Jose A. Lopes
opPrioNormal :: Int
1159 c890f66a Jose A. Lopes
opPrioNormal = Types.opSubmitPriorityToRaw OpPrioNormal
1160 85c48fbb Jose A. Lopes
1161 c890f66a Jose A. Lopes
opPrioHigh :: Int
1162 c890f66a Jose A. Lopes
opPrioHigh = Types.opSubmitPriorityToRaw OpPrioHigh
1163 5867e439 Jose A. Lopes
1164 c890f66a Jose A. Lopes
opPrioSubmitValid :: FrozenSet Int
1165 c890f66a Jose A. Lopes
opPrioSubmitValid = ConstantUtils.mkSet [opPrioLow, opPrioNormal, opPrioHigh]
1166 5867e439 Jose A. Lopes
1167 c890f66a Jose A. Lopes
opPrioDefault :: Int
1168 c890f66a Jose A. Lopes
opPrioDefault = opPrioNormal
1169 5867e439 Jose A. Lopes
1170 c890f66a Jose A. Lopes
-- * Execution log types
1171 5867e439 Jose A. Lopes
1172 c890f66a Jose A. Lopes
elogMessage :: String
1173 c890f66a Jose A. Lopes
elogMessage = Types.eLogTypeToRaw ELogMessage
1174 5867e439 Jose A. Lopes
1175 c890f66a Jose A. Lopes
elogRemoteImport :: String
1176 c890f66a Jose A. Lopes
elogRemoteImport = Types.eLogTypeToRaw ELogRemoteImport
1177 5867e439 Jose A. Lopes
1178 c890f66a Jose A. Lopes
elogJqueueTest :: String
1179 c890f66a Jose A. Lopes
elogJqueueTest = Types.eLogTypeToRaw ELogJqueueTest
1180 5867e439 Jose A. Lopes
1181 61e32567 Jose A. Lopes
-- * A few common errors for confd
1182 61e32567 Jose A. Lopes
1183 61e32567 Jose A. Lopes
confdErrorArgument :: Int
1184 61e32567 Jose A. Lopes
confdErrorArgument = 3
1185 61e32567 Jose A. Lopes
1186 61e32567 Jose A. Lopes
confdErrorInternal :: Int
1187 61e32567 Jose A. Lopes
confdErrorInternal = 2
1188 61e32567 Jose A. Lopes
1189 61e32567 Jose A. Lopes
confdErrorUnknownEntry :: Int
1190 61e32567 Jose A. Lopes
confdErrorUnknownEntry = 1
1191 61e32567 Jose A. Lopes
1192 61e32567 Jose A. Lopes
-- | Each request is "salted" by the current timestamp.
1193 61e32567 Jose A. Lopes
--
1194 61e32567 Jose A. Lopes
-- This constant decides how many seconds of skew to accept.
1195 61e32567 Jose A. Lopes
--
1196 61e32567 Jose A. Lopes
-- TODO: make this a default and allow the value to be more
1197 61e32567 Jose A. Lopes
-- configurable
1198 61e32567 Jose A. Lopes
confdMaxClockSkew :: Int
1199 61e32567 Jose A. Lopes
confdMaxClockSkew = 2 * nodeMaxClockSkew
1200 61e32567 Jose A. Lopes
1201 61e32567 Jose A. Lopes
-- | When we haven't reloaded the config for more than this amount of
1202 61e32567 Jose A. Lopes
-- seconds, we force a test to see if inotify is betraying us. Using a
1203 61e32567 Jose A. Lopes
-- prime number to ensure we get less chance of 'same wakeup' with
1204 61e32567 Jose A. Lopes
-- other processes.
1205 61e32567 Jose A. Lopes
confdConfigReloadTimeout :: Int
1206 61e32567 Jose A. Lopes
confdConfigReloadTimeout = 17
1207 61e32567 Jose A. Lopes
1208 61e32567 Jose A. Lopes
-- | If we receive more than one update in this amount of
1209 61e32567 Jose A. Lopes
-- microseconds, we move to polling every RATELIMIT seconds, rather
1210 61e32567 Jose A. Lopes
-- than relying on inotify, to be able to serve more requests.
1211 61e32567 Jose A. Lopes
confdConfigReloadRatelimit :: Int
1212 61e32567 Jose A. Lopes
confdConfigReloadRatelimit = 250000
1213 61e32567 Jose A. Lopes
1214 61e32567 Jose A. Lopes
-- | Magic number prepended to all confd queries.
1215 61e32567 Jose A. Lopes
--
1216 61e32567 Jose A. Lopes
-- This allows us to distinguish different types of confd protocols
1217 61e32567 Jose A. Lopes
-- and handle them. For example by changing this we can move the whole
1218 61e32567 Jose A. Lopes
-- payload to be compressed, or move away from json.
1219 61e32567 Jose A. Lopes
confdMagicFourcc :: String
1220 61e32567 Jose A. Lopes
confdMagicFourcc = "plj0"
1221 61e32567 Jose A. Lopes
1222 61e32567 Jose A. Lopes
-- | By default a confd request is sent to the minimum between this
1223 61e32567 Jose A. Lopes
-- number and all MCs. 6 was chosen because even in the case of a
1224 61e32567 Jose A. Lopes
-- disastrous 50% response rate, we should have enough answers to be
1225 61e32567 Jose A. Lopes
-- able to compare more than one.
1226 61e32567 Jose A. Lopes
confdDefaultReqCoverage :: Int
1227 61e32567 Jose A. Lopes
confdDefaultReqCoverage = 6
1228 61e32567 Jose A. Lopes
1229 61e32567 Jose A. Lopes
-- | Timeout in seconds to expire pending query request in the confd
1230 61e32567 Jose A. Lopes
-- client library. We don't actually expect any answer more than 10
1231 61e32567 Jose A. Lopes
-- seconds after we sent a request.
1232 61e32567 Jose A. Lopes
confdClientExpireTimeout :: Int
1233 61e32567 Jose A. Lopes
confdClientExpireTimeout = 10
1234 61e32567 Jose A. Lopes
1235 f361a6ee Jose A. Lopes
-- * Possible values for NodeGroup.alloc_policy
1236 f361a6ee Jose A. Lopes
1237 f361a6ee Jose A. Lopes
allocPolicyLastResort :: String
1238 58c09b0e Jose A. Lopes
allocPolicyLastResort = Types.allocPolicyToRaw AllocLastResort
1239 f361a6ee Jose A. Lopes
1240 f361a6ee Jose A. Lopes
allocPolicyPreferred :: String
1241 58c09b0e Jose A. Lopes
allocPolicyPreferred = Types.allocPolicyToRaw AllocPreferred
1242 f361a6ee Jose A. Lopes
1243 f361a6ee Jose A. Lopes
allocPolicyUnallocable :: String
1244 58c09b0e Jose A. Lopes
allocPolicyUnallocable = Types.allocPolicyToRaw AllocUnallocable
1245 f361a6ee Jose A. Lopes
1246 f361a6ee Jose A. Lopes
validAllocPolicies :: [String]
1247 58c09b0e Jose A. Lopes
validAllocPolicies = map Types.allocPolicyToRaw [minBound..]
1248 f361a6ee Jose A. Lopes
1249 f361a6ee Jose A. Lopes
-- | Temporary external/shared storage parameters
1250 f361a6ee Jose A. Lopes
blockdevDriverManual :: String
1251 5867e439 Jose A. Lopes
blockdevDriverManual = Types.blockDriverToRaw BlockDrvManual
1252 f361a6ee Jose A. Lopes
1253 3b170ad4 Jose A. Lopes
-- | 'qemu-img' path, required for 'ovfconverter'
1254 3b170ad4 Jose A. Lopes
qemuimgPath :: String
1255 3b170ad4 Jose A. Lopes
qemuimgPath = AutoConf.qemuimgPath
1256 3b170ad4 Jose A. Lopes
1257 3b170ad4 Jose A. Lopes
-- | Whether htools was enabled at compilation time
1258 3b170ad4 Jose A. Lopes
--
1259 3b170ad4 Jose A. Lopes
-- FIXME: this should be moved next to the other enable constants,
1260 3b170ad4 Jose A. Lopes
-- such as, 'enableConfd', and renamed to 'enableHtools'.
1261 3b170ad4 Jose A. Lopes
htools :: Bool
1262 3b170ad4 Jose A. Lopes
htools = AutoConf.htools
1263 3b170ad4 Jose A. Lopes
1264 06fd57e5 Jose A. Lopes
-- | Path generating random UUID
1265 06fd57e5 Jose A. Lopes
randomUuidFile :: String
1266 06fd57e5 Jose A. Lopes
randomUuidFile = ConstantUtils.randomUuidFile
1267 06fd57e5 Jose A. Lopes
1268 f361a6ee Jose A. Lopes
-- * Auto-repair tag prefixes
1269 f361a6ee Jose A. Lopes
1270 f361a6ee Jose A. Lopes
autoRepairTagPrefix :: String
1271 f361a6ee Jose A. Lopes
autoRepairTagPrefix = "ganeti:watcher:autorepair:"
1272 f361a6ee Jose A. Lopes
1273 f361a6ee Jose A. Lopes
autoRepairTagEnabled :: String
1274 f361a6ee Jose A. Lopes
autoRepairTagEnabled = autoRepairTagPrefix
1275 f361a6ee Jose A. Lopes
1276 f361a6ee Jose A. Lopes
autoRepairTagPending :: String
1277 f361a6ee Jose A. Lopes
autoRepairTagPending = autoRepairTagPrefix ++ "pending:"
1278 f361a6ee Jose A. Lopes
1279 f361a6ee Jose A. Lopes
autoRepairTagResult :: String
1280 f361a6ee Jose A. Lopes
autoRepairTagResult = autoRepairTagPrefix ++ "result:"
1281 f361a6ee Jose A. Lopes
1282 f361a6ee Jose A. Lopes
autoRepairTagSuspended :: String
1283 f361a6ee Jose A. Lopes
autoRepairTagSuspended = autoRepairTagPrefix ++ "suspend:"
1284 f361a6ee Jose A. Lopes
1285 f361a6ee Jose A. Lopes
-- * Auto-repair levels
1286 f361a6ee Jose A. Lopes
1287 f361a6ee Jose A. Lopes
autoRepairFailover :: String
1288 f361a6ee Jose A. Lopes
autoRepairFailover = "failover"
1289 f361a6ee Jose A. Lopes
1290 f361a6ee Jose A. Lopes
autoRepairFixStorage :: String
1291 f361a6ee Jose A. Lopes
autoRepairFixStorage = "fix-storage"
1292 f361a6ee Jose A. Lopes
1293 f361a6ee Jose A. Lopes
autoRepairMigrate :: String
1294 f361a6ee Jose A. Lopes
autoRepairMigrate = "migrate"
1295 f361a6ee Jose A. Lopes
1296 f361a6ee Jose A. Lopes
autoRepairReinstall :: String
1297 f361a6ee Jose A. Lopes
autoRepairReinstall = "reinstall"
1298 f361a6ee Jose A. Lopes
1299 f361a6ee Jose A. Lopes
autoRepairAllTypes :: FrozenSet String
1300 f361a6ee Jose A. Lopes
autoRepairAllTypes =
1301 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairFailover,
1302 43a9e860 Jose A. Lopes
                       autoRepairFixStorage,
1303 43a9e860 Jose A. Lopes
                       autoRepairMigrate,
1304 43a9e860 Jose A. Lopes
                       autoRepairReinstall]
1305 f361a6ee Jose A. Lopes
1306 f361a6ee Jose A. Lopes
-- * Auto-repair results
1307 f361a6ee Jose A. Lopes
1308 f361a6ee Jose A. Lopes
autoRepairEnoperm :: String
1309 f361a6ee Jose A. Lopes
autoRepairEnoperm = "enoperm"
1310 f361a6ee Jose A. Lopes
1311 f361a6ee Jose A. Lopes
autoRepairFailure :: String
1312 f361a6ee Jose A. Lopes
autoRepairFailure = "failure"
1313 f361a6ee Jose A. Lopes
1314 f361a6ee Jose A. Lopes
autoRepairSuccess :: String
1315 f361a6ee Jose A. Lopes
autoRepairSuccess = "success"
1316 f361a6ee Jose A. Lopes
1317 f361a6ee Jose A. Lopes
autoRepairAllResults :: FrozenSet String
1318 f361a6ee Jose A. Lopes
autoRepairAllResults =
1319 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairEnoperm, autoRepairFailure, autoRepairSuccess]
1320 f361a6ee Jose A. Lopes
1321 f361a6ee Jose A. Lopes
-- | The version identifier for builtin data collectors
1322 f361a6ee Jose A. Lopes
builtinDataCollectorVersion :: String
1323 f361a6ee Jose A. Lopes
builtinDataCollectorVersion = "B"
1324 2924f169 Jose A. Lopes
1325 2924f169 Jose A. Lopes
-- | The reason trail opcode parameter name
1326 2924f169 Jose A. Lopes
opcodeReason :: String
1327 2924f169 Jose A. Lopes
opcodeReason = "reason"
1328 2924f169 Jose A. Lopes
1329 2924f169 Jose A. Lopes
diskstatsFile :: String
1330 2924f169 Jose A. Lopes
diskstatsFile = "/proc/diskstats"
1331 2924f169 Jose A. Lopes
1332 2924f169 Jose A. Lopes
-- | CPU load collector
1333 2924f169 Jose A. Lopes
statFile :: String
1334 2924f169 Jose A. Lopes
statFile = "/proc/stat"
1335 2924f169 Jose A. Lopes
1336 2924f169 Jose A. Lopes
-- | Mond's variable for periodical data collection
1337 2924f169 Jose A. Lopes
mondTimeInterval :: Int
1338 2924f169 Jose A. Lopes
mondTimeInterval = 5