Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ a91d6b30

History | View | Annotate | Download (46.4 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 cdac0552 Jose A. Lopes
import Data.List ((\\))
40 6dc0cb59 Jose A. Lopes
import Data.Map (Map)
41 ecf43dcb Jose A. Lopes
import qualified Data.Map as Map (fromList, keys, insert)
42 6dc0cb59 Jose A. Lopes
43 26eca119 Jose A. Lopes
import AutoConf
44 5d4e1402 Jose A. Lopes
import Ganeti.ConstantUtils (PythonChar(..), FrozenSet, Protocol(..),
45 5d4e1402 Jose A. Lopes
                             buildVersion)
46 df726590 Jose A. Lopes
import qualified Ganeti.ConstantUtils as ConstantUtils
47 1c31b263 Jose A. Lopes
import Ganeti.Runtime (GanetiDaemon(..), MiscGroup(..), GanetiGroup(..),
48 1c31b263 Jose A. Lopes
                       ExtraLogReason(..))
49 8397ffde Jose A. Lopes
import Ganeti.HTools.Types (AutoRepairResult(..), AutoRepairType(..))
50 8397ffde Jose A. Lopes
import qualified Ganeti.HTools.Types as Types
51 df726590 Jose A. Lopes
import Ganeti.Logging (SyslogUsage(..))
52 df726590 Jose A. Lopes
import qualified Ganeti.Logging as Logging (syslogUsageToRaw)
53 1c31b263 Jose A. Lopes
import qualified Ganeti.Runtime as Runtime
54 85c48fbb Jose A. Lopes
import Ganeti.Types
55 85c48fbb Jose A. Lopes
import qualified Ganeti.Types as Types
56 cdac0552 Jose A. Lopes
import Ganeti.Confd.Types (ConfdRequestType(..), ConfdReqField(..),
57 cdac0552 Jose A. Lopes
                           ConfdReplyStatus(..), ConfdNodeRole(..),
58 cdac0552 Jose A. Lopes
                           ConfdErrorType(..))
59 cdac0552 Jose A. Lopes
import qualified Ganeti.Confd.Types as Types
60 85c48fbb Jose A. Lopes
61 c03224f6 Jose A. Lopes
{-# ANN module "HLint: ignore Use camelCase" #-}
62 c03224f6 Jose A. Lopes
63 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('autotools/build-bash-completion')
64 1c9e817d Jose A. Lopes
65 1c9e817d Jose A. Lopes
htoolsProgs :: [String]
66 1c9e817d Jose A. Lopes
htoolsProgs = AutoConf.htoolsProgs
67 1c9e817d Jose A. Lopes
68 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/constants.py')
69 3b170ad4 Jose A. Lopes
70 3b170ad4 Jose A. Lopes
drbdBarriers :: String
71 3b170ad4 Jose A. Lopes
drbdBarriers = AutoConf.drbdBarriers
72 3b170ad4 Jose A. Lopes
73 3b170ad4 Jose A. Lopes
drbdNoMetaFlush :: Bool
74 3b170ad4 Jose A. Lopes
drbdNoMetaFlush = AutoConf.drbdNoMetaFlush
75 3b170ad4 Jose A. Lopes
76 3b170ad4 Jose A. Lopes
lvmStripecount :: Int
77 3b170ad4 Jose A. Lopes
lvmStripecount = AutoConf.lvmStripecount
78 3b170ad4 Jose A. Lopes
79 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/pathutils.py')
80 1c9e817d Jose A. Lopes
81 1c9e817d Jose A. Lopes
-- ** Build-time constants
82 1c9e817d Jose A. Lopes
83 1c9e817d Jose A. Lopes
exportDir :: String
84 1c9e817d Jose A. Lopes
exportDir = AutoConf.exportDir
85 1c9e817d Jose A. Lopes
86 1c9e817d Jose A. Lopes
osSearchPath :: [String]
87 1c9e817d Jose A. Lopes
osSearchPath = AutoConf.osSearchPath
88 1c9e817d Jose A. Lopes
89 1c9e817d Jose A. Lopes
esSearchPath :: [String]
90 1c9e817d Jose A. Lopes
esSearchPath = AutoConf.esSearchPath
91 1c9e817d Jose A. Lopes
92 1c9e817d Jose A. Lopes
sshConfigDir :: String
93 1c9e817d Jose A. Lopes
sshConfigDir = AutoConf.sshConfigDir
94 1c9e817d Jose A. Lopes
95 1c9e817d Jose A. Lopes
xenConfigDir :: String
96 1c9e817d Jose A. Lopes
xenConfigDir = AutoConf.xenConfigDir
97 1c9e817d Jose A. Lopes
98 1c9e817d Jose A. Lopes
sysconfdir :: String
99 1c9e817d Jose A. Lopes
sysconfdir = AutoConf.sysconfdir
100 1c9e817d Jose A. Lopes
101 1c9e817d Jose A. Lopes
toolsdir :: String
102 1c9e817d Jose A. Lopes
toolsdir = AutoConf.toolsdir
103 1c9e817d Jose A. Lopes
104 1c9e817d Jose A. Lopes
localstatedir :: String
105 1c9e817d Jose A. Lopes
localstatedir = AutoConf.localstatedir
106 1c9e817d Jose A. Lopes
107 1c9e817d Jose A. Lopes
-- ** Paths which don't change for a virtual cluster
108 1c9e817d Jose A. Lopes
109 1c9e817d Jose A. Lopes
pkglibdir :: String
110 1c9e817d Jose A. Lopes
pkglibdir = AutoConf.pkglibdir
111 1c9e817d Jose A. Lopes
112 9bfcf2e9 Klaus Aehlig
sharedir :: String
113 9bfcf2e9 Klaus Aehlig
sharedir = AutoConf.sharedir
114 9bfcf2e9 Klaus Aehlig
115 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/build/sphinx_ext.py')
116 1c9e817d Jose A. Lopes
117 1c9e817d Jose A. Lopes
manPages :: Map String Int
118 1c9e817d Jose A. Lopes
manPages = Map.fromList AutoConf.manPages
119 1c9e817d Jose A. Lopes
120 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for QA cluster only ('qa/qa_cluster.py')
121 1c9e817d Jose A. Lopes
122 1c9e817d Jose A. Lopes
versionedsharedir :: String
123 1c9e817d Jose A. Lopes
versionedsharedir = AutoConf.versionedsharedir
124 1c9e817d Jose A. Lopes
125 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('tests/py/docs_unittest.py')
126 1c9e817d Jose A. Lopes
127 1c9e817d Jose A. Lopes
gntScripts :: [String]
128 1c9e817d Jose A. Lopes
gntScripts = AutoConf.gntScripts
129 1c9e817d Jose A. Lopes
130 3b170ad4 Jose A. Lopes
-- * Various versions
131 3b170ad4 Jose A. Lopes
132 3b170ad4 Jose A. Lopes
releaseVersion :: String
133 3b170ad4 Jose A. Lopes
releaseVersion = AutoConf.packageVersion
134 3b170ad4 Jose A. Lopes
135 8c44d5b3 Klaus Aehlig
versionMajor :: Int
136 8c44d5b3 Klaus Aehlig
versionMajor = AutoConf.versionMajor
137 8c44d5b3 Klaus Aehlig
138 8c44d5b3 Klaus Aehlig
versionMinor :: Int
139 8c44d5b3 Klaus Aehlig
versionMinor = AutoConf.versionMinor
140 8c44d5b3 Klaus Aehlig
141 8c44d5b3 Klaus Aehlig
versionRevision :: Int
142 8c44d5b3 Klaus Aehlig
versionRevision = AutoConf.versionRevision
143 8c44d5b3 Klaus Aehlig
144 9b20010b Klaus Aehlig
dirVersion :: String
145 9b20010b Klaus Aehlig
dirVersion = AutoConf.dirVersion
146 9b20010b Klaus Aehlig
147 c87997d2 Jose A. Lopes
osApiV10 :: Int
148 c87997d2 Jose A. Lopes
osApiV10 = 10
149 c87997d2 Jose A. Lopes
150 c87997d2 Jose A. Lopes
osApiV15 :: Int
151 c87997d2 Jose A. Lopes
osApiV15 = 15
152 c87997d2 Jose A. Lopes
153 c87997d2 Jose A. Lopes
osApiV20 :: Int
154 c87997d2 Jose A. Lopes
osApiV20 = 20
155 c87997d2 Jose A. Lopes
156 c87997d2 Jose A. Lopes
osApiVersions :: FrozenSet Int
157 c87997d2 Jose A. Lopes
osApiVersions = ConstantUtils.mkSet [osApiV10, osApiV15, osApiV20]
158 c87997d2 Jose A. Lopes
159 3b170ad4 Jose A. Lopes
configMajor :: Int
160 3b170ad4 Jose A. Lopes
configMajor = AutoConf.versionMajor
161 3b170ad4 Jose A. Lopes
162 3b170ad4 Jose A. Lopes
configMinor :: Int
163 3b170ad4 Jose A. Lopes
configMinor = AutoConf.versionMinor
164 3b170ad4 Jose A. Lopes
165 3b170ad4 Jose A. Lopes
-- | The configuration is supposed to remain stable across
166 3b170ad4 Jose A. Lopes
-- revisions. Therefore, the revision number is cleared to '0'.
167 3b170ad4 Jose A. Lopes
configRevision :: Int
168 3b170ad4 Jose A. Lopes
configRevision = 0
169 3b170ad4 Jose A. Lopes
170 3b170ad4 Jose A. Lopes
configVersion :: Int
171 3b170ad4 Jose A. Lopes
configVersion = buildVersion configMajor configMinor configRevision
172 3b170ad4 Jose A. Lopes
173 3b170ad4 Jose A. Lopes
-- | Similarly to the configuration (see 'configRevision'), the
174 3b170ad4 Jose A. Lopes
-- protocols are supposed to remain stable across revisions.
175 3b170ad4 Jose A. Lopes
protocolVersion :: Int
176 3b170ad4 Jose A. Lopes
protocolVersion = buildVersion configMajor configMinor configRevision
177 3b170ad4 Jose A. Lopes
178 c890f66a Jose A. Lopes
-- * User separation
179 cdac0552 Jose A. Lopes
180 c890f66a Jose A. Lopes
daemonsGroup :: String
181 c890f66a Jose A. Lopes
daemonsGroup = Runtime.daemonGroup (ExtraGroup DaemonsGroup)
182 85c48fbb Jose A. Lopes
183 c890f66a Jose A. Lopes
adminGroup :: String
184 c890f66a Jose A. Lopes
adminGroup = Runtime.daemonGroup (ExtraGroup AdminGroup)
185 85c48fbb Jose A. Lopes
186 c890f66a Jose A. Lopes
masterdUser :: String
187 c890f66a Jose A. Lopes
masterdUser = Runtime.daemonUser GanetiMasterd
188 85c48fbb Jose A. Lopes
189 c890f66a Jose A. Lopes
masterdGroup :: String
190 c890f66a Jose A. Lopes
masterdGroup = Runtime.daemonGroup (DaemonGroup GanetiMasterd)
191 85c48fbb Jose A. Lopes
192 c890f66a Jose A. Lopes
rapiUser :: String
193 c890f66a Jose A. Lopes
rapiUser = Runtime.daemonUser GanetiRapi
194 85c48fbb Jose A. Lopes
195 c890f66a Jose A. Lopes
rapiGroup :: String
196 c890f66a Jose A. Lopes
rapiGroup = Runtime.daemonGroup (DaemonGroup GanetiRapi)
197 85c48fbb Jose A. Lopes
198 c890f66a Jose A. Lopes
confdUser :: String
199 c890f66a Jose A. Lopes
confdUser = Runtime.daemonUser GanetiConfd
200 85c48fbb Jose A. Lopes
201 c890f66a Jose A. Lopes
confdGroup :: String
202 c890f66a Jose A. Lopes
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
203 85c48fbb Jose A. Lopes
204 c890f66a Jose A. Lopes
luxidUser :: String
205 c890f66a Jose A. Lopes
luxidUser = Runtime.daemonUser GanetiLuxid
206 85c48fbb Jose A. Lopes
207 c890f66a Jose A. Lopes
luxidGroup :: String
208 c890f66a Jose A. Lopes
luxidGroup = Runtime.daemonGroup (DaemonGroup GanetiLuxid)
209 85c48fbb Jose A. Lopes
210 c890f66a Jose A. Lopes
nodedUser :: String
211 c890f66a Jose A. Lopes
nodedUser = Runtime.daemonUser GanetiNoded
212 85c48fbb Jose A. Lopes
213 c890f66a Jose A. Lopes
nodedGroup :: String
214 c890f66a Jose A. Lopes
nodedGroup = Runtime.daemonGroup (DaemonGroup GanetiNoded)
215 85c48fbb Jose A. Lopes
216 c890f66a Jose A. Lopes
mondUser :: String
217 c890f66a Jose A. Lopes
mondUser = Runtime.daemonUser GanetiMond
218 85c48fbb Jose A. Lopes
219 c890f66a Jose A. Lopes
mondGroup :: String
220 c890f66a Jose A. Lopes
mondGroup = Runtime.daemonGroup (DaemonGroup GanetiMond)
221 85c48fbb Jose A. Lopes
222 c890f66a Jose A. Lopes
sshLoginUser :: String
223 c890f66a Jose A. Lopes
sshLoginUser = AutoConf.sshLoginUser
224 85c48fbb Jose A. Lopes
225 c890f66a Jose A. Lopes
sshConsoleUser :: String
226 c890f66a Jose A. Lopes
sshConsoleUser = AutoConf.sshConsoleUser
227 85c48fbb Jose A. Lopes
228 74129b52 Jose A. Lopes
-- * Wipe
229 74129b52 Jose A. Lopes
230 74129b52 Jose A. Lopes
ddCmd :: String
231 74129b52 Jose A. Lopes
ddCmd = "dd"
232 74129b52 Jose A. Lopes
233 74129b52 Jose A. Lopes
-- | 1GB
234 74129b52 Jose A. Lopes
maxWipeChunk :: Int
235 74129b52 Jose A. Lopes
maxWipeChunk = 1024
236 74129b52 Jose A. Lopes
237 74129b52 Jose A. Lopes
minWipeChunkPercent :: Int
238 74129b52 Jose A. Lopes
minWipeChunkPercent = 10
239 74129b52 Jose A. Lopes
240 74129b52 Jose A. Lopes
-- * Directories
241 74129b52 Jose A. Lopes
242 74129b52 Jose A. Lopes
runDirsMode :: Int
243 74129b52 Jose A. Lopes
runDirsMode = 0o775
244 74129b52 Jose A. Lopes
245 74129b52 Jose A. Lopes
secureDirMode :: Int
246 74129b52 Jose A. Lopes
secureDirMode = 0o700
247 74129b52 Jose A. Lopes
248 74129b52 Jose A. Lopes
secureFileMode :: Int
249 74129b52 Jose A. Lopes
secureFileMode = 0o600
250 74129b52 Jose A. Lopes
251 74129b52 Jose A. Lopes
adoptableBlockdevRoot :: String
252 74129b52 Jose A. Lopes
adoptableBlockdevRoot = "/dev/disk/"
253 74129b52 Jose A. Lopes
254 3b170ad4 Jose A. Lopes
-- * 'autoconf' enable/disable
255 3b170ad4 Jose A. Lopes
256 3b170ad4 Jose A. Lopes
enableConfd :: Bool
257 3b170ad4 Jose A. Lopes
enableConfd = AutoConf.enableConfd
258 3b170ad4 Jose A. Lopes
259 3b170ad4 Jose A. Lopes
enableMond :: Bool
260 3b170ad4 Jose A. Lopes
enableMond = AutoConf.enableMond
261 3b170ad4 Jose A. Lopes
262 3b170ad4 Jose A. Lopes
enableRestrictedCommands :: Bool
263 3b170ad4 Jose A. Lopes
enableRestrictedCommands = AutoConf.enableRestrictedCommands
264 3b170ad4 Jose A. Lopes
265 3b170ad4 Jose A. Lopes
enableSplitQuery :: Bool
266 3b170ad4 Jose A. Lopes
enableSplitQuery = AutoConf.enableSplitQuery
267 3b170ad4 Jose A. Lopes
268 c890f66a Jose A. Lopes
-- * SSH constants
269 85c48fbb Jose A. Lopes
270 c890f66a Jose A. Lopes
ssh :: String
271 c890f66a Jose A. Lopes
ssh = "ssh"
272 85c48fbb Jose A. Lopes
273 c890f66a Jose A. Lopes
scp :: String
274 c890f66a Jose A. Lopes
scp = "scp"
275 85c48fbb Jose A. Lopes
276 c890f66a Jose A. Lopes
-- * Daemons
277 85c48fbb Jose A. Lopes
278 c890f66a Jose A. Lopes
confd :: String
279 c890f66a Jose A. Lopes
confd = Runtime.daemonName GanetiConfd
280 85c48fbb Jose A. Lopes
281 c890f66a Jose A. Lopes
masterd :: String
282 c890f66a Jose A. Lopes
masterd = Runtime.daemonName GanetiMasterd
283 85c48fbb Jose A. Lopes
284 c890f66a Jose A. Lopes
mond :: String
285 c890f66a Jose A. Lopes
mond = Runtime.daemonName GanetiMond
286 85c48fbb Jose A. Lopes
287 c890f66a Jose A. Lopes
noded :: String
288 c890f66a Jose A. Lopes
noded = Runtime.daemonName GanetiNoded
289 85c48fbb Jose A. Lopes
290 c890f66a Jose A. Lopes
luxid :: String
291 c890f66a Jose A. Lopes
luxid = Runtime.daemonName GanetiLuxid
292 85c48fbb Jose A. Lopes
293 c890f66a Jose A. Lopes
rapi :: String
294 c890f66a Jose A. Lopes
rapi = Runtime.daemonName GanetiRapi
295 85c48fbb Jose A. Lopes
296 c890f66a Jose A. Lopes
daemons :: FrozenSet String
297 c890f66a Jose A. Lopes
daemons =
298 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [confd,
299 c890f66a Jose A. Lopes
                       luxid,
300 c890f66a Jose A. Lopes
                       masterd,
301 c890f66a Jose A. Lopes
                       mond,
302 c890f66a Jose A. Lopes
                       noded,
303 c890f66a Jose A. Lopes
                       rapi]
304 85c48fbb Jose A. Lopes
305 c890f66a Jose A. Lopes
defaultConfdPort :: Int
306 c890f66a Jose A. Lopes
defaultConfdPort = 1814
307 85c48fbb Jose A. Lopes
308 c890f66a Jose A. Lopes
defaultMondPort :: Int
309 c890f66a Jose A. Lopes
defaultMondPort = 1815
310 85c48fbb Jose A. Lopes
311 c890f66a Jose A. Lopes
defaultNodedPort :: Int
312 c890f66a Jose A. Lopes
defaultNodedPort = 1811
313 85c48fbb Jose A. Lopes
314 c890f66a Jose A. Lopes
defaultRapiPort :: Int
315 c890f66a Jose A. Lopes
defaultRapiPort = 5080
316 85c48fbb Jose A. Lopes
317 c890f66a Jose A. Lopes
daemonsPorts :: Map String (Protocol, Int)
318 c890f66a Jose A. Lopes
daemonsPorts =
319 c890f66a Jose A. Lopes
  Map.fromList [(confd, (Udp, defaultConfdPort)),
320 c890f66a Jose A. Lopes
                (mond, (Tcp, defaultMondPort)),
321 c890f66a Jose A. Lopes
                (noded, (Tcp, defaultNodedPort)),
322 c890f66a Jose A. Lopes
                (rapi, (Tcp, defaultRapiPort)),
323 c890f66a Jose A. Lopes
                (ssh, (Tcp, 22))]
324 85c48fbb Jose A. Lopes
325 74129b52 Jose A. Lopes
firstDrbdPort :: Int
326 74129b52 Jose A. Lopes
firstDrbdPort = 11000
327 74129b52 Jose A. Lopes
328 74129b52 Jose A. Lopes
lastDrbdPort :: Int
329 74129b52 Jose A. Lopes
lastDrbdPort = 14999
330 74129b52 Jose A. Lopes
331 c890f66a Jose A. Lopes
daemonsLogbase :: Map String String
332 c890f66a Jose A. Lopes
daemonsLogbase =
333 c890f66a Jose A. Lopes
  Map.fromList
334 c890f66a Jose A. Lopes
  [ (Runtime.daemonName d, Runtime.daemonLogBase d) | d <- [minBound..] ]
335 85c48fbb Jose A. Lopes
336 c890f66a Jose A. Lopes
extraLogreasonAccess :: String
337 c890f66a Jose A. Lopes
extraLogreasonAccess = Runtime.daemonsExtraLogbase GanetiMond AccessLog
338 85c48fbb Jose A. Lopes
339 c890f66a Jose A. Lopes
extraLogreasonError :: String
340 c890f66a Jose A. Lopes
extraLogreasonError = Runtime.daemonsExtraLogbase GanetiMond ErrorLog
341 85c48fbb Jose A. Lopes
342 c890f66a Jose A. Lopes
devConsole :: String
343 c890f66a Jose A. Lopes
devConsole = ConstantUtils.devConsole
344 85c48fbb Jose A. Lopes
345 5d4e1402 Jose A. Lopes
-- * Luxi (Local UniX Interface) related constants
346 5d4e1402 Jose A. Lopes
347 5d4e1402 Jose A. Lopes
luxiEom :: PythonChar
348 5d4e1402 Jose A. Lopes
luxiEom = PythonChar '\x03'
349 5d4e1402 Jose A. Lopes
350 5d4e1402 Jose A. Lopes
-- | Environment variable for the luxi override socket
351 5d4e1402 Jose A. Lopes
luxiOverride :: String
352 5d4e1402 Jose A. Lopes
luxiOverride = "FORCE_LUXI_SOCKET"
353 5d4e1402 Jose A. Lopes
354 5d4e1402 Jose A. Lopes
luxiOverrideMaster :: String
355 5d4e1402 Jose A. Lopes
luxiOverrideMaster = "master"
356 5d4e1402 Jose A. Lopes
357 5d4e1402 Jose A. Lopes
luxiOverrideQuery :: String
358 5d4e1402 Jose A. Lopes
luxiOverrideQuery = "query"
359 5d4e1402 Jose A. Lopes
360 5d4e1402 Jose A. Lopes
luxiVersion :: Int
361 5d4e1402 Jose A. Lopes
luxiVersion = configVersion
362 5d4e1402 Jose A. Lopes
363 c890f66a Jose A. Lopes
-- * Syslog
364 85c48fbb Jose A. Lopes
365 c890f66a Jose A. Lopes
syslogUsage :: String
366 c890f66a Jose A. Lopes
syslogUsage = AutoConf.syslogUsage
367 85c48fbb Jose A. Lopes
368 c890f66a Jose A. Lopes
syslogNo :: String
369 c890f66a Jose A. Lopes
syslogNo = Logging.syslogUsageToRaw SyslogNo
370 85c48fbb Jose A. Lopes
371 c890f66a Jose A. Lopes
syslogYes :: String
372 c890f66a Jose A. Lopes
syslogYes = Logging.syslogUsageToRaw SyslogYes
373 85c48fbb Jose A. Lopes
374 c890f66a Jose A. Lopes
syslogOnly :: String
375 c890f66a Jose A. Lopes
syslogOnly = Logging.syslogUsageToRaw SyslogOnly
376 85c48fbb Jose A. Lopes
377 c890f66a Jose A. Lopes
syslogSocket :: String
378 c890f66a Jose A. Lopes
syslogSocket = "/dev/log"
379 85c48fbb Jose A. Lopes
380 c890f66a Jose A. Lopes
-- * Xen
381 85c48fbb Jose A. Lopes
382 c890f66a Jose A. Lopes
xenBootloader :: String
383 c890f66a Jose A. Lopes
xenBootloader = AutoConf.xenBootloader
384 85c48fbb Jose A. Lopes
385 c890f66a Jose A. Lopes
xenCmdXl :: String
386 c890f66a Jose A. Lopes
xenCmdXl = "xl"
387 85c48fbb Jose A. Lopes
388 c890f66a Jose A. Lopes
xenCmdXm :: String
389 c890f66a Jose A. Lopes
xenCmdXm = "xm"
390 85c48fbb Jose A. Lopes
391 c890f66a Jose A. Lopes
xenInitrd :: String
392 c890f66a Jose A. Lopes
xenInitrd = AutoConf.xenInitrd
393 85c48fbb Jose A. Lopes
394 c890f66a Jose A. Lopes
xenKernel :: String
395 c890f66a Jose A. Lopes
xenKernel = AutoConf.xenKernel
396 85c48fbb Jose A. Lopes
397 c890f66a Jose A. Lopes
-- FIXME: perhaps rename to 'validXenCommands' for consistency with
398 c890f66a Jose A. Lopes
-- other constants
399 c890f66a Jose A. Lopes
knownXenCommands :: FrozenSet String
400 c890f66a Jose A. Lopes
knownXenCommands = ConstantUtils.mkSet [xenCmdXl, xenCmdXm]
401 85c48fbb Jose A. Lopes
402 3b170ad4 Jose A. Lopes
-- * KVM and socat
403 3b170ad4 Jose A. Lopes
404 3b170ad4 Jose A. Lopes
kvmPath :: String
405 3b170ad4 Jose A. Lopes
kvmPath = AutoConf.kvmPath
406 3b170ad4 Jose A. Lopes
407 3b170ad4 Jose A. Lopes
kvmKernel :: String
408 3b170ad4 Jose A. Lopes
kvmKernel = AutoConf.kvmKernel
409 3b170ad4 Jose A. Lopes
410 3b170ad4 Jose A. Lopes
socatEscapeCode :: String
411 3b170ad4 Jose A. Lopes
socatEscapeCode = "0x1d"
412 3b170ad4 Jose A. Lopes
413 3b170ad4 Jose A. Lopes
socatPath :: String
414 3b170ad4 Jose A. Lopes
socatPath = AutoConf.socatPath
415 3b170ad4 Jose A. Lopes
416 3b170ad4 Jose A. Lopes
socatUseCompress :: Bool
417 3b170ad4 Jose A. Lopes
socatUseCompress = AutoConf.socatUseCompress
418 3b170ad4 Jose A. Lopes
419 3b170ad4 Jose A. Lopes
socatUseEscape :: Bool
420 3b170ad4 Jose A. Lopes
socatUseEscape = AutoConf.socatUseEscape
421 3b170ad4 Jose A. Lopes
422 c890f66a Jose A. Lopes
-- * Storage types
423 85c48fbb Jose A. Lopes
424 c890f66a Jose A. Lopes
stBlock :: String
425 c890f66a Jose A. Lopes
stBlock = Types.storageTypeToRaw StorageBlock
426 85c48fbb Jose A. Lopes
427 c890f66a Jose A. Lopes
stDiskless :: String
428 c890f66a Jose A. Lopes
stDiskless = Types.storageTypeToRaw StorageDiskless
429 85c48fbb Jose A. Lopes
430 c890f66a Jose A. Lopes
stExt :: String
431 c890f66a Jose A. Lopes
stExt = Types.storageTypeToRaw StorageExt
432 85c48fbb Jose A. Lopes
433 c890f66a Jose A. Lopes
stFile :: String
434 c890f66a Jose A. Lopes
stFile = Types.storageTypeToRaw StorageFile
435 85c48fbb Jose A. Lopes
436 c890f66a Jose A. Lopes
stLvmPv :: String
437 c890f66a Jose A. Lopes
stLvmPv = Types.storageTypeToRaw StorageLvmPv
438 85c48fbb Jose A. Lopes
439 c890f66a Jose A. Lopes
stLvmVg :: String
440 c890f66a Jose A. Lopes
stLvmVg = Types.storageTypeToRaw StorageLvmVg
441 85c48fbb Jose A. Lopes
442 c890f66a Jose A. Lopes
stRados :: String
443 c890f66a Jose A. Lopes
stRados = Types.storageTypeToRaw StorageRados
444 85c48fbb Jose A. Lopes
445 c890f66a Jose A. Lopes
storageTypes :: FrozenSet String
446 c890f66a Jose A. Lopes
storageTypes = ConstantUtils.mkSet $ map Types.storageTypeToRaw [minBound..]
447 85c48fbb Jose A. Lopes
448 c890f66a Jose A. Lopes
-- * Storage fields
449 c890f66a Jose A. Lopes
-- ** First two are valid in LU context only, not passed to backend
450 85c48fbb Jose A. Lopes
451 c890f66a Jose A. Lopes
sfNode :: String
452 c890f66a Jose A. Lopes
sfNode = "node"
453 85c48fbb Jose A. Lopes
454 c890f66a Jose A. Lopes
sfType :: String
455 c890f66a Jose A. Lopes
sfType = "type"
456 85c48fbb Jose A. Lopes
457 c890f66a Jose A. Lopes
-- ** and the rest are valid in backend
458 85c48fbb Jose A. Lopes
459 c890f66a Jose A. Lopes
sfAllocatable :: String
460 c890f66a Jose A. Lopes
sfAllocatable = Types.storageFieldToRaw SFAllocatable
461 85c48fbb Jose A. Lopes
462 c890f66a Jose A. Lopes
sfFree :: String
463 c890f66a Jose A. Lopes
sfFree = Types.storageFieldToRaw SFFree
464 85c48fbb Jose A. Lopes
465 c890f66a Jose A. Lopes
sfName :: String
466 c890f66a Jose A. Lopes
sfName = Types.storageFieldToRaw SFName
467 85c48fbb Jose A. Lopes
468 c890f66a Jose A. Lopes
sfSize :: String
469 c890f66a Jose A. Lopes
sfSize = Types.storageFieldToRaw SFSize
470 85c48fbb Jose A. Lopes
471 c890f66a Jose A. Lopes
sfUsed :: String
472 c890f66a Jose A. Lopes
sfUsed = Types.storageFieldToRaw SFUsed
473 85c48fbb Jose A. Lopes
474 59bcd180 Jose A. Lopes
-- * Local disk status
475 59bcd180 Jose A. Lopes
476 59bcd180 Jose A. Lopes
ldsFaulty :: Int
477 59bcd180 Jose A. Lopes
ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
478 59bcd180 Jose A. Lopes
479 59bcd180 Jose A. Lopes
ldsOkay :: Int
480 59bcd180 Jose A. Lopes
ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
481 59bcd180 Jose A. Lopes
482 59bcd180 Jose A. Lopes
ldsUnknown :: Int
483 59bcd180 Jose A. Lopes
ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
484 59bcd180 Jose A. Lopes
485 59bcd180 Jose A. Lopes
ldsNames :: Map Int String
486 59bcd180 Jose A. Lopes
ldsNames =
487 59bcd180 Jose A. Lopes
  Map.fromList [ (Types.localDiskStatusToRaw ds,
488 59bcd180 Jose A. Lopes
                  localDiskStatusName ds) | ds <- [minBound..] ]
489 59bcd180 Jose A. Lopes
490 c890f66a Jose A. Lopes
-- * Disk template types
491 85c48fbb Jose A. Lopes
492 c890f66a Jose A. Lopes
dtDiskless :: String
493 c890f66a Jose A. Lopes
dtDiskless = Types.diskTemplateToRaw DTDiskless
494 85c48fbb Jose A. Lopes
495 c890f66a Jose A. Lopes
dtFile :: String
496 c890f66a Jose A. Lopes
dtFile = Types.diskTemplateToRaw DTFile
497 85c48fbb Jose A. Lopes
498 c890f66a Jose A. Lopes
dtSharedFile :: String
499 c890f66a Jose A. Lopes
dtSharedFile = Types.diskTemplateToRaw DTSharedFile
500 85c48fbb Jose A. Lopes
501 c890f66a Jose A. Lopes
dtPlain :: String
502 c890f66a Jose A. Lopes
dtPlain = Types.diskTemplateToRaw DTPlain
503 85c48fbb Jose A. Lopes
504 c890f66a Jose A. Lopes
dtBlock :: String
505 c890f66a Jose A. Lopes
dtBlock = Types.diskTemplateToRaw DTBlock
506 85c48fbb Jose A. Lopes
507 c890f66a Jose A. Lopes
dtDrbd8 :: String
508 c890f66a Jose A. Lopes
dtDrbd8 = Types.diskTemplateToRaw DTDrbd8
509 85c48fbb Jose A. Lopes
510 c890f66a Jose A. Lopes
dtRbd :: String
511 c890f66a Jose A. Lopes
dtRbd = Types.diskTemplateToRaw DTRbd
512 85c48fbb Jose A. Lopes
513 c890f66a Jose A. Lopes
dtExt :: String
514 c890f66a Jose A. Lopes
dtExt = Types.diskTemplateToRaw DTExt
515 85c48fbb Jose A. Lopes
516 c890f66a Jose A. Lopes
-- | This is used to order determine the default disk template when
517 c890f66a Jose A. Lopes
-- the list of enabled disk templates is inferred from the current
518 c890f66a Jose A. Lopes
-- state of the cluster.  This only happens on an upgrade from a
519 c890f66a Jose A. Lopes
-- version of Ganeti that did not support the 'enabled_disk_templates'
520 c890f66a Jose A. Lopes
-- so far.
521 c890f66a Jose A. Lopes
diskTemplatePreference :: [String]
522 c890f66a Jose A. Lopes
diskTemplatePreference =
523 c890f66a Jose A. Lopes
  map Types.diskTemplateToRaw
524 c890f66a Jose A. Lopes
  [DTBlock, DTDiskless, DTDrbd8, DTExt, DTFile, DTPlain, DTRbd, DTSharedFile]
525 85c48fbb Jose A. Lopes
526 c890f66a Jose A. Lopes
diskTemplates :: FrozenSet String
527 c890f66a Jose A. Lopes
diskTemplates = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [minBound..]
528 85c48fbb Jose A. Lopes
529 c890f66a Jose A. Lopes
-- | Disk templates that are enabled by default
530 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates :: [String]
531 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
532 85c48fbb Jose A. Lopes
533 4c1275f9 Jose A. Lopes
-- | The set of network-mirrored disk templates
534 4c1275f9 Jose A. Lopes
dtsIntMirror :: FrozenSet String
535 4c1275f9 Jose A. Lopes
dtsIntMirror = ConstantUtils.mkSet [dtDrbd8]
536 4c1275f9 Jose A. Lopes
537 4c1275f9 Jose A. Lopes
-- | 'DTDiskless' is 'trivially' externally mirrored
538 4c1275f9 Jose A. Lopes
dtsExtMirror :: FrozenSet String
539 4c1275f9 Jose A. Lopes
dtsExtMirror =
540 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
541 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTDiskless, DTBlock, DTExt, DTSharedFile, DTRbd]
542 4c1275f9 Jose A. Lopes
543 4c1275f9 Jose A. Lopes
-- | The set of non-lvm-based disk templates
544 4c1275f9 Jose A. Lopes
dtsNotLvm :: FrozenSet String
545 4c1275f9 Jose A. Lopes
dtsNotLvm =
546 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
547 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
548 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDiskless, DTBlock, DTExt, DTFile, DTRbd]
549 4c1275f9 Jose A. Lopes
550 4c1275f9 Jose A. Lopes
-- | The set of disk templates which can be grown
551 4c1275f9 Jose A. Lopes
dtsGrowable :: FrozenSet String
552 4c1275f9 Jose A. Lopes
dtsGrowable =
553 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
554 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
555 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDrbd8, DTPlain, DTExt, DTFile, DTRbd]
556 4c1275f9 Jose A. Lopes
557 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow adoption
558 4c1275f9 Jose A. Lopes
dtsMayAdopt :: FrozenSet String
559 4c1275f9 Jose A. Lopes
dtsMayAdopt =
560 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTBlock, DTPlain]
561 4c1275f9 Jose A. Lopes
562 4c1275f9 Jose A. Lopes
-- | The set of disk templates that *must* use adoption
563 4c1275f9 Jose A. Lopes
dtsMustAdopt :: FrozenSet String
564 4c1275f9 Jose A. Lopes
dtsMustAdopt = ConstantUtils.mkSet [Types.diskTemplateToRaw DTBlock]
565 4c1275f9 Jose A. Lopes
566 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow migrations
567 4c1275f9 Jose A. Lopes
dtsMirrored :: FrozenSet String
568 4c1275f9 Jose A. Lopes
dtsMirrored = dtsIntMirror `ConstantUtils.union` dtsExtMirror
569 4c1275f9 Jose A. Lopes
570 4c1275f9 Jose A. Lopes
-- | The set of file based disk templates
571 4c1275f9 Jose A. Lopes
dtsFilebased :: FrozenSet String
572 4c1275f9 Jose A. Lopes
dtsFilebased =
573 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTSharedFile, DTFile]
574 4c1275f9 Jose A. Lopes
575 4c1275f9 Jose A. Lopes
-- | The set of disk templates that can be moved by copying
576 4c1275f9 Jose A. Lopes
--
577 4c1275f9 Jose A. Lopes
-- Note: a requirement is that they're not accessed externally or
578 4c1275f9 Jose A. Lopes
-- shared between nodes; in particular, sharedfile is not suitable.
579 4c1275f9 Jose A. Lopes
dtsCopyable :: FrozenSet String
580 4c1275f9 Jose A. Lopes
dtsCopyable =
581 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTFile]
582 4c1275f9 Jose A. Lopes
583 4c1275f9 Jose A. Lopes
-- | The set of disk templates that are supported by exclusive_storage
584 4c1275f9 Jose A. Lopes
dtsExclStorage :: FrozenSet String
585 4c1275f9 Jose A. Lopes
dtsExclStorage = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain]
586 4c1275f9 Jose A. Lopes
587 4c1275f9 Jose A. Lopes
-- | Templates for which we don't perform checks on free space
588 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck :: FrozenSet String
589 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck =
590 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
591 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTExt, DTSharedFile, DTFile, DTRbd]
592 4c1275f9 Jose A. Lopes
593 4c1275f9 Jose A. Lopes
dtsBlock :: FrozenSet String
594 4c1275f9 Jose A. Lopes
dtsBlock =
595 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
596 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTPlain, DTDrbd8, DTBlock, DTRbd, DTExt]
597 4c1275f9 Jose A. Lopes
598 c890f66a Jose A. Lopes
-- * File backend driver
599 85c48fbb Jose A. Lopes
600 c890f66a Jose A. Lopes
fdBlktap :: String
601 c890f66a Jose A. Lopes
fdBlktap = Types.fileDriverToRaw FileBlktap
602 85c48fbb Jose A. Lopes
603 c890f66a Jose A. Lopes
fdLoop :: String
604 c890f66a Jose A. Lopes
fdLoop = Types.fileDriverToRaw FileLoop
605 85c48fbb Jose A. Lopes
606 ad6f2bf3 Jose A. Lopes
fileDriver :: FrozenSet String
607 ad6f2bf3 Jose A. Lopes
fileDriver =
608 ad6f2bf3 Jose A. Lopes
  ConstantUtils.mkSet $
609 ad6f2bf3 Jose A. Lopes
  map Types.fileDriverToRaw [minBound..]
610 ad6f2bf3 Jose A. Lopes
611 59bcd180 Jose A. Lopes
-- | The set of drbd-like disk types
612 59bcd180 Jose A. Lopes
ldsDrbd :: FrozenSet String
613 59bcd180 Jose A. Lopes
ldsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
614 59bcd180 Jose A. Lopes
615 c890f66a Jose A. Lopes
-- * Disk access mode
616 85c48fbb Jose A. Lopes
617 c890f66a Jose A. Lopes
diskRdonly :: String
618 c890f66a Jose A. Lopes
diskRdonly = Types.diskModeToRaw DiskRdOnly
619 85c48fbb Jose A. Lopes
620 c890f66a Jose A. Lopes
diskRdwr :: String
621 c890f66a Jose A. Lopes
diskRdwr = Types.diskModeToRaw DiskRdWr
622 85c48fbb Jose A. Lopes
623 c890f66a Jose A. Lopes
diskAccessSet :: FrozenSet String
624 c890f66a Jose A. Lopes
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
625 85c48fbb Jose A. Lopes
626 a5450d2a Jose A. Lopes
-- * Disk replacement mode
627 a5450d2a Jose A. Lopes
628 a5450d2a Jose A. Lopes
replaceDiskAuto :: String
629 a5450d2a Jose A. Lopes
replaceDiskAuto = Types.replaceDisksModeToRaw ReplaceAuto
630 a5450d2a Jose A. Lopes
631 a5450d2a Jose A. Lopes
replaceDiskChg :: String
632 a5450d2a Jose A. Lopes
replaceDiskChg = Types.replaceDisksModeToRaw ReplaceNewSecondary
633 a5450d2a Jose A. Lopes
634 a5450d2a Jose A. Lopes
replaceDiskPri :: String
635 a5450d2a Jose A. Lopes
replaceDiskPri = Types.replaceDisksModeToRaw ReplaceOnPrimary
636 a5450d2a Jose A. Lopes
637 a5450d2a Jose A. Lopes
replaceDiskSec :: String
638 a5450d2a Jose A. Lopes
replaceDiskSec = Types.replaceDisksModeToRaw ReplaceOnSecondary
639 a5450d2a Jose A. Lopes
640 a5450d2a Jose A. Lopes
replaceModes :: FrozenSet String
641 a5450d2a Jose A. Lopes
replaceModes =
642 a5450d2a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.replaceDisksModeToRaw [minBound..]
643 a5450d2a Jose A. Lopes
644 c890f66a Jose A. Lopes
-- * Instance export mode
645 85c48fbb Jose A. Lopes
646 c890f66a Jose A. Lopes
exportModeLocal :: String
647 c890f66a Jose A. Lopes
exportModeLocal = Types.exportModeToRaw ExportModeLocal
648 85c48fbb Jose A. Lopes
649 c890f66a Jose A. Lopes
exportModeRemote :: String
650 c890f66a Jose A. Lopes
exportModeRemote = Types.exportModeToRaw ExportModeRemote
651 85c48fbb Jose A. Lopes
652 c890f66a Jose A. Lopes
exportModes :: FrozenSet String
653 c890f66a Jose A. Lopes
exportModes = ConstantUtils.mkSet $ map Types.exportModeToRaw [minBound..]
654 85c48fbb Jose A. Lopes
655 c890f66a Jose A. Lopes
-- * Instance creation modes
656 85c48fbb Jose A. Lopes
657 c890f66a Jose A. Lopes
instanceCreate :: String
658 c890f66a Jose A. Lopes
instanceCreate = Types.instCreateModeToRaw InstCreate
659 85c48fbb Jose A. Lopes
660 c890f66a Jose A. Lopes
instanceImport :: String
661 c890f66a Jose A. Lopes
instanceImport = Types.instCreateModeToRaw InstImport
662 85c48fbb Jose A. Lopes
663 c890f66a Jose A. Lopes
instanceRemoteImport :: String
664 c890f66a Jose A. Lopes
instanceRemoteImport = Types.instCreateModeToRaw InstRemoteImport
665 85c48fbb Jose A. Lopes
666 c890f66a Jose A. Lopes
instanceCreateModes :: FrozenSet String
667 c890f66a Jose A. Lopes
instanceCreateModes =
668 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.instCreateModeToRaw [minBound..]
669 9413ef24 Jose A. Lopes
670 c890f66a Jose A. Lopes
-- * Dynamic device modification
671 9413ef24 Jose A. Lopes
672 c890f66a Jose A. Lopes
ddmAdd :: String
673 c890f66a Jose A. Lopes
ddmAdd = Types.ddmFullToRaw DdmFullAdd
674 1b2adaa6 Jose A. Lopes
675 c890f66a Jose A. Lopes
ddmModify :: String
676 c890f66a Jose A. Lopes
ddmModify = Types.ddmFullToRaw DdmFullModify
677 1b2adaa6 Jose A. Lopes
678 c890f66a Jose A. Lopes
ddmRemove :: String
679 c890f66a Jose A. Lopes
ddmRemove = Types.ddmFullToRaw DdmFullRemove
680 9413ef24 Jose A. Lopes
681 c890f66a Jose A. Lopes
ddmsValues :: FrozenSet String
682 c890f66a Jose A. Lopes
ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
683 5867e439 Jose A. Lopes
684 c890f66a Jose A. Lopes
ddmsValuesWithModify :: FrozenSet String
685 c890f66a Jose A. Lopes
ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
686 5867e439 Jose A. Lopes
687 c890f66a Jose A. Lopes
-- * Common exit codes
688 5867e439 Jose A. Lopes
689 c890f66a Jose A. Lopes
exitSuccess :: Int
690 c890f66a Jose A. Lopes
exitSuccess = 0
691 5867e439 Jose A. Lopes
692 c890f66a Jose A. Lopes
exitFailure :: Int
693 c890f66a Jose A. Lopes
exitFailure = ConstantUtils.exitFailure
694 5867e439 Jose A. Lopes
695 c890f66a Jose A. Lopes
exitNotcluster :: Int
696 c890f66a Jose A. Lopes
exitNotcluster = 5
697 5867e439 Jose A. Lopes
698 c890f66a Jose A. Lopes
exitNotmaster :: Int
699 c890f66a Jose A. Lopes
exitNotmaster = 11
700 5867e439 Jose A. Lopes
701 c890f66a Jose A. Lopes
exitNodesetupError :: Int
702 c890f66a Jose A. Lopes
exitNodesetupError = 12
703 26eca119 Jose A. Lopes
704 c890f66a Jose A. Lopes
-- | Need user confirmation
705 c890f66a Jose A. Lopes
exitConfirmation :: Int
706 c890f66a Jose A. Lopes
exitConfirmation = 13
707 85c48fbb Jose A. Lopes
708 c890f66a Jose A. Lopes
-- | Exit code for query operations with unknown fields
709 c890f66a Jose A. Lopes
exitUnknownField :: Int
710 c890f66a Jose A. Lopes
exitUnknownField = 14
711 85c48fbb Jose A. Lopes
712 c890f66a Jose A. Lopes
-- * Tags
713 85c48fbb Jose A. Lopes
714 c890f66a Jose A. Lopes
tagCluster :: String
715 c890f66a Jose A. Lopes
tagCluster = Types.tagKindToRaw TagKindCluster
716 85c48fbb Jose A. Lopes
717 c890f66a Jose A. Lopes
tagInstance :: String
718 c890f66a Jose A. Lopes
tagInstance = Types.tagKindToRaw TagKindInstance
719 85c48fbb Jose A. Lopes
720 c890f66a Jose A. Lopes
tagNetwork :: String
721 c890f66a Jose A. Lopes
tagNetwork = Types.tagKindToRaw TagKindNetwork
722 85c48fbb Jose A. Lopes
723 c890f66a Jose A. Lopes
tagNode :: String
724 c890f66a Jose A. Lopes
tagNode = Types.tagKindToRaw TagKindNode
725 85c48fbb Jose A. Lopes
726 c890f66a Jose A. Lopes
tagNodegroup :: String
727 c890f66a Jose A. Lopes
tagNodegroup = Types.tagKindToRaw TagKindGroup
728 85c48fbb Jose A. Lopes
729 c890f66a Jose A. Lopes
validTagTypes :: FrozenSet String
730 c890f66a Jose A. Lopes
validTagTypes = ConstantUtils.mkSet $ map Types.tagKindToRaw [minBound..]
731 85c48fbb Jose A. Lopes
732 c890f66a Jose A. Lopes
maxTagLen :: Int
733 c890f66a Jose A. Lopes
maxTagLen = 128
734 85c48fbb Jose A. Lopes
735 c890f66a Jose A. Lopes
maxTagsPerObj :: Int
736 c890f66a Jose A. Lopes
maxTagsPerObj = 4096
737 85c48fbb Jose A. Lopes
738 61e32567 Jose A. Lopes
-- | Node clock skew in seconds
739 61e32567 Jose A. Lopes
nodeMaxClockSkew :: Int
740 61e32567 Jose A. Lopes
nodeMaxClockSkew = 150
741 61e32567 Jose A. Lopes
742 3b170ad4 Jose A. Lopes
-- | Disk index separator
743 3b170ad4 Jose A. Lopes
diskSeparator :: String
744 3b170ad4 Jose A. Lopes
diskSeparator = AutoConf.diskSeparator
745 3b170ad4 Jose A. Lopes
746 c03224f6 Jose A. Lopes
-- * Timeout table
747 c03224f6 Jose A. Lopes
--
748 c03224f6 Jose A. Lopes
-- Various time constants for the timeout table
749 c03224f6 Jose A. Lopes
750 c03224f6 Jose A. Lopes
rpcTmoUrgent :: Int
751 c03224f6 Jose A. Lopes
rpcTmoUrgent = Types.rpcTimeoutToRaw Urgent
752 c03224f6 Jose A. Lopes
753 c03224f6 Jose A. Lopes
rpcTmoFast :: Int
754 c03224f6 Jose A. Lopes
rpcTmoFast = Types.rpcTimeoutToRaw Fast
755 c03224f6 Jose A. Lopes
756 c03224f6 Jose A. Lopes
rpcTmoNormal :: Int
757 c03224f6 Jose A. Lopes
rpcTmoNormal = Types.rpcTimeoutToRaw Normal
758 c03224f6 Jose A. Lopes
759 c03224f6 Jose A. Lopes
rpcTmoSlow :: Int
760 c03224f6 Jose A. Lopes
rpcTmoSlow = Types.rpcTimeoutToRaw Slow
761 c03224f6 Jose A. Lopes
762 c03224f6 Jose A. Lopes
-- | 'rpcTmo_4hrs' contains an underscore to circumvent a limitation
763 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
764 c03224f6 Jose A. Lopes
-- Python name.
765 c03224f6 Jose A. Lopes
rpcTmo_4hrs :: Int
766 c03224f6 Jose A. Lopes
rpcTmo_4hrs = Types.rpcTimeoutToRaw FourHours
767 c03224f6 Jose A. Lopes
768 c03224f6 Jose A. Lopes
-- | 'rpcTmo_1day' contains an underscore to circumvent a limitation
769 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
770 c03224f6 Jose A. Lopes
-- Python name.
771 c03224f6 Jose A. Lopes
rpcTmo_1day :: Int
772 c03224f6 Jose A. Lopes
rpcTmo_1day = Types.rpcTimeoutToRaw OneDay
773 c03224f6 Jose A. Lopes
774 c03224f6 Jose A. Lopes
-- | Timeout for connecting to nodes (seconds)
775 c03224f6 Jose A. Lopes
rpcConnectTimeout :: Int
776 c03224f6 Jose A. Lopes
rpcConnectTimeout = 5
777 c03224f6 Jose A. Lopes
778 a91d6b30 Jose A. Lopes
-- * VTypes
779 a91d6b30 Jose A. Lopes
780 a91d6b30 Jose A. Lopes
vtypeBool :: VType
781 a91d6b30 Jose A. Lopes
vtypeBool = VTypeBool
782 a91d6b30 Jose A. Lopes
783 a91d6b30 Jose A. Lopes
vtypeInt :: VType
784 a91d6b30 Jose A. Lopes
vtypeInt = VTypeInt
785 a91d6b30 Jose A. Lopes
786 a91d6b30 Jose A. Lopes
vtypeMaybeString :: VType
787 a91d6b30 Jose A. Lopes
vtypeMaybeString = VTypeMaybeString
788 a91d6b30 Jose A. Lopes
789 a91d6b30 Jose A. Lopes
-- | Size in MiBs
790 a91d6b30 Jose A. Lopes
vtypeSize :: VType
791 a91d6b30 Jose A. Lopes
vtypeSize = VTypeSize
792 a91d6b30 Jose A. Lopes
793 a91d6b30 Jose A. Lopes
vtypeString :: VType
794 a91d6b30 Jose A. Lopes
vtypeString = VTypeString
795 a91d6b30 Jose A. Lopes
796 a91d6b30 Jose A. Lopes
enforceableTypes :: FrozenSet VType
797 a91d6b30 Jose A. Lopes
enforceableTypes = ConstantUtils.mkSet [minBound..]
798 8397ffde Jose A. Lopes
799 8397ffde Jose A. Lopes
-- | Instance specs
800 8397ffde Jose A. Lopes
--
801 8397ffde Jose A. Lopes
-- FIXME: these should be associated with 'Ganeti.HTools.Types.ISpec'
802 8397ffde Jose A. Lopes
803 8397ffde Jose A. Lopes
ispecMemSize :: String
804 8397ffde Jose A. Lopes
ispecMemSize = ConstantUtils.ispecMemSize
805 8397ffde Jose A. Lopes
806 8397ffde Jose A. Lopes
ispecCpuCount :: String
807 8397ffde Jose A. Lopes
ispecCpuCount = ConstantUtils.ispecCpuCount
808 8397ffde Jose A. Lopes
809 8397ffde Jose A. Lopes
ispecDiskCount :: String
810 8397ffde Jose A. Lopes
ispecDiskCount = ConstantUtils.ispecDiskCount
811 8397ffde Jose A. Lopes
812 8397ffde Jose A. Lopes
ispecDiskSize :: String
813 8397ffde Jose A. Lopes
ispecDiskSize = ConstantUtils.ispecDiskSize
814 8397ffde Jose A. Lopes
815 8397ffde Jose A. Lopes
ispecNicCount :: String
816 8397ffde Jose A. Lopes
ispecNicCount = ConstantUtils.ispecNicCount
817 8397ffde Jose A. Lopes
818 8397ffde Jose A. Lopes
ispecSpindleUse :: String
819 8397ffde Jose A. Lopes
ispecSpindleUse = ConstantUtils.ispecSpindleUse
820 8397ffde Jose A. Lopes
821 8397ffde Jose A. Lopes
ispecsParameterTypes :: Map String VType
822 8397ffde Jose A. Lopes
ispecsParameterTypes =
823 8397ffde Jose A. Lopes
  Map.fromList
824 8397ffde Jose A. Lopes
  [(ConstantUtils.ispecDiskSize, VTypeInt),
825 8397ffde Jose A. Lopes
   (ConstantUtils.ispecCpuCount, VTypeInt),
826 8397ffde Jose A. Lopes
   (ConstantUtils.ispecSpindleUse, VTypeInt),
827 8397ffde Jose A. Lopes
   (ConstantUtils.ispecMemSize, VTypeInt),
828 8397ffde Jose A. Lopes
   (ConstantUtils.ispecNicCount, VTypeInt),
829 8397ffde Jose A. Lopes
   (ConstantUtils.ispecDiskCount, VTypeInt)]
830 8397ffde Jose A. Lopes
831 8397ffde Jose A. Lopes
ispecsParameters :: FrozenSet String
832 8397ffde Jose A. Lopes
ispecsParameters =
833 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ispecCpuCount,
834 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskCount,
835 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskSize,
836 8397ffde Jose A. Lopes
                       ConstantUtils.ispecMemSize,
837 8397ffde Jose A. Lopes
                       ConstantUtils.ispecNicCount,
838 8397ffde Jose A. Lopes
                       ConstantUtils.ispecSpindleUse]
839 8397ffde Jose A. Lopes
840 8397ffde Jose A. Lopes
ispecsMinmax :: String
841 8397ffde Jose A. Lopes
ispecsMinmax = ConstantUtils.ispecsMinmax
842 8397ffde Jose A. Lopes
843 8397ffde Jose A. Lopes
ispecsMax :: String
844 8397ffde Jose A. Lopes
ispecsMax = "max"
845 8397ffde Jose A. Lopes
846 8397ffde Jose A. Lopes
ispecsMin :: String
847 8397ffde Jose A. Lopes
ispecsMin = "min"
848 8397ffde Jose A. Lopes
849 8397ffde Jose A. Lopes
ispecsStd :: String
850 8397ffde Jose A. Lopes
ispecsStd = ConstantUtils.ispecsStd
851 8397ffde Jose A. Lopes
852 8397ffde Jose A. Lopes
ipolicyDts :: String
853 8397ffde Jose A. Lopes
ipolicyDts = ConstantUtils.ipolicyDts
854 8397ffde Jose A. Lopes
855 8397ffde Jose A. Lopes
ipolicyVcpuRatio :: String
856 8397ffde Jose A. Lopes
ipolicyVcpuRatio = ConstantUtils.ipolicyVcpuRatio
857 8397ffde Jose A. Lopes
858 8397ffde Jose A. Lopes
ipolicySpindleRatio :: String
859 8397ffde Jose A. Lopes
ipolicySpindleRatio = ConstantUtils.ipolicySpindleRatio
860 8397ffde Jose A. Lopes
861 8397ffde Jose A. Lopes
ispecsMinmaxKeys :: FrozenSet String
862 8397ffde Jose A. Lopes
ispecsMinmaxKeys = ConstantUtils.mkSet [ispecsMax, ispecsMin]
863 8397ffde Jose A. Lopes
864 8397ffde Jose A. Lopes
ipolicyParameters :: FrozenSet String
865 8397ffde Jose A. Lopes
ipolicyParameters =
866 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyVcpuRatio,
867 8397ffde Jose A. Lopes
                       ConstantUtils.ipolicySpindleRatio]
868 8397ffde Jose A. Lopes
869 8397ffde Jose A. Lopes
ipolicyAllKeys :: FrozenSet String
870 8397ffde Jose A. Lopes
ipolicyAllKeys =
871 8397ffde Jose A. Lopes
  ConstantUtils.union ipolicyParameters $
872 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyDts,
873 8397ffde Jose A. Lopes
                       ConstantUtils.ispecsMinmax,
874 8397ffde Jose A. Lopes
                       ispecsStd]
875 8397ffde Jose A. Lopes
876 ecf43dcb Jose A. Lopes
-- | Node parameter names
877 ecf43dcb Jose A. Lopes
878 ecf43dcb Jose A. Lopes
ndExclusiveStorage :: String
879 ecf43dcb Jose A. Lopes
ndExclusiveStorage = "exclusive_storage"
880 ecf43dcb Jose A. Lopes
881 ecf43dcb Jose A. Lopes
ndOobProgram :: String
882 ecf43dcb Jose A. Lopes
ndOobProgram = "oob_program"
883 ecf43dcb Jose A. Lopes
884 ecf43dcb Jose A. Lopes
ndSpindleCount :: String
885 ecf43dcb Jose A. Lopes
ndSpindleCount = "spindle_count"
886 ecf43dcb Jose A. Lopes
887 ecf43dcb Jose A. Lopes
ndOvs :: String
888 ecf43dcb Jose A. Lopes
ndOvs = "ovs"
889 ecf43dcb Jose A. Lopes
890 ecf43dcb Jose A. Lopes
ndOvsLink :: String
891 ecf43dcb Jose A. Lopes
ndOvsLink = "ovs_link"
892 ecf43dcb Jose A. Lopes
893 ecf43dcb Jose A. Lopes
ndOvsName :: String
894 ecf43dcb Jose A. Lopes
ndOvsName = "ovs_name"
895 ecf43dcb Jose A. Lopes
896 ecf43dcb Jose A. Lopes
ndsParameterTypes :: Map String VType
897 ecf43dcb Jose A. Lopes
ndsParameterTypes =
898 ecf43dcb Jose A. Lopes
  Map.fromList
899 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, VTypeBool),
900 ecf43dcb Jose A. Lopes
   (ndOobProgram, VTypeString),
901 ecf43dcb Jose A. Lopes
   (ndOvs, VTypeBool),
902 ecf43dcb Jose A. Lopes
   (ndOvsLink, VTypeMaybeString),
903 ecf43dcb Jose A. Lopes
   (ndOvsName, VTypeMaybeString),
904 ecf43dcb Jose A. Lopes
   (ndSpindleCount, VTypeInt)]
905 ecf43dcb Jose A. Lopes
906 ecf43dcb Jose A. Lopes
ndsParameters :: FrozenSet String
907 ecf43dcb Jose A. Lopes
ndsParameters = ConstantUtils.mkSet (Map.keys ndsParameterTypes)
908 ecf43dcb Jose A. Lopes
909 ecf43dcb Jose A. Lopes
ndsParameterTitles :: Map String String
910 ecf43dcb Jose A. Lopes
ndsParameterTitles =
911 ecf43dcb Jose A. Lopes
  Map.fromList
912 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, "ExclusiveStorage"),
913 ecf43dcb Jose A. Lopes
   (ndOobProgram, "OutOfBandProgram"),
914 ecf43dcb Jose A. Lopes
   (ndOvs, "OpenvSwitch"),
915 ecf43dcb Jose A. Lopes
   (ndOvsLink, "OpenvSwitchLink"),
916 ecf43dcb Jose A. Lopes
   (ndOvsName, "OpenvSwitchName"),
917 ecf43dcb Jose A. Lopes
   (ndSpindleCount, "SpindleCount")]
918 ecf43dcb Jose A. Lopes
919 3b170ad4 Jose A. Lopes
ipCommandPath :: String
920 3b170ad4 Jose A. Lopes
ipCommandPath = AutoConf.ipPath
921 3b170ad4 Jose A. Lopes
922 c890f66a Jose A. Lopes
-- * Reboot types
923 85c48fbb Jose A. Lopes
924 c890f66a Jose A. Lopes
instanceRebootSoft :: String
925 c890f66a Jose A. Lopes
instanceRebootSoft = Types.rebootTypeToRaw RebootSoft
926 85c48fbb Jose A. Lopes
927 c890f66a Jose A. Lopes
instanceRebootHard :: String
928 c890f66a Jose A. Lopes
instanceRebootHard = Types.rebootTypeToRaw RebootHard
929 85c48fbb Jose A. Lopes
930 c890f66a Jose A. Lopes
instanceRebootFull :: String
931 c890f66a Jose A. Lopes
instanceRebootFull = Types.rebootTypeToRaw RebootFull
932 85c48fbb Jose A. Lopes
933 c890f66a Jose A. Lopes
rebootTypes :: FrozenSet String
934 c890f66a Jose A. Lopes
rebootTypes = ConstantUtils.mkSet $ map Types.rebootTypeToRaw [minBound..]
935 85c48fbb Jose A. Lopes
936 85c48fbb Jose A. Lopes
937 85c48fbb Jose A. Lopes
938 85c48fbb Jose A. Lopes
939 85c48fbb Jose A. Lopes
940 85c48fbb Jose A. Lopes
941 85c48fbb Jose A. Lopes
942 85c48fbb Jose A. Lopes
943 c890f66a Jose A. Lopes
-- * OOB supported commands
944 85c48fbb Jose A. Lopes
945 c890f66a Jose A. Lopes
oobPowerOn :: String
946 c890f66a Jose A. Lopes
oobPowerOn = Types.oobCommandToRaw OobPowerOn
947 85c48fbb Jose A. Lopes
948 c890f66a Jose A. Lopes
oobPowerOff :: String
949 c890f66a Jose A. Lopes
oobPowerOff = Types.oobCommandToRaw OobPowerOff
950 85c48fbb Jose A. Lopes
951 c890f66a Jose A. Lopes
oobPowerCycle :: String
952 c890f66a Jose A. Lopes
oobPowerCycle = Types.oobCommandToRaw OobPowerCycle
953 85c48fbb Jose A. Lopes
954 c890f66a Jose A. Lopes
oobPowerStatus :: String
955 c890f66a Jose A. Lopes
oobPowerStatus = Types.oobCommandToRaw OobPowerStatus
956 85c48fbb Jose A. Lopes
957 c890f66a Jose A. Lopes
oobHealth :: String
958 c890f66a Jose A. Lopes
oobHealth = Types.oobCommandToRaw OobHealth
959 85c48fbb Jose A. Lopes
960 c890f66a Jose A. Lopes
oobCommands :: FrozenSet String
961 c890f66a Jose A. Lopes
oobCommands = ConstantUtils.mkSet $ map Types.oobCommandToRaw [minBound..]
962 85c48fbb Jose A. Lopes
963 c890f66a Jose A. Lopes
oobPowerStatusPowered :: String
964 c890f66a Jose A. Lopes
oobPowerStatusPowered = "powered"
965 85c48fbb Jose A. Lopes
966 c890f66a Jose A. Lopes
-- | 60 seconds
967 c890f66a Jose A. Lopes
oobTimeout :: Int
968 c890f66a Jose A. Lopes
oobTimeout = 60
969 85c48fbb Jose A. Lopes
970 c890f66a Jose A. Lopes
-- | 2 seconds
971 c890f66a Jose A. Lopes
oobPowerDelay :: Double
972 c890f66a Jose A. Lopes
oobPowerDelay = 2.0
973 85c48fbb Jose A. Lopes
974 c890f66a Jose A. Lopes
oobStatusCritical :: String
975 c890f66a Jose A. Lopes
oobStatusCritical = Types.oobStatusToRaw OobStatusCritical
976 85c48fbb Jose A. Lopes
977 c890f66a Jose A. Lopes
oobStatusOk :: String
978 c890f66a Jose A. Lopes
oobStatusOk = Types.oobStatusToRaw OobStatusOk
979 85c48fbb Jose A. Lopes
980 c890f66a Jose A. Lopes
oobStatusUnknown :: String
981 c890f66a Jose A. Lopes
oobStatusUnknown = Types.oobStatusToRaw OobStatusUnknown
982 85c48fbb Jose A. Lopes
983 c890f66a Jose A. Lopes
oobStatusWarning :: String
984 c890f66a Jose A. Lopes
oobStatusWarning = Types.oobStatusToRaw OobStatusWarning
985 85c48fbb Jose A. Lopes
986 c890f66a Jose A. Lopes
oobStatuses :: FrozenSet String
987 c890f66a Jose A. Lopes
oobStatuses = ConstantUtils.mkSet $ map Types.oobStatusToRaw [minBound..]
988 85c48fbb Jose A. Lopes
989 c890f66a Jose A. Lopes
-- * NIC_* constants are used inside the ganeti config
990 85c48fbb Jose A. Lopes
991 c890f66a Jose A. Lopes
nicLink :: String
992 c890f66a Jose A. Lopes
nicLink = "link"
993 85c48fbb Jose A. Lopes
994 c890f66a Jose A. Lopes
nicMode :: String
995 c890f66a Jose A. Lopes
nicMode = "mode"
996 85c48fbb Jose A. Lopes
997 c890f66a Jose A. Lopes
nicVlan :: String
998 c890f66a Jose A. Lopes
nicVlan = "vlan"
999 85c48fbb Jose A. Lopes
1000 c890f66a Jose A. Lopes
nicModeBridged :: String
1001 c890f66a Jose A. Lopes
nicModeBridged = Types.nICModeToRaw NMBridged
1002 85c48fbb Jose A. Lopes
1003 c890f66a Jose A. Lopes
nicModeRouted :: String
1004 c890f66a Jose A. Lopes
nicModeRouted = Types.nICModeToRaw NMRouted
1005 85c48fbb Jose A. Lopes
1006 c890f66a Jose A. Lopes
nicModeOvs :: String
1007 c890f66a Jose A. Lopes
nicModeOvs = Types.nICModeToRaw NMOvs
1008 85c48fbb Jose A. Lopes
1009 c890f66a Jose A. Lopes
nicIpPool :: String
1010 c890f66a Jose A. Lopes
nicIpPool = Types.nICModeToRaw NMPool
1011 85c48fbb Jose A. Lopes
1012 c890f66a Jose A. Lopes
nicValidModes :: FrozenSet String
1013 c890f66a Jose A. Lopes
nicValidModes = ConstantUtils.mkSet $ map Types.nICModeToRaw [minBound..]
1014 85c48fbb Jose A. Lopes
1015 c890f66a Jose A. Lopes
-- * Hypervisor constants
1016 85c48fbb Jose A. Lopes
1017 c890f66a Jose A. Lopes
htXenPvm :: String
1018 c890f66a Jose A. Lopes
htXenPvm = Types.hypervisorToRaw XenPvm
1019 85c48fbb Jose A. Lopes
1020 c890f66a Jose A. Lopes
htFake :: String
1021 c890f66a Jose A. Lopes
htFake = Types.hypervisorToRaw Fake
1022 85c48fbb Jose A. Lopes
1023 c890f66a Jose A. Lopes
htXenHvm :: String
1024 c890f66a Jose A. Lopes
htXenHvm = Types.hypervisorToRaw XenHvm
1025 85c48fbb Jose A. Lopes
1026 c890f66a Jose A. Lopes
htKvm :: String
1027 c890f66a Jose A. Lopes
htKvm = Types.hypervisorToRaw Kvm
1028 85c48fbb Jose A. Lopes
1029 c890f66a Jose A. Lopes
htChroot :: String
1030 c890f66a Jose A. Lopes
htChroot = Types.hypervisorToRaw Chroot
1031 85c48fbb Jose A. Lopes
1032 c890f66a Jose A. Lopes
htLxc :: String
1033 c890f66a Jose A. Lopes
htLxc = Types.hypervisorToRaw Lxc
1034 85c48fbb Jose A. Lopes
1035 c890f66a Jose A. Lopes
hyperTypes :: FrozenSet String
1036 c890f66a Jose A. Lopes
hyperTypes = ConstantUtils.mkSet $ map Types.hypervisorToRaw [minBound..]
1037 85c48fbb Jose A. Lopes
1038 c890f66a Jose A. Lopes
htsReqPort :: FrozenSet String
1039 c890f66a Jose A. Lopes
htsReqPort = ConstantUtils.mkSet [htXenHvm, htKvm]
1040 85c48fbb Jose A. Lopes
1041 c890f66a Jose A. Lopes
-- * Migration type
1042 26eca119 Jose A. Lopes
1043 c890f66a Jose A. Lopes
htMigrationLive :: String
1044 c890f66a Jose A. Lopes
htMigrationLive = Types.migrationModeToRaw MigrationLive
1045 26eca119 Jose A. Lopes
1046 c890f66a Jose A. Lopes
htMigrationNonlive :: String
1047 c890f66a Jose A. Lopes
htMigrationNonlive = Types.migrationModeToRaw MigrationNonLive
1048 26eca119 Jose A. Lopes
1049 c890f66a Jose A. Lopes
htMigrationModes :: FrozenSet String
1050 c890f66a Jose A. Lopes
htMigrationModes =
1051 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.migrationModeToRaw [minBound..]
1052 26eca119 Jose A. Lopes
1053 c890f66a Jose A. Lopes
-- * Cluster verify steps
1054 26eca119 Jose A. Lopes
1055 c890f66a Jose A. Lopes
verifyNplusoneMem :: String
1056 c890f66a Jose A. Lopes
verifyNplusoneMem = Types.verifyOptionalChecksToRaw VerifyNPlusOneMem
1057 26eca119 Jose A. Lopes
1058 c890f66a Jose A. Lopes
verifyOptionalChecks :: FrozenSet String
1059 c890f66a Jose A. Lopes
verifyOptionalChecks =
1060 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.verifyOptionalChecksToRaw [minBound..]
1061 26eca119 Jose A. Lopes
1062 c890f66a Jose A. Lopes
-- * Cluster Verify error classes
1063 26eca119 Jose A. Lopes
1064 c890f66a Jose A. Lopes
cvTcluster :: String
1065 c890f66a Jose A. Lopes
cvTcluster = "cluster"
1066 26eca119 Jose A. Lopes
1067 c890f66a Jose A. Lopes
cvTgroup :: String
1068 c890f66a Jose A. Lopes
cvTgroup = "group"
1069 26eca119 Jose A. Lopes
1070 c890f66a Jose A. Lopes
cvTnode :: String
1071 c890f66a Jose A. Lopes
cvTnode = "node"
1072 26eca119 Jose A. Lopes
1073 c890f66a Jose A. Lopes
cvTinstance :: String
1074 c890f66a Jose A. Lopes
cvTinstance = "instance"
1075 26eca119 Jose A. Lopes
1076 c890f66a Jose A. Lopes
-- * Cluster Verify error codes and documentation
1077 26eca119 Jose A. Lopes
1078 c890f66a Jose A. Lopes
cvEclustercert :: (String, String, String)
1079 c890f66a Jose A. Lopes
cvEclustercert =
1080 c890f66a Jose A. Lopes
  ("cluster",
1081 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCERT,
1082 c890f66a Jose A. Lopes
   "Cluster certificate files verification failure")
1083 26eca119 Jose A. Lopes
1084 c890f66a Jose A. Lopes
cvEclustercfg :: (String, String, String)
1085 c890f66a Jose A. Lopes
cvEclustercfg =
1086 c890f66a Jose A. Lopes
  ("cluster",
1087 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCFG,
1088 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
1089 26eca119 Jose A. Lopes
1090 c890f66a Jose A. Lopes
cvEclusterdanglinginst :: (String, String, String)
1091 c890f66a Jose A. Lopes
cvEclusterdanglinginst =
1092 c890f66a Jose A. Lopes
  ("node",
1093 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGINST,
1094 c890f66a Jose A. Lopes
   "Some instances have a non-existing primary node")
1095 26eca119 Jose A. Lopes
1096 c890f66a Jose A. Lopes
cvEclusterdanglingnodes :: (String, String, String)
1097 c890f66a Jose A. Lopes
cvEclusterdanglingnodes =
1098 c890f66a Jose A. Lopes
  ("node",
1099 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGNODES,
1100 c890f66a Jose A. Lopes
   "Some nodes belong to non-existing groups")
1101 f361a6ee Jose A. Lopes
1102 c890f66a Jose A. Lopes
cvEclusterfilecheck :: (String, String, String)
1103 c890f66a Jose A. Lopes
cvEclusterfilecheck =
1104 c890f66a Jose A. Lopes
  ("cluster",
1105 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERFILECHECK,
1106 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
1107 f361a6ee Jose A. Lopes
1108 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize :: (String, String, String)
1109 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize =
1110 c890f66a Jose A. Lopes
  ("group",
1111 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEGROUPDIFFERENTPVSIZE,
1112 c890f66a Jose A. Lopes
   "PVs in the group have different sizes")
1113 f361a6ee Jose A. Lopes
1114 c890f66a Jose A. Lopes
cvEinstancebadnode :: (String, String, String)
1115 c890f66a Jose A. Lopes
cvEinstancebadnode =
1116 c890f66a Jose A. Lopes
  ("instance",
1117 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEBADNODE,
1118 c890f66a Jose A. Lopes
   "Instance marked as running lives on an offline node")
1119 f361a6ee Jose A. Lopes
1120 c890f66a Jose A. Lopes
cvEinstancedown :: (String, String, String)
1121 c890f66a Jose A. Lopes
cvEinstancedown =
1122 c890f66a Jose A. Lopes
  ("instance",
1123 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEDOWN,
1124 c890f66a Jose A. Lopes
   "Instance not running on its primary node")
1125 f361a6ee Jose A. Lopes
1126 c890f66a Jose A. Lopes
cvEinstancefaultydisk :: (String, String, String)
1127 c890f66a Jose A. Lopes
cvEinstancefaultydisk =
1128 c890f66a Jose A. Lopes
  ("instance",
1129 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEFAULTYDISK,
1130 c890f66a Jose A. Lopes
   "Impossible to retrieve status for a disk")
1131 f361a6ee Jose A. Lopes
1132 c890f66a Jose A. Lopes
cvEinstancelayout :: (String, String, String)
1133 c890f66a Jose A. Lopes
cvEinstancelayout =
1134 c890f66a Jose A. Lopes
  ("instance",
1135 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCELAYOUT,
1136 c890f66a Jose A. Lopes
   "Instance has multiple secondary nodes")
1137 f361a6ee Jose A. Lopes
1138 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter :: (String, String, String)
1139 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter =
1140 c890f66a Jose A. Lopes
  ("instance",
1141 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGCFGPARAMETER,
1142 c890f66a Jose A. Lopes
   "A configuration parameter for an instance is missing")
1143 f361a6ee Jose A. Lopes
1144 c890f66a Jose A. Lopes
cvEinstancemissingdisk :: (String, String, String)
1145 c890f66a Jose A. Lopes
cvEinstancemissingdisk =
1146 c890f66a Jose A. Lopes
  ("instance",
1147 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGDISK,
1148 c890f66a Jose A. Lopes
   "Missing volume on an instance")
1149 f361a6ee Jose A. Lopes
1150 c890f66a Jose A. Lopes
cvEinstancepolicy :: (String, String, String)
1151 c890f66a Jose A. Lopes
cvEinstancepolicy =
1152 c890f66a Jose A. Lopes
  ("instance",
1153 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEPOLICY,
1154 c890f66a Jose A. Lopes
   "Instance does not meet policy")
1155 f361a6ee Jose A. Lopes
1156 c890f66a Jose A. Lopes
cvEinstancesplitgroups :: (String, String, String)
1157 c890f66a Jose A. Lopes
cvEinstancesplitgroups =
1158 c890f66a Jose A. Lopes
  ("instance",
1159 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCESPLITGROUPS,
1160 c890f66a Jose A. Lopes
   "Instance with primary and secondary nodes in different groups")
1161 f361a6ee Jose A. Lopes
1162 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode :: (String, String, String)
1163 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode =
1164 c890f66a Jose A. Lopes
  ("instance",
1165 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEUNSUITABLENODE,
1166 c890f66a Jose A. Lopes
   "Instance running on nodes that are not suitable for it")
1167 f361a6ee Jose A. Lopes
1168 c890f66a Jose A. Lopes
cvEinstancewrongnode :: (String, String, String)
1169 c890f66a Jose A. Lopes
cvEinstancewrongnode =
1170 c890f66a Jose A. Lopes
  ("instance",
1171 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEWRONGNODE,
1172 c890f66a Jose A. Lopes
   "Instance running on the wrong node")
1173 6dc0cb59 Jose A. Lopes
1174 c890f66a Jose A. Lopes
cvEnodedrbd :: (String, String, String)
1175 c890f66a Jose A. Lopes
cvEnodedrbd =
1176 c890f66a Jose A. Lopes
  ("node",
1177 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBD,
1178 c890f66a Jose A. Lopes
   "Error parsing the DRBD status file")
1179 6dc0cb59 Jose A. Lopes
1180 c890f66a Jose A. Lopes
cvEnodedrbdhelper :: (String, String, String)
1181 c890f66a Jose A. Lopes
cvEnodedrbdhelper =
1182 c890f66a Jose A. Lopes
  ("node",
1183 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDHELPER,
1184 c890f66a Jose A. Lopes
   "Error caused by the DRBD helper")
1185 6dc0cb59 Jose A. Lopes
1186 c890f66a Jose A. Lopes
cvEnodedrbdversion :: (String, String, String)
1187 c890f66a Jose A. Lopes
cvEnodedrbdversion =
1188 c890f66a Jose A. Lopes
  ("node",
1189 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDVERSION,
1190 c890f66a Jose A. Lopes
   "DRBD version mismatch within a node group")
1191 6dc0cb59 Jose A. Lopes
1192 c890f66a Jose A. Lopes
cvEnodefilecheck :: (String, String, String)
1193 c890f66a Jose A. Lopes
cvEnodefilecheck =
1194 c890f66a Jose A. Lopes
  ("node",
1195 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILECHECK,
1196 c890f66a Jose A. Lopes
   "Error retrieving the checksum of the node files")
1197 6dc0cb59 Jose A. Lopes
1198 c890f66a Jose A. Lopes
cvEnodefilestoragepaths :: (String, String, String)
1199 c890f66a Jose A. Lopes
cvEnodefilestoragepaths =
1200 c890f66a Jose A. Lopes
  ("node",
1201 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHS,
1202 c890f66a Jose A. Lopes
   "Detected bad file storage paths")
1203 856eb53c Jose A. Lopes
1204 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable :: (String, String, String)
1205 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable =
1206 c890f66a Jose A. Lopes
  ("node",
1207 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHUNUSABLE,
1208 c890f66a Jose A. Lopes
   "File storage path unusable")
1209 1c31b263 Jose A. Lopes
1210 c890f66a Jose A. Lopes
cvEnodehooks :: (String, String, String)
1211 c890f66a Jose A. Lopes
cvEnodehooks =
1212 c890f66a Jose A. Lopes
  ("node",
1213 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHOOKS,
1214 c890f66a Jose A. Lopes
   "Communication failure in hooks execution")
1215 1c31b263 Jose A. Lopes
1216 c890f66a Jose A. Lopes
cvEnodehv :: (String, String, String)
1217 c890f66a Jose A. Lopes
cvEnodehv =
1218 c890f66a Jose A. Lopes
  ("node",
1219 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHV,
1220 c890f66a Jose A. Lopes
   "Hypervisor parameters verification failure")
1221 df726590 Jose A. Lopes
1222 c890f66a Jose A. Lopes
cvEnodelvm :: (String, String, String)
1223 c890f66a Jose A. Lopes
cvEnodelvm =
1224 c890f66a Jose A. Lopes
  ("node",
1225 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODELVM,
1226 c890f66a Jose A. Lopes
   "LVM-related node error")
1227 df726590 Jose A. Lopes
1228 c890f66a Jose A. Lopes
cvEnoden1 :: (String, String, String)
1229 c890f66a Jose A. Lopes
cvEnoden1 =
1230 c890f66a Jose A. Lopes
  ("node",
1231 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEN1,
1232 c890f66a Jose A. Lopes
   "Not enough memory to accommodate instance failovers")
1233 df726590 Jose A. Lopes
1234 c890f66a Jose A. Lopes
cvEnodenet :: (String, String, String)
1235 c890f66a Jose A. Lopes
cvEnodenet =
1236 c890f66a Jose A. Lopes
  ("node",
1237 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODENET,
1238 c890f66a Jose A. Lopes
   "Network-related node error")
1239 df726590 Jose A. Lopes
1240 c890f66a Jose A. Lopes
cvEnodeoobpath :: (String, String, String)
1241 c890f66a Jose A. Lopes
cvEnodeoobpath =
1242 c890f66a Jose A. Lopes
  ("node",
1243 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOOBPATH,
1244 c890f66a Jose A. Lopes
   "Invalid Out Of Band path")
1245 df726590 Jose A. Lopes
1246 c890f66a Jose A. Lopes
cvEnodeorphaninstance :: (String, String, String)
1247 c890f66a Jose A. Lopes
cvEnodeorphaninstance =
1248 c890f66a Jose A. Lopes
  ("node",
1249 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANINSTANCE,
1250 c890f66a Jose A. Lopes
   "Unknown intance running on a node")
1251 df726590 Jose A. Lopes
1252 c890f66a Jose A. Lopes
cvEnodeorphanlv :: (String, String, String)
1253 c890f66a Jose A. Lopes
cvEnodeorphanlv =
1254 c890f66a Jose A. Lopes
  ("node",
1255 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANLV,
1256 c890f66a Jose A. Lopes
   "Unknown LVM logical volume")
1257 df726590 Jose A. Lopes
1258 c890f66a Jose A. Lopes
cvEnodeos :: (String, String, String)
1259 c890f66a Jose A. Lopes
cvEnodeos =
1260 c890f66a Jose A. Lopes
  ("node",
1261 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOS,
1262 c890f66a Jose A. Lopes
   "OS-related node error")
1263 7236533e Jose A. Lopes
1264 c890f66a Jose A. Lopes
cvEnoderpc :: (String, String, String)
1265 c890f66a Jose A. Lopes
cvEnoderpc =
1266 c890f66a Jose A. Lopes
  ("node",
1267 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODERPC,
1268 c890f66a Jose A. Lopes
   "Error during connection to the primary node of an instance")
1269 7236533e Jose A. Lopes
1270 c890f66a Jose A. Lopes
cvEnodesetup :: (String, String, String)
1271 c890f66a Jose A. Lopes
cvEnodesetup =
1272 c890f66a Jose A. Lopes
  ("node",
1273 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESETUP,
1274 c890f66a Jose A. Lopes
   "Node setup error")
1275 7236533e Jose A. Lopes
1276 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable :: (String, String, String)
1277 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable =
1278 c890f66a Jose A. Lopes
  ("node",
1279 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESHAREDFILESTORAGEPATHUNUSABLE,
1280 c890f66a Jose A. Lopes
   "Shared file storage path unusable")
1281 7236533e Jose A. Lopes
1282 c890f66a Jose A. Lopes
cvEnodessh :: (String, String, String)
1283 c890f66a Jose A. Lopes
cvEnodessh =
1284 c890f66a Jose A. Lopes
  ("node",
1285 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESSH,
1286 c890f66a Jose A. Lopes
   "SSH-related node error")
1287 7236533e Jose A. Lopes
1288 c890f66a Jose A. Lopes
cvEnodetime :: (String, String, String)
1289 c890f66a Jose A. Lopes
cvEnodetime =
1290 c890f66a Jose A. Lopes
  ("node",
1291 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODETIME,
1292 c890f66a Jose A. Lopes
   "Node returned invalid time")
1293 7236533e Jose A. Lopes
1294 c890f66a Jose A. Lopes
cvEnodeuserscripts :: (String, String, String)
1295 c890f66a Jose A. Lopes
cvEnodeuserscripts =
1296 c890f66a Jose A. Lopes
  ("node",
1297 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEUSERSCRIPTS,
1298 c890f66a Jose A. Lopes
   "User scripts not present or not executable")
1299 7236533e Jose A. Lopes
1300 c890f66a Jose A. Lopes
cvEnodeversion :: (String, String, String)
1301 c890f66a Jose A. Lopes
cvEnodeversion =
1302 c890f66a Jose A. Lopes
  ("node",
1303 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEVERSION,
1304 c890f66a Jose A. Lopes
   "Protocol version mismatch or Ganeti version mismatch")
1305 85c48fbb Jose A. Lopes
1306 c890f66a Jose A. Lopes
cvAllEcodes :: FrozenSet (String, String, String)
1307 c890f66a Jose A. Lopes
cvAllEcodes =
1308 c890f66a Jose A. Lopes
  ConstantUtils.mkSet
1309 c890f66a Jose A. Lopes
  [cvEclustercert,
1310 c890f66a Jose A. Lopes
   cvEclustercfg,
1311 c890f66a Jose A. Lopes
   cvEclusterdanglinginst,
1312 c890f66a Jose A. Lopes
   cvEclusterdanglingnodes,
1313 c890f66a Jose A. Lopes
   cvEclusterfilecheck,
1314 c890f66a Jose A. Lopes
   cvEgroupdifferentpvsize,
1315 c890f66a Jose A. Lopes
   cvEinstancebadnode,
1316 c890f66a Jose A. Lopes
   cvEinstancedown,
1317 c890f66a Jose A. Lopes
   cvEinstancefaultydisk,
1318 c890f66a Jose A. Lopes
   cvEinstancelayout,
1319 c890f66a Jose A. Lopes
   cvEinstancemissingcfgparameter,
1320 c890f66a Jose A. Lopes
   cvEinstancemissingdisk,
1321 c890f66a Jose A. Lopes
   cvEinstancepolicy,
1322 c890f66a Jose A. Lopes
   cvEinstancesplitgroups,
1323 c890f66a Jose A. Lopes
   cvEinstanceunsuitablenode,
1324 c890f66a Jose A. Lopes
   cvEinstancewrongnode,
1325 c890f66a Jose A. Lopes
   cvEnodedrbd,
1326 c890f66a Jose A. Lopes
   cvEnodedrbdhelper,
1327 c890f66a Jose A. Lopes
   cvEnodedrbdversion,
1328 c890f66a Jose A. Lopes
   cvEnodefilecheck,
1329 c890f66a Jose A. Lopes
   cvEnodefilestoragepaths,
1330 c890f66a Jose A. Lopes
   cvEnodefilestoragepathunusable,
1331 c890f66a Jose A. Lopes
   cvEnodehooks,
1332 c890f66a Jose A. Lopes
   cvEnodehv,
1333 c890f66a Jose A. Lopes
   cvEnodelvm,
1334 c890f66a Jose A. Lopes
   cvEnoden1,
1335 c890f66a Jose A. Lopes
   cvEnodenet,
1336 c890f66a Jose A. Lopes
   cvEnodeoobpath,
1337 c890f66a Jose A. Lopes
   cvEnodeorphaninstance,
1338 c890f66a Jose A. Lopes
   cvEnodeorphanlv,
1339 c890f66a Jose A. Lopes
   cvEnodeos,
1340 c890f66a Jose A. Lopes
   cvEnoderpc,
1341 c890f66a Jose A. Lopes
   cvEnodesetup,
1342 c890f66a Jose A. Lopes
   cvEnodesharedfilestoragepathunusable,
1343 c890f66a Jose A. Lopes
   cvEnodessh,
1344 c890f66a Jose A. Lopes
   cvEnodetime,
1345 c890f66a Jose A. Lopes
   cvEnodeuserscripts,
1346 c890f66a Jose A. Lopes
   cvEnodeversion]
1347 85c48fbb Jose A. Lopes
1348 c890f66a Jose A. Lopes
cvAllEcodesStrings :: FrozenSet String
1349 c890f66a Jose A. Lopes
cvAllEcodesStrings =
1350 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.cVErrorCodeToRaw [minBound..]
1351 85c48fbb Jose A. Lopes
1352 c890f66a Jose A. Lopes
-- * Instance status
1353 85c48fbb Jose A. Lopes
1354 c890f66a Jose A. Lopes
inststAdmindown :: String
1355 c890f66a Jose A. Lopes
inststAdmindown = Types.instanceStatusToRaw StatusDown
1356 85c48fbb Jose A. Lopes
1357 c890f66a Jose A. Lopes
inststAdminoffline :: String
1358 c890f66a Jose A. Lopes
inststAdminoffline = Types.instanceStatusToRaw StatusOffline
1359 85c48fbb Jose A. Lopes
1360 c890f66a Jose A. Lopes
inststErrordown :: String
1361 c890f66a Jose A. Lopes
inststErrordown = Types.instanceStatusToRaw ErrorDown
1362 85c48fbb Jose A. Lopes
1363 c890f66a Jose A. Lopes
inststErrorup :: String
1364 c890f66a Jose A. Lopes
inststErrorup = Types.instanceStatusToRaw ErrorUp
1365 85c48fbb Jose A. Lopes
1366 c890f66a Jose A. Lopes
inststNodedown :: String
1367 c890f66a Jose A. Lopes
inststNodedown = Types.instanceStatusToRaw NodeDown
1368 85c48fbb Jose A. Lopes
1369 c890f66a Jose A. Lopes
inststNodeoffline :: String
1370 c890f66a Jose A. Lopes
inststNodeoffline = Types.instanceStatusToRaw NodeOffline
1371 37248170 Jose A. Lopes
1372 c890f66a Jose A. Lopes
inststRunning :: String
1373 c890f66a Jose A. Lopes
inststRunning = Types.instanceStatusToRaw Running
1374 37248170 Jose A. Lopes
1375 c890f66a Jose A. Lopes
inststWrongnode :: String
1376 c890f66a Jose A. Lopes
inststWrongnode = Types.instanceStatusToRaw WrongNode
1377 37248170 Jose A. Lopes
1378 c890f66a Jose A. Lopes
inststAll :: FrozenSet String
1379 c890f66a Jose A. Lopes
inststAll = ConstantUtils.mkSet $ map Types.instanceStatusToRaw [minBound..]
1380 37248170 Jose A. Lopes
1381 c890f66a Jose A. Lopes
-- * Admin states
1382 37248170 Jose A. Lopes
1383 c890f66a Jose A. Lopes
adminstDown :: String
1384 c890f66a Jose A. Lopes
adminstDown = Types.adminStateToRaw AdminDown
1385 37248170 Jose A. Lopes
1386 c890f66a Jose A. Lopes
adminstOffline :: String
1387 c890f66a Jose A. Lopes
adminstOffline = Types.adminStateToRaw AdminOffline
1388 37248170 Jose A. Lopes
1389 c890f66a Jose A. Lopes
adminstUp :: String
1390 c890f66a Jose A. Lopes
adminstUp = Types.adminStateToRaw AdminUp
1391 37248170 Jose A. Lopes
1392 c890f66a Jose A. Lopes
adminstAll :: FrozenSet String
1393 c890f66a Jose A. Lopes
adminstAll = ConstantUtils.mkSet $ map Types.adminStateToRaw [minBound..]
1394 37248170 Jose A. Lopes
1395 c890f66a Jose A. Lopes
-- * Node roles
1396 85c48fbb Jose A. Lopes
1397 c890f66a Jose A. Lopes
nrDrained :: String
1398 c890f66a Jose A. Lopes
nrDrained = Types.nodeRoleToRaw NRDrained
1399 85c48fbb Jose A. Lopes
1400 c890f66a Jose A. Lopes
nrMaster :: String
1401 c890f66a Jose A. Lopes
nrMaster = Types.nodeRoleToRaw NRMaster
1402 85c48fbb Jose A. Lopes
1403 c890f66a Jose A. Lopes
nrMcandidate :: String
1404 c890f66a Jose A. Lopes
nrMcandidate = Types.nodeRoleToRaw NRCandidate
1405 85c48fbb Jose A. Lopes
1406 c890f66a Jose A. Lopes
nrOffline :: String
1407 c890f66a Jose A. Lopes
nrOffline = Types.nodeRoleToRaw NROffline
1408 85c48fbb Jose A. Lopes
1409 c890f66a Jose A. Lopes
nrRegular :: String
1410 c890f66a Jose A. Lopes
nrRegular = Types.nodeRoleToRaw NRRegular
1411 85c48fbb Jose A. Lopes
1412 c890f66a Jose A. Lopes
nrAll :: FrozenSet String
1413 c890f66a Jose A. Lopes
nrAll = ConstantUtils.mkSet $ map Types.nodeRoleToRaw [minBound..]
1414 85c48fbb Jose A. Lopes
1415 c890f66a Jose A. Lopes
-- * Allocator framework constants
1416 85c48fbb Jose A. Lopes
1417 c890f66a Jose A. Lopes
iallocatorVersion :: Int
1418 c890f66a Jose A. Lopes
iallocatorVersion = 2
1419 85c48fbb Jose A. Lopes
1420 c890f66a Jose A. Lopes
iallocatorDirIn :: String
1421 c890f66a Jose A. Lopes
iallocatorDirIn = Types.iAllocatorTestDirToRaw IAllocatorDirIn
1422 85c48fbb Jose A. Lopes
1423 c890f66a Jose A. Lopes
iallocatorDirOut :: String
1424 c890f66a Jose A. Lopes
iallocatorDirOut = Types.iAllocatorTestDirToRaw IAllocatorDirOut
1425 85c48fbb Jose A. Lopes
1426 c890f66a Jose A. Lopes
validIallocatorDirections :: FrozenSet String
1427 c890f66a Jose A. Lopes
validIallocatorDirections =
1428 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorTestDirToRaw [minBound..]
1429 85c48fbb Jose A. Lopes
1430 c890f66a Jose A. Lopes
iallocatorModeAlloc :: String
1431 c890f66a Jose A. Lopes
iallocatorModeAlloc = Types.iAllocatorModeToRaw IAllocatorAlloc
1432 85c48fbb Jose A. Lopes
1433 c890f66a Jose A. Lopes
iallocatorModeChgGroup :: String
1434 c890f66a Jose A. Lopes
iallocatorModeChgGroup = Types.iAllocatorModeToRaw IAllocatorChangeGroup
1435 85c48fbb Jose A. Lopes
1436 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc :: String
1437 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc = Types.iAllocatorModeToRaw IAllocatorMultiAlloc
1438 85c48fbb Jose A. Lopes
1439 c890f66a Jose A. Lopes
iallocatorModeNodeEvac :: String
1440 c890f66a Jose A. Lopes
iallocatorModeNodeEvac = Types.iAllocatorModeToRaw IAllocatorNodeEvac
1441 5867e439 Jose A. Lopes
1442 c890f66a Jose A. Lopes
iallocatorModeReloc :: String
1443 c890f66a Jose A. Lopes
iallocatorModeReloc = Types.iAllocatorModeToRaw IAllocatorReloc
1444 5867e439 Jose A. Lopes
1445 c890f66a Jose A. Lopes
validIallocatorModes :: FrozenSet String
1446 c890f66a Jose A. Lopes
validIallocatorModes =
1447 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorModeToRaw [minBound..]
1448 5867e439 Jose A. Lopes
1449 c890f66a Jose A. Lopes
iallocatorSearchPath :: [String]
1450 c890f66a Jose A. Lopes
iallocatorSearchPath = AutoConf.iallocatorSearchPath
1451 5867e439 Jose A. Lopes
1452 c890f66a Jose A. Lopes
defaultIallocatorShortcut :: String
1453 c890f66a Jose A. Lopes
defaultIallocatorShortcut = "."
1454 85c48fbb Jose A. Lopes
1455 c890f66a Jose A. Lopes
-- * Node evacuation
1456 85c48fbb Jose A. Lopes
1457 c890f66a Jose A. Lopes
nodeEvacPri :: String
1458 d067f40b Jose A. Lopes
nodeEvacPri = Types.evacModeToRaw ChangePrimary
1459 85c48fbb Jose A. Lopes
1460 c890f66a Jose A. Lopes
nodeEvacSec :: String
1461 d067f40b Jose A. Lopes
nodeEvacSec = Types.evacModeToRaw ChangeSecondary
1462 85c48fbb Jose A. Lopes
1463 c890f66a Jose A. Lopes
nodeEvacAll :: String
1464 d067f40b Jose A. Lopes
nodeEvacAll = Types.evacModeToRaw ChangeAll
1465 85c48fbb Jose A. Lopes
1466 c890f66a Jose A. Lopes
nodeEvacModes :: FrozenSet String
1467 d067f40b Jose A. Lopes
nodeEvacModes = ConstantUtils.mkSet $ map Types.evacModeToRaw [minBound..]
1468 85c48fbb Jose A. Lopes
1469 c890f66a Jose A. Lopes
-- * Job status
1470 85c48fbb Jose A. Lopes
1471 c890f66a Jose A. Lopes
jobStatusQueued :: String
1472 c890f66a Jose A. Lopes
jobStatusQueued = Types.jobStatusToRaw JOB_STATUS_QUEUED
1473 85c48fbb Jose A. Lopes
1474 c890f66a Jose A. Lopes
jobStatusWaiting :: String
1475 c890f66a Jose A. Lopes
jobStatusWaiting = Types.jobStatusToRaw JOB_STATUS_WAITING
1476 85c48fbb Jose A. Lopes
1477 c890f66a Jose A. Lopes
jobStatusCanceling :: String
1478 c890f66a Jose A. Lopes
jobStatusCanceling = Types.jobStatusToRaw JOB_STATUS_CANCELING
1479 85c48fbb Jose A. Lopes
1480 c890f66a Jose A. Lopes
jobStatusRunning :: String
1481 c890f66a Jose A. Lopes
jobStatusRunning = Types.jobStatusToRaw JOB_STATUS_RUNNING
1482 85c48fbb Jose A. Lopes
1483 c890f66a Jose A. Lopes
jobStatusCanceled :: String
1484 c890f66a Jose A. Lopes
jobStatusCanceled = Types.jobStatusToRaw JOB_STATUS_CANCELED
1485 43a9e860 Jose A. Lopes
1486 c890f66a Jose A. Lopes
jobStatusSuccess :: String
1487 c890f66a Jose A. Lopes
jobStatusSuccess = Types.jobStatusToRaw JOB_STATUS_SUCCESS
1488 43a9e860 Jose A. Lopes
1489 c890f66a Jose A. Lopes
jobStatusError :: String
1490 c890f66a Jose A. Lopes
jobStatusError = Types.jobStatusToRaw JOB_STATUS_ERROR
1491 43a9e860 Jose A. Lopes
1492 c890f66a Jose A. Lopes
jobsPending :: FrozenSet String
1493 c890f66a Jose A. Lopes
jobsPending =
1494 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [jobStatusQueued, jobStatusWaiting, jobStatusCanceling]
1495 43a9e860 Jose A. Lopes
1496 c890f66a Jose A. Lopes
jobsFinalized :: FrozenSet String
1497 c890f66a Jose A. Lopes
jobsFinalized =
1498 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.finalizedJobStatusToRaw [minBound..]
1499 43a9e860 Jose A. Lopes
1500 c890f66a Jose A. Lopes
jobStatusAll :: FrozenSet String
1501 c890f66a Jose A. Lopes
jobStatusAll = ConstantUtils.mkSet $ map Types.jobStatusToRaw [minBound..]
1502 43a9e860 Jose A. Lopes
1503 c890f66a Jose A. Lopes
-- * OpCode status
1504 43a9e860 Jose A. Lopes
1505 c890f66a Jose A. Lopes
-- ** Not yet finalized opcodes
1506 43a9e860 Jose A. Lopes
1507 c890f66a Jose A. Lopes
opStatusCanceling :: String
1508 c890f66a Jose A. Lopes
opStatusCanceling = "canceling"
1509 85c48fbb Jose A. Lopes
1510 c890f66a Jose A. Lopes
opStatusQueued :: String
1511 c890f66a Jose A. Lopes
opStatusQueued = "queued"
1512 85c48fbb Jose A. Lopes
1513 c890f66a Jose A. Lopes
opStatusRunning :: String
1514 c890f66a Jose A. Lopes
opStatusRunning = "running"
1515 85c48fbb Jose A. Lopes
1516 c890f66a Jose A. Lopes
opStatusWaiting :: String
1517 c890f66a Jose A. Lopes
opStatusWaiting = "waiting"
1518 85c48fbb Jose A. Lopes
1519 c890f66a Jose A. Lopes
-- ** Finalized opcodes
1520 85c48fbb Jose A. Lopes
1521 c890f66a Jose A. Lopes
opStatusCanceled :: String
1522 c890f66a Jose A. Lopes
opStatusCanceled = "canceled"
1523 85c48fbb Jose A. Lopes
1524 c890f66a Jose A. Lopes
opStatusError :: String
1525 c890f66a Jose A. Lopes
opStatusError = "error"
1526 85c48fbb Jose A. Lopes
1527 c890f66a Jose A. Lopes
opStatusSuccess :: String
1528 c890f66a Jose A. Lopes
opStatusSuccess = "success"
1529 85c48fbb Jose A. Lopes
1530 c890f66a Jose A. Lopes
opsFinalized :: FrozenSet String
1531 c890f66a Jose A. Lopes
opsFinalized =
1532 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [opStatusCanceled, opStatusError, opStatusSuccess]
1533 85c48fbb Jose A. Lopes
1534 c890f66a Jose A. Lopes
-- * OpCode priority
1535 85c48fbb Jose A. Lopes
1536 c890f66a Jose A. Lopes
opPrioLowest :: Int
1537 c890f66a Jose A. Lopes
opPrioLowest = 19
1538 85c48fbb Jose A. Lopes
1539 c890f66a Jose A. Lopes
opPrioHighest :: Int
1540 c890f66a Jose A. Lopes
opPrioHighest = -20
1541 85c48fbb Jose A. Lopes
1542 c890f66a Jose A. Lopes
opPrioLow :: Int
1543 c890f66a Jose A. Lopes
opPrioLow = Types.opSubmitPriorityToRaw OpPrioLow
1544 85c48fbb Jose A. Lopes
1545 c890f66a Jose A. Lopes
opPrioNormal :: Int
1546 c890f66a Jose A. Lopes
opPrioNormal = Types.opSubmitPriorityToRaw OpPrioNormal
1547 85c48fbb Jose A. Lopes
1548 c890f66a Jose A. Lopes
opPrioHigh :: Int
1549 c890f66a Jose A. Lopes
opPrioHigh = Types.opSubmitPriorityToRaw OpPrioHigh
1550 5867e439 Jose A. Lopes
1551 c890f66a Jose A. Lopes
opPrioSubmitValid :: FrozenSet Int
1552 c890f66a Jose A. Lopes
opPrioSubmitValid = ConstantUtils.mkSet [opPrioLow, opPrioNormal, opPrioHigh]
1553 5867e439 Jose A. Lopes
1554 c890f66a Jose A. Lopes
opPrioDefault :: Int
1555 c890f66a Jose A. Lopes
opPrioDefault = opPrioNormal
1556 5867e439 Jose A. Lopes
1557 c890f66a Jose A. Lopes
-- * Execution log types
1558 5867e439 Jose A. Lopes
1559 c890f66a Jose A. Lopes
elogMessage :: String
1560 c890f66a Jose A. Lopes
elogMessage = Types.eLogTypeToRaw ELogMessage
1561 5867e439 Jose A. Lopes
1562 c890f66a Jose A. Lopes
elogRemoteImport :: String
1563 c890f66a Jose A. Lopes
elogRemoteImport = Types.eLogTypeToRaw ELogRemoteImport
1564 5867e439 Jose A. Lopes
1565 c890f66a Jose A. Lopes
elogJqueueTest :: String
1566 c890f66a Jose A. Lopes
elogJqueueTest = Types.eLogTypeToRaw ELogJqueueTest
1567 5867e439 Jose A. Lopes
1568 cdac0552 Jose A. Lopes
-- * Confd
1569 cdac0552 Jose A. Lopes
1570 cdac0552 Jose A. Lopes
confdProtocolVersion :: Int
1571 cdac0552 Jose A. Lopes
confdProtocolVersion = ConstantUtils.confdProtocolVersion
1572 cdac0552 Jose A. Lopes
1573 cdac0552 Jose A. Lopes
-- Confd request type
1574 cdac0552 Jose A. Lopes
1575 cdac0552 Jose A. Lopes
confdReqPing :: Int
1576 cdac0552 Jose A. Lopes
confdReqPing = Types.confdRequestTypeToRaw ReqPing
1577 cdac0552 Jose A. Lopes
1578 cdac0552 Jose A. Lopes
confdReqNodeRoleByname :: Int
1579 cdac0552 Jose A. Lopes
confdReqNodeRoleByname = Types.confdRequestTypeToRaw ReqNodeRoleByName
1580 cdac0552 Jose A. Lopes
1581 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp :: Int
1582 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp = Types.confdRequestTypeToRaw ReqNodePipByInstPip
1583 cdac0552 Jose A. Lopes
1584 cdac0552 Jose A. Lopes
confdReqClusterMaster :: Int
1585 cdac0552 Jose A. Lopes
confdReqClusterMaster = Types.confdRequestTypeToRaw ReqClusterMaster
1586 cdac0552 Jose A. Lopes
1587 cdac0552 Jose A. Lopes
confdReqNodePipList :: Int
1588 cdac0552 Jose A. Lopes
confdReqNodePipList = Types.confdRequestTypeToRaw ReqNodePipList
1589 cdac0552 Jose A. Lopes
1590 cdac0552 Jose A. Lopes
confdReqMcPipList :: Int
1591 cdac0552 Jose A. Lopes
confdReqMcPipList = Types.confdRequestTypeToRaw ReqMcPipList
1592 cdac0552 Jose A. Lopes
1593 cdac0552 Jose A. Lopes
confdReqInstancesIpsList :: Int
1594 cdac0552 Jose A. Lopes
confdReqInstancesIpsList = Types.confdRequestTypeToRaw ReqInstIpsList
1595 cdac0552 Jose A. Lopes
1596 cdac0552 Jose A. Lopes
confdReqNodeDrbd :: Int
1597 cdac0552 Jose A. Lopes
confdReqNodeDrbd = Types.confdRequestTypeToRaw ReqNodeDrbd
1598 cdac0552 Jose A. Lopes
1599 cdac0552 Jose A. Lopes
confdReqNodeInstances :: Int
1600 cdac0552 Jose A. Lopes
confdReqNodeInstances = Types.confdRequestTypeToRaw ReqNodeInstances
1601 cdac0552 Jose A. Lopes
1602 cdac0552 Jose A. Lopes
confdReqs :: FrozenSet Int
1603 cdac0552 Jose A. Lopes
confdReqs =
1604 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet .
1605 cdac0552 Jose A. Lopes
  map Types.confdRequestTypeToRaw $
1606 cdac0552 Jose A. Lopes
  [minBound..] \\ [ReqNodeInstances]
1607 cdac0552 Jose A. Lopes
1608 cdac0552 Jose A. Lopes
-- * Confd request type
1609 cdac0552 Jose A. Lopes
1610 cdac0552 Jose A. Lopes
confdReqfieldName :: Int
1611 cdac0552 Jose A. Lopes
confdReqfieldName = Types.confdReqFieldToRaw ReqFieldName
1612 cdac0552 Jose A. Lopes
1613 cdac0552 Jose A. Lopes
confdReqfieldIp :: Int
1614 cdac0552 Jose A. Lopes
confdReqfieldIp = Types.confdReqFieldToRaw ReqFieldIp
1615 cdac0552 Jose A. Lopes
1616 cdac0552 Jose A. Lopes
confdReqfieldMnodePip :: Int
1617 cdac0552 Jose A. Lopes
confdReqfieldMnodePip = Types.confdReqFieldToRaw ReqFieldMNodePip
1618 cdac0552 Jose A. Lopes
1619 cdac0552 Jose A. Lopes
-- * Confd repl status
1620 cdac0552 Jose A. Lopes
1621 cdac0552 Jose A. Lopes
confdReplStatusOk :: Int
1622 cdac0552 Jose A. Lopes
confdReplStatusOk = Types.confdReplyStatusToRaw ReplyStatusOk
1623 cdac0552 Jose A. Lopes
1624 cdac0552 Jose A. Lopes
confdReplStatusError :: Int
1625 cdac0552 Jose A. Lopes
confdReplStatusError = Types.confdReplyStatusToRaw ReplyStatusError
1626 cdac0552 Jose A. Lopes
1627 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented :: Int
1628 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented = Types.confdReplyStatusToRaw ReplyStatusNotImpl
1629 cdac0552 Jose A. Lopes
1630 cdac0552 Jose A. Lopes
confdReplStatuses :: FrozenSet Int
1631 cdac0552 Jose A. Lopes
confdReplStatuses =
1632 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.confdReplyStatusToRaw [minBound..]
1633 cdac0552 Jose A. Lopes
1634 cdac0552 Jose A. Lopes
-- * Confd node role
1635 cdac0552 Jose A. Lopes
1636 cdac0552 Jose A. Lopes
confdNodeRoleMaster :: Int
1637 cdac0552 Jose A. Lopes
confdNodeRoleMaster = Types.confdNodeRoleToRaw NodeRoleMaster
1638 cdac0552 Jose A. Lopes
1639 cdac0552 Jose A. Lopes
confdNodeRoleCandidate :: Int
1640 cdac0552 Jose A. Lopes
confdNodeRoleCandidate = Types.confdNodeRoleToRaw NodeRoleCandidate
1641 cdac0552 Jose A. Lopes
1642 cdac0552 Jose A. Lopes
confdNodeRoleOffline :: Int
1643 cdac0552 Jose A. Lopes
confdNodeRoleOffline = Types.confdNodeRoleToRaw NodeRoleOffline
1644 cdac0552 Jose A. Lopes
1645 cdac0552 Jose A. Lopes
confdNodeRoleDrained :: Int
1646 cdac0552 Jose A. Lopes
confdNodeRoleDrained = Types.confdNodeRoleToRaw NodeRoleDrained
1647 cdac0552 Jose A. Lopes
1648 cdac0552 Jose A. Lopes
confdNodeRoleRegular :: Int
1649 cdac0552 Jose A. Lopes
confdNodeRoleRegular = Types.confdNodeRoleToRaw NodeRoleRegular
1650 cdac0552 Jose A. Lopes
1651 61e32567 Jose A. Lopes
-- * A few common errors for confd
1652 61e32567 Jose A. Lopes
1653 cdac0552 Jose A. Lopes
confdErrorUnknownEntry :: Int
1654 cdac0552 Jose A. Lopes
confdErrorUnknownEntry = Types.confdErrorTypeToRaw ConfdErrorUnknownEntry
1655 61e32567 Jose A. Lopes
1656 61e32567 Jose A. Lopes
confdErrorInternal :: Int
1657 cdac0552 Jose A. Lopes
confdErrorInternal = Types.confdErrorTypeToRaw ConfdErrorInternal
1658 61e32567 Jose A. Lopes
1659 cdac0552 Jose A. Lopes
confdErrorArgument :: Int
1660 cdac0552 Jose A. Lopes
confdErrorArgument = Types.confdErrorTypeToRaw ConfdErrorArgument
1661 61e32567 Jose A. Lopes
1662 cdac0552 Jose A. Lopes
-- * Confd request query fields
1663 dd95d461 Jose A. Lopes
1664 dd95d461 Jose A. Lopes
confdReqqLink :: String
1665 dd95d461 Jose A. Lopes
confdReqqLink = ConstantUtils.confdReqqLink
1666 dd95d461 Jose A. Lopes
1667 dd95d461 Jose A. Lopes
confdReqqIp :: String
1668 dd95d461 Jose A. Lopes
confdReqqIp = ConstantUtils.confdReqqIp
1669 dd95d461 Jose A. Lopes
1670 dd95d461 Jose A. Lopes
confdReqqIplist :: String
1671 dd95d461 Jose A. Lopes
confdReqqIplist = ConstantUtils.confdReqqIplist
1672 dd95d461 Jose A. Lopes
1673 dd95d461 Jose A. Lopes
confdReqqFields :: String
1674 dd95d461 Jose A. Lopes
confdReqqFields = ConstantUtils.confdReqqFields
1675 dd95d461 Jose A. Lopes
1676 61e32567 Jose A. Lopes
-- | Each request is "salted" by the current timestamp.
1677 61e32567 Jose A. Lopes
--
1678 61e32567 Jose A. Lopes
-- This constant decides how many seconds of skew to accept.
1679 61e32567 Jose A. Lopes
--
1680 61e32567 Jose A. Lopes
-- TODO: make this a default and allow the value to be more
1681 61e32567 Jose A. Lopes
-- configurable
1682 61e32567 Jose A. Lopes
confdMaxClockSkew :: Int
1683 61e32567 Jose A. Lopes
confdMaxClockSkew = 2 * nodeMaxClockSkew
1684 61e32567 Jose A. Lopes
1685 61e32567 Jose A. Lopes
-- | When we haven't reloaded the config for more than this amount of
1686 61e32567 Jose A. Lopes
-- seconds, we force a test to see if inotify is betraying us. Using a
1687 61e32567 Jose A. Lopes
-- prime number to ensure we get less chance of 'same wakeup' with
1688 61e32567 Jose A. Lopes
-- other processes.
1689 61e32567 Jose A. Lopes
confdConfigReloadTimeout :: Int
1690 61e32567 Jose A. Lopes
confdConfigReloadTimeout = 17
1691 61e32567 Jose A. Lopes
1692 61e32567 Jose A. Lopes
-- | If we receive more than one update in this amount of
1693 61e32567 Jose A. Lopes
-- microseconds, we move to polling every RATELIMIT seconds, rather
1694 61e32567 Jose A. Lopes
-- than relying on inotify, to be able to serve more requests.
1695 61e32567 Jose A. Lopes
confdConfigReloadRatelimit :: Int
1696 61e32567 Jose A. Lopes
confdConfigReloadRatelimit = 250000
1697 61e32567 Jose A. Lopes
1698 61e32567 Jose A. Lopes
-- | Magic number prepended to all confd queries.
1699 61e32567 Jose A. Lopes
--
1700 61e32567 Jose A. Lopes
-- This allows us to distinguish different types of confd protocols
1701 61e32567 Jose A. Lopes
-- and handle them. For example by changing this we can move the whole
1702 61e32567 Jose A. Lopes
-- payload to be compressed, or move away from json.
1703 61e32567 Jose A. Lopes
confdMagicFourcc :: String
1704 61e32567 Jose A. Lopes
confdMagicFourcc = "plj0"
1705 61e32567 Jose A. Lopes
1706 61e32567 Jose A. Lopes
-- | By default a confd request is sent to the minimum between this
1707 61e32567 Jose A. Lopes
-- number and all MCs. 6 was chosen because even in the case of a
1708 61e32567 Jose A. Lopes
-- disastrous 50% response rate, we should have enough answers to be
1709 61e32567 Jose A. Lopes
-- able to compare more than one.
1710 61e32567 Jose A. Lopes
confdDefaultReqCoverage :: Int
1711 61e32567 Jose A. Lopes
confdDefaultReqCoverage = 6
1712 61e32567 Jose A. Lopes
1713 61e32567 Jose A. Lopes
-- | Timeout in seconds to expire pending query request in the confd
1714 61e32567 Jose A. Lopes
-- client library. We don't actually expect any answer more than 10
1715 61e32567 Jose A. Lopes
-- seconds after we sent a request.
1716 61e32567 Jose A. Lopes
confdClientExpireTimeout :: Int
1717 61e32567 Jose A. Lopes
confdClientExpireTimeout = 10
1718 61e32567 Jose A. Lopes
1719 f361a6ee Jose A. Lopes
-- * Possible values for NodeGroup.alloc_policy
1720 f361a6ee Jose A. Lopes
1721 f361a6ee Jose A. Lopes
allocPolicyLastResort :: String
1722 58c09b0e Jose A. Lopes
allocPolicyLastResort = Types.allocPolicyToRaw AllocLastResort
1723 f361a6ee Jose A. Lopes
1724 f361a6ee Jose A. Lopes
allocPolicyPreferred :: String
1725 58c09b0e Jose A. Lopes
allocPolicyPreferred = Types.allocPolicyToRaw AllocPreferred
1726 f361a6ee Jose A. Lopes
1727 f361a6ee Jose A. Lopes
allocPolicyUnallocable :: String
1728 58c09b0e Jose A. Lopes
allocPolicyUnallocable = Types.allocPolicyToRaw AllocUnallocable
1729 f361a6ee Jose A. Lopes
1730 f361a6ee Jose A. Lopes
validAllocPolicies :: [String]
1731 58c09b0e Jose A. Lopes
validAllocPolicies = map Types.allocPolicyToRaw [minBound..]
1732 f361a6ee Jose A. Lopes
1733 f361a6ee Jose A. Lopes
-- | Temporary external/shared storage parameters
1734 f361a6ee Jose A. Lopes
blockdevDriverManual :: String
1735 5867e439 Jose A. Lopes
blockdevDriverManual = Types.blockDriverToRaw BlockDrvManual
1736 f361a6ee Jose A. Lopes
1737 3b170ad4 Jose A. Lopes
-- | 'qemu-img' path, required for 'ovfconverter'
1738 3b170ad4 Jose A. Lopes
qemuimgPath :: String
1739 3b170ad4 Jose A. Lopes
qemuimgPath = AutoConf.qemuimgPath
1740 3b170ad4 Jose A. Lopes
1741 3b170ad4 Jose A. Lopes
-- | Whether htools was enabled at compilation time
1742 3b170ad4 Jose A. Lopes
--
1743 3b170ad4 Jose A. Lopes
-- FIXME: this should be moved next to the other enable constants,
1744 3b170ad4 Jose A. Lopes
-- such as, 'enableConfd', and renamed to 'enableHtools'.
1745 3b170ad4 Jose A. Lopes
htools :: Bool
1746 3b170ad4 Jose A. Lopes
htools = AutoConf.htools
1747 3b170ad4 Jose A. Lopes
1748 84ad6b78 Jose A. Lopes
-- * Key files for SSH daemon
1749 84ad6b78 Jose A. Lopes
1750 84ad6b78 Jose A. Lopes
sshHostDsaPriv :: String
1751 84ad6b78 Jose A. Lopes
sshHostDsaPriv = sshConfigDir ++ "/ssh_host_dsa_key"
1752 84ad6b78 Jose A. Lopes
1753 84ad6b78 Jose A. Lopes
sshHostDsaPub :: String
1754 84ad6b78 Jose A. Lopes
sshHostDsaPub = sshHostDsaPriv ++ ".pub"
1755 84ad6b78 Jose A. Lopes
1756 84ad6b78 Jose A. Lopes
sshHostRsaPriv :: String
1757 84ad6b78 Jose A. Lopes
sshHostRsaPriv = sshConfigDir ++ "/ssh_host_rsa_key"
1758 84ad6b78 Jose A. Lopes
1759 84ad6b78 Jose A. Lopes
sshHostRsaPub :: String
1760 84ad6b78 Jose A. Lopes
sshHostRsaPub = sshHostRsaPriv ++ ".pub"
1761 84ad6b78 Jose A. Lopes
1762 06fd57e5 Jose A. Lopes
-- | Path generating random UUID
1763 06fd57e5 Jose A. Lopes
randomUuidFile :: String
1764 06fd57e5 Jose A. Lopes
randomUuidFile = ConstantUtils.randomUuidFile
1765 06fd57e5 Jose A. Lopes
1766 f361a6ee Jose A. Lopes
-- * Auto-repair tag prefixes
1767 f361a6ee Jose A. Lopes
1768 f361a6ee Jose A. Lopes
autoRepairTagPrefix :: String
1769 f361a6ee Jose A. Lopes
autoRepairTagPrefix = "ganeti:watcher:autorepair:"
1770 f361a6ee Jose A. Lopes
1771 f361a6ee Jose A. Lopes
autoRepairTagEnabled :: String
1772 f361a6ee Jose A. Lopes
autoRepairTagEnabled = autoRepairTagPrefix
1773 f361a6ee Jose A. Lopes
1774 f361a6ee Jose A. Lopes
autoRepairTagPending :: String
1775 f361a6ee Jose A. Lopes
autoRepairTagPending = autoRepairTagPrefix ++ "pending:"
1776 f361a6ee Jose A. Lopes
1777 f361a6ee Jose A. Lopes
autoRepairTagResult :: String
1778 f361a6ee Jose A. Lopes
autoRepairTagResult = autoRepairTagPrefix ++ "result:"
1779 f361a6ee Jose A. Lopes
1780 f361a6ee Jose A. Lopes
autoRepairTagSuspended :: String
1781 f361a6ee Jose A. Lopes
autoRepairTagSuspended = autoRepairTagPrefix ++ "suspend:"
1782 f361a6ee Jose A. Lopes
1783 f361a6ee Jose A. Lopes
-- * Auto-repair levels
1784 f361a6ee Jose A. Lopes
1785 f361a6ee Jose A. Lopes
autoRepairFailover :: String
1786 f361a6ee Jose A. Lopes
autoRepairFailover = "failover"
1787 f361a6ee Jose A. Lopes
1788 f361a6ee Jose A. Lopes
autoRepairFixStorage :: String
1789 f361a6ee Jose A. Lopes
autoRepairFixStorage = "fix-storage"
1790 f361a6ee Jose A. Lopes
1791 f361a6ee Jose A. Lopes
autoRepairMigrate :: String
1792 f361a6ee Jose A. Lopes
autoRepairMigrate = "migrate"
1793 f361a6ee Jose A. Lopes
1794 f361a6ee Jose A. Lopes
autoRepairReinstall :: String
1795 f361a6ee Jose A. Lopes
autoRepairReinstall = "reinstall"
1796 f361a6ee Jose A. Lopes
1797 f361a6ee Jose A. Lopes
autoRepairAllTypes :: FrozenSet String
1798 f361a6ee Jose A. Lopes
autoRepairAllTypes =
1799 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairFailover,
1800 43a9e860 Jose A. Lopes
                       autoRepairFixStorage,
1801 43a9e860 Jose A. Lopes
                       autoRepairMigrate,
1802 43a9e860 Jose A. Lopes
                       autoRepairReinstall]
1803 f361a6ee Jose A. Lopes
1804 f361a6ee Jose A. Lopes
-- * Auto-repair results
1805 f361a6ee Jose A. Lopes
1806 f361a6ee Jose A. Lopes
autoRepairEnoperm :: String
1807 f361a6ee Jose A. Lopes
autoRepairEnoperm = "enoperm"
1808 f361a6ee Jose A. Lopes
1809 f361a6ee Jose A. Lopes
autoRepairFailure :: String
1810 f361a6ee Jose A. Lopes
autoRepairFailure = "failure"
1811 f361a6ee Jose A. Lopes
1812 f361a6ee Jose A. Lopes
autoRepairSuccess :: String
1813 f361a6ee Jose A. Lopes
autoRepairSuccess = "success"
1814 f361a6ee Jose A. Lopes
1815 f361a6ee Jose A. Lopes
autoRepairAllResults :: FrozenSet String
1816 f361a6ee Jose A. Lopes
autoRepairAllResults =
1817 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairEnoperm, autoRepairFailure, autoRepairSuccess]
1818 f361a6ee Jose A. Lopes
1819 f361a6ee Jose A. Lopes
-- | The version identifier for builtin data collectors
1820 f361a6ee Jose A. Lopes
builtinDataCollectorVersion :: String
1821 f361a6ee Jose A. Lopes
builtinDataCollectorVersion = "B"
1822 2924f169 Jose A. Lopes
1823 2924f169 Jose A. Lopes
-- | The reason trail opcode parameter name
1824 2924f169 Jose A. Lopes
opcodeReason :: String
1825 2924f169 Jose A. Lopes
opcodeReason = "reason"
1826 2924f169 Jose A. Lopes
1827 2924f169 Jose A. Lopes
diskstatsFile :: String
1828 2924f169 Jose A. Lopes
diskstatsFile = "/proc/diskstats"
1829 2924f169 Jose A. Lopes
1830 74129b52 Jose A. Lopes
-- *  CPU load collector
1831 74129b52 Jose A. Lopes
1832 2924f169 Jose A. Lopes
statFile :: String
1833 2924f169 Jose A. Lopes
statFile = "/proc/stat"
1834 2924f169 Jose A. Lopes
1835 74129b52 Jose A. Lopes
cpuavgloadBufferSize :: Int
1836 74129b52 Jose A. Lopes
cpuavgloadBufferSize = 150
1837 74129b52 Jose A. Lopes
1838 74129b52 Jose A. Lopes
cpuavgloadWindowSize :: Int
1839 74129b52 Jose A. Lopes
cpuavgloadWindowSize = 600
1840 74129b52 Jose A. Lopes
1841 2924f169 Jose A. Lopes
-- | Mond's variable for periodical data collection
1842 2924f169 Jose A. Lopes
mondTimeInterval :: Int
1843 2924f169 Jose A. Lopes
mondTimeInterval = 5
1844 9b9e088c Raffa Santi
1845 9b9e088c Raffa Santi
-- * Disk access modes
1846 9b9e088c Raffa Santi
1847 9b9e088c Raffa Santi
diskUserspace :: String
1848 9b9e088c Raffa Santi
diskUserspace = Types.diskAccessModeToRaw DiskUserspace
1849 9b9e088c Raffa Santi
1850 9b9e088c Raffa Santi
diskKernelspace :: String
1851 9b9e088c Raffa Santi
diskKernelspace = Types.diskAccessModeToRaw DiskKernelspace
1852 9b9e088c Raffa Santi
1853 9b9e088c Raffa Santi
diskValidAccessModes :: FrozenSet String
1854 9b9e088c Raffa Santi
diskValidAccessModes =
1855 9b9e088c Raffa Santi
  ConstantUtils.mkSet $ map Types.diskAccessModeToRaw [minBound..]
1856 55f0626b Klaus Aehlig
1857 55f0626b Klaus Aehlig
-- | Timeout for queue draining in upgrades
1858 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout :: Int
1859 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout = 36 * 60 * 60 -- 1.5 days
1860 55f0626b Klaus Aehlig
1861 55f0626b Klaus Aehlig
-- | Intervall at which the queue is polled during upgrades
1862 55f0626b Klaus Aehlig
upgradeQueuePollInterval :: Int
1863 55f0626b Klaus Aehlig
upgradeQueuePollInterval  = 10