Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ 5523732b

History | View | Annotate | Download (113.8 kB)

1 6b0d45b7 Jose A. Lopes
{-# OPTIONS -fno-warn-type-defaults #-}
2 1b2adaa6 Jose A. Lopes
{-| HsConstants contains the Haskell constants
3 1b2adaa6 Jose A. Lopes
4 1b2adaa6 Jose A. Lopes
This is a transitional module complementary to 'Ganeti.Constants'.  It
5 1b2adaa6 Jose A. Lopes
is intended to contain the Haskell constants that are meant to be
6 1b2adaa6 Jose A. Lopes
generated in Python.
7 1b2adaa6 Jose A. Lopes
8 c93041a5 Jose A. Lopes
Do not write any definitions in this file other than constants.  Do
9 c93041a5 Jose A. Lopes
not even write helper functions.  The definitions in this module are
10 c93041a5 Jose A. Lopes
automatically stripped to build the Makefile.am target
11 c93041a5 Jose A. Lopes
'ListConstants.hs'.  If there are helper functions in this module,
12 c93041a5 Jose A. Lopes
they will also be dragged and it will cause compilation to fail.
13 c93041a5 Jose A. Lopes
Therefore, all helper functions should go to a separate module and
14 c93041a5 Jose A. Lopes
imported.
15 c93041a5 Jose A. Lopes
16 1b2adaa6 Jose A. Lopes
-}
17 1b2adaa6 Jose A. Lopes
18 1b2adaa6 Jose A. Lopes
{-
19 1b2adaa6 Jose A. Lopes
20 1b2adaa6 Jose A. Lopes
Copyright (C) 2013 Google Inc.
21 1b2adaa6 Jose A. Lopes
22 1b2adaa6 Jose A. Lopes
This program is free software; you can redistribute it and/or modify
23 1b2adaa6 Jose A. Lopes
it under the terms of the GNU General Public License as published by
24 1b2adaa6 Jose A. Lopes
the Free Software Foundation; either version 2 of the License, or
25 1b2adaa6 Jose A. Lopes
(at your option) any later version.
26 1b2adaa6 Jose A. Lopes
27 1b2adaa6 Jose A. Lopes
This program is distributed in the hope that it will be useful, but
28 1b2adaa6 Jose A. Lopes
WITHOUT ANY WARRANTY; without even the implied warranty of
29 1b2adaa6 Jose A. Lopes
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
30 1b2adaa6 Jose A. Lopes
General Public License for more details.
31 1b2adaa6 Jose A. Lopes
32 1b2adaa6 Jose A. Lopes
You should have received a copy of the GNU General Public License
33 1b2adaa6 Jose A. Lopes
along with this program; if not, write to the Free Software
34 1b2adaa6 Jose A. Lopes
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
35 1b2adaa6 Jose A. Lopes
02110-1301, USA.
36 1b2adaa6 Jose A. Lopes
37 1b2adaa6 Jose A. Lopes
-}
38 1b2adaa6 Jose A. Lopes
module Ganeti.HsConstants where
39 1b2adaa6 Jose A. Lopes
40 9be1ff8c Jose A. Lopes
import Control.Arrow ((***))
41 cdac0552 Jose A. Lopes
import Data.List ((\\))
42 6dc0cb59 Jose A. Lopes
import Data.Map (Map)
43 93e2e44e Jose A. Lopes
import qualified Data.Map as Map (empty, fromList, keys, insert)
44 6dc0cb59 Jose A. Lopes
45 b998e7f6 Jose A. Lopes
import qualified AutoConf
46 a2b55ccd Jose A. Lopes
import Ganeti.ConstantUtils (PythonChar(..), PythonNone(..), FrozenSet,
47 a2b55ccd Jose A. Lopes
                             Protocol(..), buildVersion)
48 df726590 Jose A. Lopes
import qualified Ganeti.ConstantUtils as ConstantUtils
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 6dab85ff Jose A. Lopes
import Ganeti.Runtime (GanetiDaemon(..), MiscGroup(..), GanetiGroup(..),
55 6dab85ff Jose A. Lopes
                       ExtraLogReason(..))
56 47ea2344 Jose A. Lopes
import Ganeti.THH (PyValueEx(..))
57 85c48fbb Jose A. Lopes
import Ganeti.Types
58 85c48fbb Jose A. Lopes
import qualified Ganeti.Types as Types
59 cdac0552 Jose A. Lopes
import Ganeti.Confd.Types (ConfdRequestType(..), ConfdReqField(..),
60 cdac0552 Jose A. Lopes
                           ConfdReplyStatus(..), ConfdNodeRole(..),
61 cdac0552 Jose A. Lopes
                           ConfdErrorType(..))
62 cdac0552 Jose A. Lopes
import qualified Ganeti.Confd.Types as Types
63 85c48fbb Jose A. Lopes
64 c03224f6 Jose A. Lopes
{-# ANN module "HLint: ignore Use camelCase" #-}
65 c03224f6 Jose A. Lopes
66 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('autotools/build-bash-completion')
67 1c9e817d Jose A. Lopes
68 1c9e817d Jose A. Lopes
htoolsProgs :: [String]
69 1c9e817d Jose A. Lopes
htoolsProgs = AutoConf.htoolsProgs
70 1c9e817d Jose A. Lopes
71 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/constants.py')
72 3b170ad4 Jose A. Lopes
73 3b170ad4 Jose A. Lopes
drbdBarriers :: String
74 3b170ad4 Jose A. Lopes
drbdBarriers = AutoConf.drbdBarriers
75 3b170ad4 Jose A. Lopes
76 3b170ad4 Jose A. Lopes
drbdNoMetaFlush :: Bool
77 3b170ad4 Jose A. Lopes
drbdNoMetaFlush = AutoConf.drbdNoMetaFlush
78 3b170ad4 Jose A. Lopes
79 3b170ad4 Jose A. Lopes
lvmStripecount :: Int
80 3b170ad4 Jose A. Lopes
lvmStripecount = AutoConf.lvmStripecount
81 3b170ad4 Jose A. Lopes
82 d250bc5d Klaus Aehlig
hasGnuLn :: Bool
83 d250bc5d Klaus Aehlig
hasGnuLn = AutoConf.hasGnuLn
84 d250bc5d Klaus Aehlig
85 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/pathutils.py')
86 1c9e817d Jose A. Lopes
87 1c9e817d Jose A. Lopes
-- ** Build-time constants
88 1c9e817d Jose A. Lopes
89 1c9e817d Jose A. Lopes
exportDir :: String
90 1c9e817d Jose A. Lopes
exportDir = AutoConf.exportDir
91 1c9e817d Jose A. Lopes
92 1c9e817d Jose A. Lopes
osSearchPath :: [String]
93 1c9e817d Jose A. Lopes
osSearchPath = AutoConf.osSearchPath
94 1c9e817d Jose A. Lopes
95 1c9e817d Jose A. Lopes
esSearchPath :: [String]
96 1c9e817d Jose A. Lopes
esSearchPath = AutoConf.esSearchPath
97 1c9e817d Jose A. Lopes
98 1c9e817d Jose A. Lopes
sshConfigDir :: String
99 1c9e817d Jose A. Lopes
sshConfigDir = AutoConf.sshConfigDir
100 1c9e817d Jose A. Lopes
101 1c9e817d Jose A. Lopes
xenConfigDir :: String
102 1c9e817d Jose A. Lopes
xenConfigDir = AutoConf.xenConfigDir
103 1c9e817d Jose A. Lopes
104 1c9e817d Jose A. Lopes
sysconfdir :: String
105 1c9e817d Jose A. Lopes
sysconfdir = AutoConf.sysconfdir
106 1c9e817d Jose A. Lopes
107 1c9e817d Jose A. Lopes
toolsdir :: String
108 1c9e817d Jose A. Lopes
toolsdir = AutoConf.toolsdir
109 1c9e817d Jose A. Lopes
110 1c9e817d Jose A. Lopes
localstatedir :: String
111 1c9e817d Jose A. Lopes
localstatedir = AutoConf.localstatedir
112 1c9e817d Jose A. Lopes
113 1c9e817d Jose A. Lopes
-- ** Paths which don't change for a virtual cluster
114 1c9e817d Jose A. Lopes
115 1c9e817d Jose A. Lopes
pkglibdir :: String
116 1c9e817d Jose A. Lopes
pkglibdir = AutoConf.pkglibdir
117 1c9e817d Jose A. Lopes
118 9bfcf2e9 Klaus Aehlig
sharedir :: String
119 9bfcf2e9 Klaus Aehlig
sharedir = AutoConf.sharedir
120 9bfcf2e9 Klaus Aehlig
121 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/build/sphinx_ext.py')
122 1c9e817d Jose A. Lopes
123 1c9e817d Jose A. Lopes
manPages :: Map String Int
124 1c9e817d Jose A. Lopes
manPages = Map.fromList AutoConf.manPages
125 1c9e817d Jose A. Lopes
126 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for QA cluster only ('qa/qa_cluster.py')
127 1c9e817d Jose A. Lopes
128 1c9e817d Jose A. Lopes
versionedsharedir :: String
129 1c9e817d Jose A. Lopes
versionedsharedir = AutoConf.versionedsharedir
130 1c9e817d Jose A. Lopes
131 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('tests/py/docs_unittest.py')
132 1c9e817d Jose A. Lopes
133 1c9e817d Jose A. Lopes
gntScripts :: [String]
134 1c9e817d Jose A. Lopes
gntScripts = AutoConf.gntScripts
135 1c9e817d Jose A. Lopes
136 3b170ad4 Jose A. Lopes
-- * Various versions
137 3b170ad4 Jose A. Lopes
138 3b170ad4 Jose A. Lopes
releaseVersion :: String
139 3b170ad4 Jose A. Lopes
releaseVersion = AutoConf.packageVersion
140 3b170ad4 Jose A. Lopes
141 8c44d5b3 Klaus Aehlig
versionMajor :: Int
142 8c44d5b3 Klaus Aehlig
versionMajor = AutoConf.versionMajor
143 8c44d5b3 Klaus Aehlig
144 8c44d5b3 Klaus Aehlig
versionMinor :: Int
145 8c44d5b3 Klaus Aehlig
versionMinor = AutoConf.versionMinor
146 8c44d5b3 Klaus Aehlig
147 8c44d5b3 Klaus Aehlig
versionRevision :: Int
148 8c44d5b3 Klaus Aehlig
versionRevision = AutoConf.versionRevision
149 8c44d5b3 Klaus Aehlig
150 9b20010b Klaus Aehlig
dirVersion :: String
151 9b20010b Klaus Aehlig
dirVersion = AutoConf.dirVersion
152 9b20010b Klaus Aehlig
153 c87997d2 Jose A. Lopes
osApiV10 :: Int
154 c87997d2 Jose A. Lopes
osApiV10 = 10
155 c87997d2 Jose A. Lopes
156 c87997d2 Jose A. Lopes
osApiV15 :: Int
157 c87997d2 Jose A. Lopes
osApiV15 = 15
158 c87997d2 Jose A. Lopes
159 c87997d2 Jose A. Lopes
osApiV20 :: Int
160 c87997d2 Jose A. Lopes
osApiV20 = 20
161 c87997d2 Jose A. Lopes
162 c87997d2 Jose A. Lopes
osApiVersions :: FrozenSet Int
163 c87997d2 Jose A. Lopes
osApiVersions = ConstantUtils.mkSet [osApiV10, osApiV15, osApiV20]
164 c87997d2 Jose A. Lopes
165 14795b58 Jose A. Lopes
exportVersion :: Int
166 14795b58 Jose A. Lopes
exportVersion = 0
167 14795b58 Jose A. Lopes
168 14795b58 Jose A. Lopes
rapiVersion :: Int
169 14795b58 Jose A. Lopes
rapiVersion = 2
170 14795b58 Jose A. Lopes
171 3b170ad4 Jose A. Lopes
configMajor :: Int
172 3b170ad4 Jose A. Lopes
configMajor = AutoConf.versionMajor
173 3b170ad4 Jose A. Lopes
174 3b170ad4 Jose A. Lopes
configMinor :: Int
175 3b170ad4 Jose A. Lopes
configMinor = AutoConf.versionMinor
176 3b170ad4 Jose A. Lopes
177 3b170ad4 Jose A. Lopes
-- | The configuration is supposed to remain stable across
178 3b170ad4 Jose A. Lopes
-- revisions. Therefore, the revision number is cleared to '0'.
179 3b170ad4 Jose A. Lopes
configRevision :: Int
180 3b170ad4 Jose A. Lopes
configRevision = 0
181 3b170ad4 Jose A. Lopes
182 3b170ad4 Jose A. Lopes
configVersion :: Int
183 3b170ad4 Jose A. Lopes
configVersion = buildVersion configMajor configMinor configRevision
184 3b170ad4 Jose A. Lopes
185 3b170ad4 Jose A. Lopes
-- | Similarly to the configuration (see 'configRevision'), the
186 3b170ad4 Jose A. Lopes
-- protocols are supposed to remain stable across revisions.
187 3b170ad4 Jose A. Lopes
protocolVersion :: Int
188 3b170ad4 Jose A. Lopes
protocolVersion = buildVersion configMajor configMinor configRevision
189 3b170ad4 Jose A. Lopes
190 c890f66a Jose A. Lopes
-- * User separation
191 cdac0552 Jose A. Lopes
192 c890f66a Jose A. Lopes
daemonsGroup :: String
193 c890f66a Jose A. Lopes
daemonsGroup = Runtime.daemonGroup (ExtraGroup DaemonsGroup)
194 85c48fbb Jose A. Lopes
195 c890f66a Jose A. Lopes
adminGroup :: String
196 c890f66a Jose A. Lopes
adminGroup = Runtime.daemonGroup (ExtraGroup AdminGroup)
197 85c48fbb Jose A. Lopes
198 c890f66a Jose A. Lopes
masterdUser :: String
199 c890f66a Jose A. Lopes
masterdUser = Runtime.daemonUser GanetiMasterd
200 85c48fbb Jose A. Lopes
201 c890f66a Jose A. Lopes
masterdGroup :: String
202 c890f66a Jose A. Lopes
masterdGroup = Runtime.daemonGroup (DaemonGroup GanetiMasterd)
203 85c48fbb Jose A. Lopes
204 c890f66a Jose A. Lopes
rapiUser :: String
205 c890f66a Jose A. Lopes
rapiUser = Runtime.daemonUser GanetiRapi
206 85c48fbb Jose A. Lopes
207 c890f66a Jose A. Lopes
rapiGroup :: String
208 c890f66a Jose A. Lopes
rapiGroup = Runtime.daemonGroup (DaemonGroup GanetiRapi)
209 85c48fbb Jose A. Lopes
210 c890f66a Jose A. Lopes
confdUser :: String
211 c890f66a Jose A. Lopes
confdUser = Runtime.daemonUser GanetiConfd
212 85c48fbb Jose A. Lopes
213 c890f66a Jose A. Lopes
confdGroup :: String
214 c890f66a Jose A. Lopes
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
215 85c48fbb Jose A. Lopes
216 c890f66a Jose A. Lopes
luxidUser :: String
217 c890f66a Jose A. Lopes
luxidUser = Runtime.daemonUser GanetiLuxid
218 85c48fbb Jose A. Lopes
219 c890f66a Jose A. Lopes
luxidGroup :: String
220 c890f66a Jose A. Lopes
luxidGroup = Runtime.daemonGroup (DaemonGroup GanetiLuxid)
221 85c48fbb Jose A. Lopes
222 c890f66a Jose A. Lopes
nodedUser :: String
223 c890f66a Jose A. Lopes
nodedUser = Runtime.daemonUser GanetiNoded
224 85c48fbb Jose A. Lopes
225 c890f66a Jose A. Lopes
nodedGroup :: String
226 c890f66a Jose A. Lopes
nodedGroup = Runtime.daemonGroup (DaemonGroup GanetiNoded)
227 85c48fbb Jose A. Lopes
228 c890f66a Jose A. Lopes
mondUser :: String
229 c890f66a Jose A. Lopes
mondUser = Runtime.daemonUser GanetiMond
230 85c48fbb Jose A. Lopes
231 c890f66a Jose A. Lopes
mondGroup :: String
232 c890f66a Jose A. Lopes
mondGroup = Runtime.daemonGroup (DaemonGroup GanetiMond)
233 85c48fbb Jose A. Lopes
234 c890f66a Jose A. Lopes
sshLoginUser :: String
235 c890f66a Jose A. Lopes
sshLoginUser = AutoConf.sshLoginUser
236 85c48fbb Jose A. Lopes
237 c890f66a Jose A. Lopes
sshConsoleUser :: String
238 c890f66a Jose A. Lopes
sshConsoleUser = AutoConf.sshConsoleUser
239 85c48fbb Jose A. Lopes
240 e0cd6f5d Jose A. Lopes
-- * Cpu pinning separators and constants
241 e0cd6f5d Jose A. Lopes
242 e0cd6f5d Jose A. Lopes
cpuPinningSep :: String
243 e0cd6f5d Jose A. Lopes
cpuPinningSep = ":"
244 e0cd6f5d Jose A. Lopes
245 e0cd6f5d Jose A. Lopes
cpuPinningAll :: String
246 e0cd6f5d Jose A. Lopes
cpuPinningAll = "all"
247 e0cd6f5d Jose A. Lopes
248 e0cd6f5d Jose A. Lopes
-- | Internal representation of "all"
249 e0cd6f5d Jose A. Lopes
cpuPinningAllVal :: Int
250 e0cd6f5d Jose A. Lopes
cpuPinningAllVal = -1
251 e0cd6f5d Jose A. Lopes
252 e0cd6f5d Jose A. Lopes
-- | One "all" entry in a CPU list means CPU pinning is off
253 e0cd6f5d Jose A. Lopes
cpuPinningOff :: [Int]
254 e0cd6f5d Jose A. Lopes
cpuPinningOff = [cpuPinningAllVal]
255 e0cd6f5d Jose A. Lopes
256 e0cd6f5d Jose A. Lopes
-- | A Xen-specific implementation detail is that there is no way to
257 e0cd6f5d Jose A. Lopes
-- actually say "use any cpu for pinning" in a Xen configuration file,
258 e0cd6f5d Jose A. Lopes
-- as opposed to the command line, where you can say
259 e0cd6f5d Jose A. Lopes
-- @
260 e0cd6f5d Jose A. Lopes
-- xm vcpu-pin <domain> <vcpu> all
261 e0cd6f5d Jose A. Lopes
-- @
262 e0cd6f5d Jose A. Lopes
--
263 e0cd6f5d Jose A. Lopes
-- The workaround used in Xen is "0-63" (see source code function
264 e0cd6f5d Jose A. Lopes
-- "xm_vcpu_pin" in @<xen-source>/tools/python/xen/xm/main.py@).
265 e0cd6f5d Jose A. Lopes
--
266 e0cd6f5d Jose A. Lopes
-- To support future changes, the following constant is treated as a
267 e0cd6f5d Jose A. Lopes
-- blackbox string that simply means "use any cpu for pinning under
268 e0cd6f5d Jose A. Lopes
-- xen".
269 e0cd6f5d Jose A. Lopes
cpuPinningAllXen :: String
270 e0cd6f5d Jose A. Lopes
cpuPinningAllXen = "0-63"
271 e0cd6f5d Jose A. Lopes
272 e0cd6f5d Jose A. Lopes
-- | A KVM-specific implementation detail - the following value is
273 e0cd6f5d Jose A. Lopes
-- used to set CPU affinity to all processors (--0 through --31), per
274 e0cd6f5d Jose A. Lopes
-- taskset man page.
275 e0cd6f5d Jose A. Lopes
--
276 e0cd6f5d Jose A. Lopes
-- FIXME: This only works for machines with up to 32 CPU cores
277 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm :: Int
278 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm = 0xFFFFFFFF
279 e0cd6f5d Jose A. Lopes
280 74129b52 Jose A. Lopes
-- * Wipe
281 74129b52 Jose A. Lopes
282 74129b52 Jose A. Lopes
ddCmd :: String
283 74129b52 Jose A. Lopes
ddCmd = "dd"
284 74129b52 Jose A. Lopes
285 74129b52 Jose A. Lopes
-- | 1GB
286 74129b52 Jose A. Lopes
maxWipeChunk :: Int
287 74129b52 Jose A. Lopes
maxWipeChunk = 1024
288 74129b52 Jose A. Lopes
289 74129b52 Jose A. Lopes
minWipeChunkPercent :: Int
290 74129b52 Jose A. Lopes
minWipeChunkPercent = 10
291 74129b52 Jose A. Lopes
292 74129b52 Jose A. Lopes
-- * Directories
293 74129b52 Jose A. Lopes
294 74129b52 Jose A. Lopes
runDirsMode :: Int
295 74129b52 Jose A. Lopes
runDirsMode = 0o775
296 74129b52 Jose A. Lopes
297 74129b52 Jose A. Lopes
secureDirMode :: Int
298 74129b52 Jose A. Lopes
secureDirMode = 0o700
299 74129b52 Jose A. Lopes
300 74129b52 Jose A. Lopes
secureFileMode :: Int
301 74129b52 Jose A. Lopes
secureFileMode = 0o600
302 74129b52 Jose A. Lopes
303 74129b52 Jose A. Lopes
adoptableBlockdevRoot :: String
304 74129b52 Jose A. Lopes
adoptableBlockdevRoot = "/dev/disk/"
305 74129b52 Jose A. Lopes
306 3b170ad4 Jose A. Lopes
-- * 'autoconf' enable/disable
307 3b170ad4 Jose A. Lopes
308 3b170ad4 Jose A. Lopes
enableConfd :: Bool
309 3b170ad4 Jose A. Lopes
enableConfd = AutoConf.enableConfd
310 3b170ad4 Jose A. Lopes
311 3b170ad4 Jose A. Lopes
enableMond :: Bool
312 3b170ad4 Jose A. Lopes
enableMond = AutoConf.enableMond
313 3b170ad4 Jose A. Lopes
314 3b170ad4 Jose A. Lopes
enableRestrictedCommands :: Bool
315 3b170ad4 Jose A. Lopes
enableRestrictedCommands = AutoConf.enableRestrictedCommands
316 3b170ad4 Jose A. Lopes
317 3b170ad4 Jose A. Lopes
enableSplitQuery :: Bool
318 3b170ad4 Jose A. Lopes
enableSplitQuery = AutoConf.enableSplitQuery
319 3b170ad4 Jose A. Lopes
320 c890f66a Jose A. Lopes
-- * SSH constants
321 85c48fbb Jose A. Lopes
322 c890f66a Jose A. Lopes
ssh :: String
323 c890f66a Jose A. Lopes
ssh = "ssh"
324 85c48fbb Jose A. Lopes
325 c890f66a Jose A. Lopes
scp :: String
326 c890f66a Jose A. Lopes
scp = "scp"
327 85c48fbb Jose A. Lopes
328 c890f66a Jose A. Lopes
-- * Daemons
329 85c48fbb Jose A. Lopes
330 c890f66a Jose A. Lopes
confd :: String
331 c890f66a Jose A. Lopes
confd = Runtime.daemonName GanetiConfd
332 85c48fbb Jose A. Lopes
333 c890f66a Jose A. Lopes
masterd :: String
334 c890f66a Jose A. Lopes
masterd = Runtime.daemonName GanetiMasterd
335 85c48fbb Jose A. Lopes
336 c890f66a Jose A. Lopes
mond :: String
337 c890f66a Jose A. Lopes
mond = Runtime.daemonName GanetiMond
338 85c48fbb Jose A. Lopes
339 c890f66a Jose A. Lopes
noded :: String
340 c890f66a Jose A. Lopes
noded = Runtime.daemonName GanetiNoded
341 85c48fbb Jose A. Lopes
342 c890f66a Jose A. Lopes
luxid :: String
343 c890f66a Jose A. Lopes
luxid = Runtime.daemonName GanetiLuxid
344 85c48fbb Jose A. Lopes
345 c890f66a Jose A. Lopes
rapi :: String
346 c890f66a Jose A. Lopes
rapi = Runtime.daemonName GanetiRapi
347 85c48fbb Jose A. Lopes
348 c890f66a Jose A. Lopes
daemons :: FrozenSet String
349 c890f66a Jose A. Lopes
daemons =
350 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [confd,
351 c890f66a Jose A. Lopes
                       luxid,
352 c890f66a Jose A. Lopes
                       masterd,
353 c890f66a Jose A. Lopes
                       mond,
354 c890f66a Jose A. Lopes
                       noded,
355 c890f66a Jose A. Lopes
                       rapi]
356 85c48fbb Jose A. Lopes
357 c890f66a Jose A. Lopes
defaultConfdPort :: Int
358 c890f66a Jose A. Lopes
defaultConfdPort = 1814
359 85c48fbb Jose A. Lopes
360 c890f66a Jose A. Lopes
defaultMondPort :: Int
361 c890f66a Jose A. Lopes
defaultMondPort = 1815
362 85c48fbb Jose A. Lopes
363 c890f66a Jose A. Lopes
defaultNodedPort :: Int
364 c890f66a Jose A. Lopes
defaultNodedPort = 1811
365 85c48fbb Jose A. Lopes
366 c890f66a Jose A. Lopes
defaultRapiPort :: Int
367 c890f66a Jose A. Lopes
defaultRapiPort = 5080
368 85c48fbb Jose A. Lopes
369 c890f66a Jose A. Lopes
daemonsPorts :: Map String (Protocol, Int)
370 c890f66a Jose A. Lopes
daemonsPorts =
371 c890f66a Jose A. Lopes
  Map.fromList [(confd, (Udp, defaultConfdPort)),
372 c890f66a Jose A. Lopes
                (mond, (Tcp, defaultMondPort)),
373 c890f66a Jose A. Lopes
                (noded, (Tcp, defaultNodedPort)),
374 c890f66a Jose A. Lopes
                (rapi, (Tcp, defaultRapiPort)),
375 c890f66a Jose A. Lopes
                (ssh, (Tcp, 22))]
376 85c48fbb Jose A. Lopes
377 74129b52 Jose A. Lopes
firstDrbdPort :: Int
378 74129b52 Jose A. Lopes
firstDrbdPort = 11000
379 74129b52 Jose A. Lopes
380 74129b52 Jose A. Lopes
lastDrbdPort :: Int
381 74129b52 Jose A. Lopes
lastDrbdPort = 14999
382 74129b52 Jose A. Lopes
383 c890f66a Jose A. Lopes
daemonsLogbase :: Map String String
384 c890f66a Jose A. Lopes
daemonsLogbase =
385 c890f66a Jose A. Lopes
  Map.fromList
386 c890f66a Jose A. Lopes
  [ (Runtime.daemonName d, Runtime.daemonLogBase d) | d <- [minBound..] ]
387 85c48fbb Jose A. Lopes
388 e0007cf1 Jose A. Lopes
daemonsExtraLogbase :: Map String (Map String String)
389 e0007cf1 Jose A. Lopes
daemonsExtraLogbase =
390 e0007cf1 Jose A. Lopes
  Map.fromList $
391 e0007cf1 Jose A. Lopes
  map (Runtime.daemonName *** id)
392 e0007cf1 Jose A. Lopes
  [ (GanetiMond, Map.fromList
393 e0007cf1 Jose A. Lopes
                 [ ("access", Runtime.daemonsExtraLogbase GanetiMond AccessLog)
394 e0007cf1 Jose A. Lopes
                 , ("error", Runtime.daemonsExtraLogbase GanetiMond ErrorLog)
395 e0007cf1 Jose A. Lopes
                 ])
396 e0007cf1 Jose A. Lopes
  ]
397 e0007cf1 Jose A. Lopes
398 c890f66a Jose A. Lopes
extraLogreasonAccess :: String
399 c890f66a Jose A. Lopes
extraLogreasonAccess = Runtime.daemonsExtraLogbase GanetiMond AccessLog
400 85c48fbb Jose A. Lopes
401 c890f66a Jose A. Lopes
extraLogreasonError :: String
402 c890f66a Jose A. Lopes
extraLogreasonError = Runtime.daemonsExtraLogbase GanetiMond ErrorLog
403 85c48fbb Jose A. Lopes
404 c890f66a Jose A. Lopes
devConsole :: String
405 c890f66a Jose A. Lopes
devConsole = ConstantUtils.devConsole
406 85c48fbb Jose A. Lopes
407 0412a686 Jose A. Lopes
procMounts :: String
408 0412a686 Jose A. Lopes
procMounts = "/proc/mounts"
409 0412a686 Jose A. Lopes
410 5d4e1402 Jose A. Lopes
-- * Luxi (Local UniX Interface) related constants
411 5d4e1402 Jose A. Lopes
412 5d4e1402 Jose A. Lopes
luxiEom :: PythonChar
413 5d4e1402 Jose A. Lopes
luxiEom = PythonChar '\x03'
414 5d4e1402 Jose A. Lopes
415 5d4e1402 Jose A. Lopes
-- | Environment variable for the luxi override socket
416 5d4e1402 Jose A. Lopes
luxiOverride :: String
417 5d4e1402 Jose A. Lopes
luxiOverride = "FORCE_LUXI_SOCKET"
418 5d4e1402 Jose A. Lopes
419 5d4e1402 Jose A. Lopes
luxiOverrideMaster :: String
420 5d4e1402 Jose A. Lopes
luxiOverrideMaster = "master"
421 5d4e1402 Jose A. Lopes
422 5d4e1402 Jose A. Lopes
luxiOverrideQuery :: String
423 5d4e1402 Jose A. Lopes
luxiOverrideQuery = "query"
424 5d4e1402 Jose A. Lopes
425 5d4e1402 Jose A. Lopes
luxiVersion :: Int
426 5d4e1402 Jose A. Lopes
luxiVersion = configVersion
427 5d4e1402 Jose A. Lopes
428 c890f66a Jose A. Lopes
-- * Syslog
429 85c48fbb Jose A. Lopes
430 c890f66a Jose A. Lopes
syslogUsage :: String
431 c890f66a Jose A. Lopes
syslogUsage = AutoConf.syslogUsage
432 85c48fbb Jose A. Lopes
433 c890f66a Jose A. Lopes
syslogNo :: String
434 c890f66a Jose A. Lopes
syslogNo = Logging.syslogUsageToRaw SyslogNo
435 85c48fbb Jose A. Lopes
436 c890f66a Jose A. Lopes
syslogYes :: String
437 c890f66a Jose A. Lopes
syslogYes = Logging.syslogUsageToRaw SyslogYes
438 85c48fbb Jose A. Lopes
439 c890f66a Jose A. Lopes
syslogOnly :: String
440 c890f66a Jose A. Lopes
syslogOnly = Logging.syslogUsageToRaw SyslogOnly
441 85c48fbb Jose A. Lopes
442 c890f66a Jose A. Lopes
syslogSocket :: String
443 c890f66a Jose A. Lopes
syslogSocket = "/dev/log"
444 85c48fbb Jose A. Lopes
445 0412a686 Jose A. Lopes
exportConfFile :: String
446 0412a686 Jose A. Lopes
exportConfFile = "config.ini"
447 0412a686 Jose A. Lopes
448 c890f66a Jose A. Lopes
-- * Xen
449 85c48fbb Jose A. Lopes
450 c890f66a Jose A. Lopes
xenBootloader :: String
451 c890f66a Jose A. Lopes
xenBootloader = AutoConf.xenBootloader
452 85c48fbb Jose A. Lopes
453 c890f66a Jose A. Lopes
xenCmdXl :: String
454 c890f66a Jose A. Lopes
xenCmdXl = "xl"
455 85c48fbb Jose A. Lopes
456 c890f66a Jose A. Lopes
xenCmdXm :: String
457 c890f66a Jose A. Lopes
xenCmdXm = "xm"
458 85c48fbb Jose A. Lopes
459 c890f66a Jose A. Lopes
xenInitrd :: String
460 c890f66a Jose A. Lopes
xenInitrd = AutoConf.xenInitrd
461 85c48fbb Jose A. Lopes
462 c890f66a Jose A. Lopes
xenKernel :: String
463 c890f66a Jose A. Lopes
xenKernel = AutoConf.xenKernel
464 85c48fbb Jose A. Lopes
465 c890f66a Jose A. Lopes
-- FIXME: perhaps rename to 'validXenCommands' for consistency with
466 c890f66a Jose A. Lopes
-- other constants
467 c890f66a Jose A. Lopes
knownXenCommands :: FrozenSet String
468 c890f66a Jose A. Lopes
knownXenCommands = ConstantUtils.mkSet [xenCmdXl, xenCmdXm]
469 85c48fbb Jose A. Lopes
470 3b170ad4 Jose A. Lopes
-- * KVM and socat
471 3b170ad4 Jose A. Lopes
472 3b170ad4 Jose A. Lopes
kvmPath :: String
473 3b170ad4 Jose A. Lopes
kvmPath = AutoConf.kvmPath
474 3b170ad4 Jose A. Lopes
475 3b170ad4 Jose A. Lopes
kvmKernel :: String
476 3b170ad4 Jose A. Lopes
kvmKernel = AutoConf.kvmKernel
477 3b170ad4 Jose A. Lopes
478 3b170ad4 Jose A. Lopes
socatEscapeCode :: String
479 3b170ad4 Jose A. Lopes
socatEscapeCode = "0x1d"
480 3b170ad4 Jose A. Lopes
481 3b170ad4 Jose A. Lopes
socatPath :: String
482 3b170ad4 Jose A. Lopes
socatPath = AutoConf.socatPath
483 3b170ad4 Jose A. Lopes
484 3b170ad4 Jose A. Lopes
socatUseCompress :: Bool
485 3b170ad4 Jose A. Lopes
socatUseCompress = AutoConf.socatUseCompress
486 3b170ad4 Jose A. Lopes
487 3b170ad4 Jose A. Lopes
socatUseEscape :: Bool
488 3b170ad4 Jose A. Lopes
socatUseEscape = AutoConf.socatUseEscape
489 3b170ad4 Jose A. Lopes
490 3f5fd161 Jose A. Lopes
-- * Console types
491 3f5fd161 Jose A. Lopes
492 3f5fd161 Jose A. Lopes
-- | Display a message for console access
493 3f5fd161 Jose A. Lopes
consMessage :: String
494 3f5fd161 Jose A. Lopes
consMessage = "msg"
495 3f5fd161 Jose A. Lopes
496 3f5fd161 Jose A. Lopes
-- | Console as SPICE server
497 3f5fd161 Jose A. Lopes
consSpice :: String
498 3f5fd161 Jose A. Lopes
consSpice = "spice"
499 3f5fd161 Jose A. Lopes
500 3f5fd161 Jose A. Lopes
-- | Console as SSH command
501 3f5fd161 Jose A. Lopes
consSsh :: String
502 3f5fd161 Jose A. Lopes
consSsh = "ssh"
503 3f5fd161 Jose A. Lopes
504 3f5fd161 Jose A. Lopes
-- | Console as VNC server
505 3f5fd161 Jose A. Lopes
consVnc :: String
506 3f5fd161 Jose A. Lopes
consVnc = "vnc"
507 3f5fd161 Jose A. Lopes
508 3f5fd161 Jose A. Lopes
consAll :: FrozenSet String
509 3f5fd161 Jose A. Lopes
consAll = ConstantUtils.mkSet [consMessage, consSpice, consSsh, consVnc]
510 3f5fd161 Jose A. Lopes
511 3f5fd161 Jose A. Lopes
-- | RSA key bit length
512 3f5fd161 Jose A. Lopes
--
513 3f5fd161 Jose A. Lopes
-- For RSA keys more bits are better, but they also make operations
514 3f5fd161 Jose A. Lopes
-- more expensive. NIST SP 800-131 recommends a minimum of 2048 bits
515 3f5fd161 Jose A. Lopes
-- from the year 2010 on.
516 3f5fd161 Jose A. Lopes
rsaKeyBits :: Int
517 3f5fd161 Jose A. Lopes
rsaKeyBits = 2048
518 3f5fd161 Jose A. Lopes
519 3f5fd161 Jose A. Lopes
-- | Ciphers allowed for SSL connections.
520 3f5fd161 Jose A. Lopes
--
521 3f5fd161 Jose A. Lopes
-- For the format, see ciphers(1). A better way to disable ciphers
522 3f5fd161 Jose A. Lopes
-- would be to use the exclamation mark (!), but socat versions below
523 3f5fd161 Jose A. Lopes
-- 1.5 can't parse exclamation marks in options properly. When
524 3f5fd161 Jose A. Lopes
-- modifying the ciphers, ensure not to accidentially add something
525 3f5fd161 Jose A. Lopes
-- after it's been removed. Use the "openssl" utility to check the
526 3f5fd161 Jose A. Lopes
-- allowed ciphers, e.g.  "openssl ciphers -v HIGH:-DES".
527 3f5fd161 Jose A. Lopes
opensslCiphers :: String
528 3f5fd161 Jose A. Lopes
opensslCiphers = "HIGH:-DES:-3DES:-EXPORT:-ADH"
529 3f5fd161 Jose A. Lopes
530 3f5fd161 Jose A. Lopes
-- * X509
531 3f5fd161 Jose A. Lopes
532 3f5fd161 Jose A. Lopes
-- | commonName (CN) used in certificates
533 3f5fd161 Jose A. Lopes
x509CertCn :: String
534 3f5fd161 Jose A. Lopes
x509CertCn = "ganeti.example.com"
535 3f5fd161 Jose A. Lopes
536 3f5fd161 Jose A. Lopes
-- | Default validity of certificates in days
537 3f5fd161 Jose A. Lopes
x509CertDefaultValidity :: Int
538 3f5fd161 Jose A. Lopes
x509CertDefaultValidity = 365 * 5
539 3f5fd161 Jose A. Lopes
540 3f5fd161 Jose A. Lopes
x509CertSignatureHeader :: String
541 3f5fd161 Jose A. Lopes
x509CertSignatureHeader = "X-Ganeti-Signature"
542 3f5fd161 Jose A. Lopes
543 3f5fd161 Jose A. Lopes
-- | Digest used to sign certificates ("openssl x509" uses SHA1 by default)
544 3f5fd161 Jose A. Lopes
x509CertSignDigest :: String
545 3f5fd161 Jose A. Lopes
x509CertSignDigest = "SHA1"
546 3f5fd161 Jose A. Lopes
547 3f5fd161 Jose A. Lopes
-- * Import/export daemon mode
548 3f5fd161 Jose A. Lopes
549 3f5fd161 Jose A. Lopes
iemExport :: String
550 3f5fd161 Jose A. Lopes
iemExport = "export"
551 3f5fd161 Jose A. Lopes
552 3f5fd161 Jose A. Lopes
iemImport :: String
553 3f5fd161 Jose A. Lopes
iemImport = "import"
554 3f5fd161 Jose A. Lopes
555 3f5fd161 Jose A. Lopes
-- * Import/export transport compression
556 3f5fd161 Jose A. Lopes
557 3f5fd161 Jose A. Lopes
iecGzip :: String
558 3f5fd161 Jose A. Lopes
iecGzip = "gzip"
559 3f5fd161 Jose A. Lopes
560 3f5fd161 Jose A. Lopes
iecNone :: String
561 3f5fd161 Jose A. Lopes
iecNone = "none"
562 3f5fd161 Jose A. Lopes
563 3f5fd161 Jose A. Lopes
iecAll :: [String]
564 3f5fd161 Jose A. Lopes
iecAll = [iecGzip, iecNone]
565 3f5fd161 Jose A. Lopes
566 3f5fd161 Jose A. Lopes
ieCustomSize :: String
567 3f5fd161 Jose A. Lopes
ieCustomSize = "fd"
568 3f5fd161 Jose A. Lopes
569 3f5fd161 Jose A. Lopes
-- * Import/export I/O
570 3f5fd161 Jose A. Lopes
571 3f5fd161 Jose A. Lopes
-- | Direct file I/O, equivalent to a shell's I/O redirection using
572 3f5fd161 Jose A. Lopes
-- '<' or '>'
573 3f5fd161 Jose A. Lopes
ieioFile :: String
574 3f5fd161 Jose A. Lopes
ieioFile = "file"
575 3f5fd161 Jose A. Lopes
576 3f5fd161 Jose A. Lopes
-- | Raw block device I/O using "dd"
577 3f5fd161 Jose A. Lopes
ieioRawDisk :: String
578 3f5fd161 Jose A. Lopes
ieioRawDisk = "raw"
579 3f5fd161 Jose A. Lopes
580 3f5fd161 Jose A. Lopes
-- | OS definition import/export script
581 3f5fd161 Jose A. Lopes
ieioScript :: String
582 3f5fd161 Jose A. Lopes
ieioScript = "script"
583 3f5fd161 Jose A. Lopes
584 a2b55ccd Jose A. Lopes
-- * Values
585 a2b55ccd Jose A. Lopes
586 a2b55ccd Jose A. Lopes
valueDefault :: String
587 a2b55ccd Jose A. Lopes
valueDefault = "default"
588 a2b55ccd Jose A. Lopes
589 a2b55ccd Jose A. Lopes
valueAuto :: String
590 a2b55ccd Jose A. Lopes
valueAuto = "auto"
591 a2b55ccd Jose A. Lopes
592 a2b55ccd Jose A. Lopes
valueGenerate :: String
593 a2b55ccd Jose A. Lopes
valueGenerate = "generate"
594 a2b55ccd Jose A. Lopes
595 a2b55ccd Jose A. Lopes
valueNone :: String
596 a2b55ccd Jose A. Lopes
valueNone = "none"
597 a2b55ccd Jose A. Lopes
598 a2b55ccd Jose A. Lopes
valueTrue :: String
599 a2b55ccd Jose A. Lopes
valueTrue = "true"
600 a2b55ccd Jose A. Lopes
601 a2b55ccd Jose A. Lopes
valueFalse :: String
602 a2b55ccd Jose A. Lopes
valueFalse = "false"
603 a2b55ccd Jose A. Lopes
604 a2b55ccd Jose A. Lopes
valueHsNothing :: Map String PythonNone
605 a2b55ccd Jose A. Lopes
valueHsNothing = Map.fromList [("Nothing", PythonNone)]
606 a2b55ccd Jose A. Lopes
607 3f5fd161 Jose A. Lopes
-- * Hooks
608 3f5fd161 Jose A. Lopes
609 3f5fd161 Jose A. Lopes
hooksNameCfgupdate :: String
610 3f5fd161 Jose A. Lopes
hooksNameCfgupdate = "config-update"
611 3f5fd161 Jose A. Lopes
612 3f5fd161 Jose A. Lopes
hooksNameWatcher :: String
613 3f5fd161 Jose A. Lopes
hooksNameWatcher = "watcher"
614 3f5fd161 Jose A. Lopes
615 3f5fd161 Jose A. Lopes
hooksPath :: String
616 3f5fd161 Jose A. Lopes
hooksPath = "/sbin:/bin:/usr/sbin:/usr/bin"
617 3f5fd161 Jose A. Lopes
618 3f5fd161 Jose A. Lopes
hooksPhasePost :: String
619 3f5fd161 Jose A. Lopes
hooksPhasePost = "post"
620 3f5fd161 Jose A. Lopes
621 3f5fd161 Jose A. Lopes
hooksPhasePre :: String
622 3f5fd161 Jose A. Lopes
hooksPhasePre = "pre"
623 3f5fd161 Jose A. Lopes
624 3f5fd161 Jose A. Lopes
hooksVersion :: Int
625 3f5fd161 Jose A. Lopes
hooksVersion = 2
626 3f5fd161 Jose A. Lopes
627 3f5fd161 Jose A. Lopes
-- * Hooks subject type (what object type does the LU deal with)
628 3f5fd161 Jose A. Lopes
629 3f5fd161 Jose A. Lopes
htypeCluster :: String
630 3f5fd161 Jose A. Lopes
htypeCluster = "CLUSTER"
631 3f5fd161 Jose A. Lopes
632 3f5fd161 Jose A. Lopes
htypeGroup :: String
633 3f5fd161 Jose A. Lopes
htypeGroup = "GROUP"
634 3f5fd161 Jose A. Lopes
635 3f5fd161 Jose A. Lopes
htypeInstance :: String
636 3f5fd161 Jose A. Lopes
htypeInstance = "INSTANCE"
637 3f5fd161 Jose A. Lopes
638 3f5fd161 Jose A. Lopes
htypeNetwork :: String
639 3f5fd161 Jose A. Lopes
htypeNetwork = "NETWORK"
640 3f5fd161 Jose A. Lopes
641 3f5fd161 Jose A. Lopes
htypeNode :: String
642 3f5fd161 Jose A. Lopes
htypeNode = "NODE"
643 3f5fd161 Jose A. Lopes
644 3f5fd161 Jose A. Lopes
-- * Hkr
645 3f5fd161 Jose A. Lopes
646 3f5fd161 Jose A. Lopes
hkrSkip :: Int
647 3f5fd161 Jose A. Lopes
hkrSkip = 0
648 3f5fd161 Jose A. Lopes
649 3f5fd161 Jose A. Lopes
hkrFail :: Int
650 3f5fd161 Jose A. Lopes
hkrFail = 1
651 3f5fd161 Jose A. Lopes
652 3f5fd161 Jose A. Lopes
hkrSuccess :: Int
653 3f5fd161 Jose A. Lopes
hkrSuccess = 2
654 3f5fd161 Jose A. Lopes
655 c890f66a Jose A. Lopes
-- * Storage types
656 85c48fbb Jose A. Lopes
657 c890f66a Jose A. Lopes
stBlock :: String
658 c890f66a Jose A. Lopes
stBlock = Types.storageTypeToRaw StorageBlock
659 85c48fbb Jose A. Lopes
660 c890f66a Jose A. Lopes
stDiskless :: String
661 c890f66a Jose A. Lopes
stDiskless = Types.storageTypeToRaw StorageDiskless
662 85c48fbb Jose A. Lopes
663 c890f66a Jose A. Lopes
stExt :: String
664 c890f66a Jose A. Lopes
stExt = Types.storageTypeToRaw StorageExt
665 85c48fbb Jose A. Lopes
666 c890f66a Jose A. Lopes
stFile :: String
667 c890f66a Jose A. Lopes
stFile = Types.storageTypeToRaw StorageFile
668 85c48fbb Jose A. Lopes
669 c890f66a Jose A. Lopes
stLvmPv :: String
670 c890f66a Jose A. Lopes
stLvmPv = Types.storageTypeToRaw StorageLvmPv
671 85c48fbb Jose A. Lopes
672 c890f66a Jose A. Lopes
stLvmVg :: String
673 c890f66a Jose A. Lopes
stLvmVg = Types.storageTypeToRaw StorageLvmVg
674 85c48fbb Jose A. Lopes
675 c890f66a Jose A. Lopes
stRados :: String
676 c890f66a Jose A. Lopes
stRados = Types.storageTypeToRaw StorageRados
677 85c48fbb Jose A. Lopes
678 c890f66a Jose A. Lopes
storageTypes :: FrozenSet String
679 c890f66a Jose A. Lopes
storageTypes = ConstantUtils.mkSet $ map Types.storageTypeToRaw [minBound..]
680 85c48fbb Jose A. Lopes
681 9be1ff8c Jose A. Lopes
-- | The set of storage types for which storage reporting is available
682 9be1ff8c Jose A. Lopes
--
683 9be1ff8c Jose A. Lopes
-- FIXME: Remove this, once storage reporting is available for all
684 9be1ff8c Jose A. Lopes
-- types.
685 9be1ff8c Jose A. Lopes
stsReport :: FrozenSet String
686 9be1ff8c Jose A. Lopes
stsReport = ConstantUtils.mkSet [stFile, stLvmPv, stLvmVg]
687 9be1ff8c Jose A. Lopes
688 c890f66a Jose A. Lopes
-- * Storage fields
689 c890f66a Jose A. Lopes
-- ** First two are valid in LU context only, not passed to backend
690 85c48fbb Jose A. Lopes
691 c890f66a Jose A. Lopes
sfNode :: String
692 c890f66a Jose A. Lopes
sfNode = "node"
693 85c48fbb Jose A. Lopes
694 c890f66a Jose A. Lopes
sfType :: String
695 c890f66a Jose A. Lopes
sfType = "type"
696 85c48fbb Jose A. Lopes
697 c890f66a Jose A. Lopes
-- ** and the rest are valid in backend
698 85c48fbb Jose A. Lopes
699 c890f66a Jose A. Lopes
sfAllocatable :: String
700 c890f66a Jose A. Lopes
sfAllocatable = Types.storageFieldToRaw SFAllocatable
701 85c48fbb Jose A. Lopes
702 c890f66a Jose A. Lopes
sfFree :: String
703 c890f66a Jose A. Lopes
sfFree = Types.storageFieldToRaw SFFree
704 85c48fbb Jose A. Lopes
705 c890f66a Jose A. Lopes
sfName :: String
706 c890f66a Jose A. Lopes
sfName = Types.storageFieldToRaw SFName
707 85c48fbb Jose A. Lopes
708 c890f66a Jose A. Lopes
sfSize :: String
709 c890f66a Jose A. Lopes
sfSize = Types.storageFieldToRaw SFSize
710 85c48fbb Jose A. Lopes
711 c890f66a Jose A. Lopes
sfUsed :: String
712 c890f66a Jose A. Lopes
sfUsed = Types.storageFieldToRaw SFUsed
713 85c48fbb Jose A. Lopes
714 9be1ff8c Jose A. Lopes
validStorageFields :: FrozenSet String
715 9be1ff8c Jose A. Lopes
validStorageFields =
716 9be1ff8c Jose A. Lopes
  ConstantUtils.mkSet $ map Types.storageFieldToRaw [minBound..] ++
717 9be1ff8c Jose A. Lopes
                        [sfNode, sfType]
718 9be1ff8c Jose A. Lopes
719 9be1ff8c Jose A. Lopes
modifiableStorageFields :: Map String (FrozenSet String)
720 9be1ff8c Jose A. Lopes
modifiableStorageFields =
721 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmPv,
722 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [sfAllocatable])]
723 9be1ff8c Jose A. Lopes
724 9be1ff8c Jose A. Lopes
-- * Storage operations
725 9be1ff8c Jose A. Lopes
726 9be1ff8c Jose A. Lopes
soFixConsistency :: String
727 9be1ff8c Jose A. Lopes
soFixConsistency = "fix-consistency"
728 9be1ff8c Jose A. Lopes
729 9be1ff8c Jose A. Lopes
validStorageOperations :: Map String (FrozenSet String)
730 9be1ff8c Jose A. Lopes
validStorageOperations =
731 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmVg,
732 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [soFixConsistency])]
733 9be1ff8c Jose A. Lopes
734 9be1ff8c Jose A. Lopes
-- * Volume fields
735 9be1ff8c Jose A. Lopes
736 9be1ff8c Jose A. Lopes
vfDev :: String
737 9be1ff8c Jose A. Lopes
vfDev = "dev"
738 9be1ff8c Jose A. Lopes
739 9be1ff8c Jose A. Lopes
vfInstance :: String
740 9be1ff8c Jose A. Lopes
vfInstance = "instance"
741 9be1ff8c Jose A. Lopes
742 9be1ff8c Jose A. Lopes
vfName :: String
743 9be1ff8c Jose A. Lopes
vfName = "name"
744 9be1ff8c Jose A. Lopes
745 9be1ff8c Jose A. Lopes
vfNode :: String
746 9be1ff8c Jose A. Lopes
vfNode = "node"
747 9be1ff8c Jose A. Lopes
748 9be1ff8c Jose A. Lopes
vfPhys :: String
749 9be1ff8c Jose A. Lopes
vfPhys = "phys"
750 9be1ff8c Jose A. Lopes
751 9be1ff8c Jose A. Lopes
vfSize :: String
752 9be1ff8c Jose A. Lopes
vfSize = "size"
753 9be1ff8c Jose A. Lopes
754 9be1ff8c Jose A. Lopes
vfVg :: String
755 9be1ff8c Jose A. Lopes
vfVg = "vg"
756 9be1ff8c Jose A. Lopes
757 59bcd180 Jose A. Lopes
-- * Local disk status
758 59bcd180 Jose A. Lopes
759 59bcd180 Jose A. Lopes
ldsFaulty :: Int
760 59bcd180 Jose A. Lopes
ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
761 59bcd180 Jose A. Lopes
762 59bcd180 Jose A. Lopes
ldsOkay :: Int
763 59bcd180 Jose A. Lopes
ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
764 59bcd180 Jose A. Lopes
765 59bcd180 Jose A. Lopes
ldsUnknown :: Int
766 59bcd180 Jose A. Lopes
ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
767 59bcd180 Jose A. Lopes
768 59bcd180 Jose A. Lopes
ldsNames :: Map Int String
769 59bcd180 Jose A. Lopes
ldsNames =
770 59bcd180 Jose A. Lopes
  Map.fromList [ (Types.localDiskStatusToRaw ds,
771 59bcd180 Jose A. Lopes
                  localDiskStatusName ds) | ds <- [minBound..] ]
772 59bcd180 Jose A. Lopes
773 c890f66a Jose A. Lopes
-- * Disk template types
774 85c48fbb Jose A. Lopes
775 c890f66a Jose A. Lopes
dtDiskless :: String
776 c890f66a Jose A. Lopes
dtDiskless = Types.diskTemplateToRaw DTDiskless
777 85c48fbb Jose A. Lopes
778 c890f66a Jose A. Lopes
dtFile :: String
779 c890f66a Jose A. Lopes
dtFile = Types.diskTemplateToRaw DTFile
780 85c48fbb Jose A. Lopes
781 c890f66a Jose A. Lopes
dtSharedFile :: String
782 c890f66a Jose A. Lopes
dtSharedFile = Types.diskTemplateToRaw DTSharedFile
783 85c48fbb Jose A. Lopes
784 c890f66a Jose A. Lopes
dtPlain :: String
785 c890f66a Jose A. Lopes
dtPlain = Types.diskTemplateToRaw DTPlain
786 85c48fbb Jose A. Lopes
787 c890f66a Jose A. Lopes
dtBlock :: String
788 c890f66a Jose A. Lopes
dtBlock = Types.diskTemplateToRaw DTBlock
789 85c48fbb Jose A. Lopes
790 c890f66a Jose A. Lopes
dtDrbd8 :: String
791 c890f66a Jose A. Lopes
dtDrbd8 = Types.diskTemplateToRaw DTDrbd8
792 85c48fbb Jose A. Lopes
793 c890f66a Jose A. Lopes
dtRbd :: String
794 c890f66a Jose A. Lopes
dtRbd = Types.diskTemplateToRaw DTRbd
795 85c48fbb Jose A. Lopes
796 c890f66a Jose A. Lopes
dtExt :: String
797 c890f66a Jose A. Lopes
dtExt = Types.diskTemplateToRaw DTExt
798 85c48fbb Jose A. Lopes
799 c890f66a Jose A. Lopes
-- | This is used to order determine the default disk template when
800 c890f66a Jose A. Lopes
-- the list of enabled disk templates is inferred from the current
801 c890f66a Jose A. Lopes
-- state of the cluster.  This only happens on an upgrade from a
802 c890f66a Jose A. Lopes
-- version of Ganeti that did not support the 'enabled_disk_templates'
803 c890f66a Jose A. Lopes
-- so far.
804 c890f66a Jose A. Lopes
diskTemplatePreference :: [String]
805 c890f66a Jose A. Lopes
diskTemplatePreference =
806 c890f66a Jose A. Lopes
  map Types.diskTemplateToRaw
807 c890f66a Jose A. Lopes
  [DTBlock, DTDiskless, DTDrbd8, DTExt, DTFile, DTPlain, DTRbd, DTSharedFile]
808 85c48fbb Jose A. Lopes
809 c890f66a Jose A. Lopes
diskTemplates :: FrozenSet String
810 c890f66a Jose A. Lopes
diskTemplates = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [minBound..]
811 85c48fbb Jose A. Lopes
812 c890f66a Jose A. Lopes
-- | Disk templates that are enabled by default
813 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates :: [String]
814 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
815 85c48fbb Jose A. Lopes
816 9be1ff8c Jose A. Lopes
-- | Mapping of disk templates to storage types
817 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType :: Map String String
818 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType =
819 9be1ff8c Jose A. Lopes
  Map.fromList $
820 9be1ff8c Jose A. Lopes
  map (Types.diskTemplateToRaw *** Types.storageTypeToRaw)
821 9be1ff8c Jose A. Lopes
  [(DTBlock, StorageBlock),
822 9be1ff8c Jose A. Lopes
   (DTDrbd8, StorageLvmVg),
823 9be1ff8c Jose A. Lopes
   (DTExt, StorageExt),
824 9be1ff8c Jose A. Lopes
   (DTSharedFile, StorageFile),
825 9be1ff8c Jose A. Lopes
   (DTFile, StorageFile),
826 9be1ff8c Jose A. Lopes
   (DTDiskless, StorageDiskless),
827 9be1ff8c Jose A. Lopes
   (DTPlain, StorageLvmVg),
828 9be1ff8c Jose A. Lopes
   (DTRbd, StorageRados)]
829 9be1ff8c Jose A. Lopes
830 4c1275f9 Jose A. Lopes
-- | The set of network-mirrored disk templates
831 4c1275f9 Jose A. Lopes
dtsIntMirror :: FrozenSet String
832 4c1275f9 Jose A. Lopes
dtsIntMirror = ConstantUtils.mkSet [dtDrbd8]
833 4c1275f9 Jose A. Lopes
834 4c1275f9 Jose A. Lopes
-- | 'DTDiskless' is 'trivially' externally mirrored
835 4c1275f9 Jose A. Lopes
dtsExtMirror :: FrozenSet String
836 4c1275f9 Jose A. Lopes
dtsExtMirror =
837 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
838 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTDiskless, DTBlock, DTExt, DTSharedFile, DTRbd]
839 4c1275f9 Jose A. Lopes
840 4c1275f9 Jose A. Lopes
-- | The set of non-lvm-based disk templates
841 4c1275f9 Jose A. Lopes
dtsNotLvm :: FrozenSet String
842 4c1275f9 Jose A. Lopes
dtsNotLvm =
843 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
844 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
845 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDiskless, DTBlock, DTExt, DTFile, DTRbd]
846 4c1275f9 Jose A. Lopes
847 4c1275f9 Jose A. Lopes
-- | The set of disk templates which can be grown
848 4c1275f9 Jose A. Lopes
dtsGrowable :: FrozenSet String
849 4c1275f9 Jose A. Lopes
dtsGrowable =
850 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
851 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
852 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDrbd8, DTPlain, DTExt, DTFile, DTRbd]
853 4c1275f9 Jose A. Lopes
854 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow adoption
855 4c1275f9 Jose A. Lopes
dtsMayAdopt :: FrozenSet String
856 4c1275f9 Jose A. Lopes
dtsMayAdopt =
857 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTBlock, DTPlain]
858 4c1275f9 Jose A. Lopes
859 4c1275f9 Jose A. Lopes
-- | The set of disk templates that *must* use adoption
860 4c1275f9 Jose A. Lopes
dtsMustAdopt :: FrozenSet String
861 4c1275f9 Jose A. Lopes
dtsMustAdopt = ConstantUtils.mkSet [Types.diskTemplateToRaw DTBlock]
862 4c1275f9 Jose A. Lopes
863 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow migrations
864 4c1275f9 Jose A. Lopes
dtsMirrored :: FrozenSet String
865 4c1275f9 Jose A. Lopes
dtsMirrored = dtsIntMirror `ConstantUtils.union` dtsExtMirror
866 4c1275f9 Jose A. Lopes
867 4c1275f9 Jose A. Lopes
-- | The set of file based disk templates
868 4c1275f9 Jose A. Lopes
dtsFilebased :: FrozenSet String
869 4c1275f9 Jose A. Lopes
dtsFilebased =
870 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTSharedFile, DTFile]
871 4c1275f9 Jose A. Lopes
872 4c1275f9 Jose A. Lopes
-- | The set of disk templates that can be moved by copying
873 4c1275f9 Jose A. Lopes
--
874 4c1275f9 Jose A. Lopes
-- Note: a requirement is that they're not accessed externally or
875 4c1275f9 Jose A. Lopes
-- shared between nodes; in particular, sharedfile is not suitable.
876 4c1275f9 Jose A. Lopes
dtsCopyable :: FrozenSet String
877 4c1275f9 Jose A. Lopes
dtsCopyable =
878 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTFile]
879 4c1275f9 Jose A. Lopes
880 4c1275f9 Jose A. Lopes
-- | The set of disk templates that are supported by exclusive_storage
881 4c1275f9 Jose A. Lopes
dtsExclStorage :: FrozenSet String
882 4c1275f9 Jose A. Lopes
dtsExclStorage = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain]
883 4c1275f9 Jose A. Lopes
884 4c1275f9 Jose A. Lopes
-- | Templates for which we don't perform checks on free space
885 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck :: FrozenSet String
886 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck =
887 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
888 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTExt, DTSharedFile, DTFile, DTRbd]
889 4c1275f9 Jose A. Lopes
890 4c1275f9 Jose A. Lopes
dtsBlock :: FrozenSet String
891 4c1275f9 Jose A. Lopes
dtsBlock =
892 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
893 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTPlain, DTDrbd8, DTBlock, DTRbd, DTExt]
894 4c1275f9 Jose A. Lopes
895 fa8d6aa7 Jose A. Lopes
-- | The set of lvm-based disk templates
896 fa8d6aa7 Jose A. Lopes
dtsLvm :: FrozenSet String
897 fa8d6aa7 Jose A. Lopes
dtsLvm = diskTemplates `ConstantUtils.difference` dtsNotLvm
898 fa8d6aa7 Jose A. Lopes
899 c5539592 Jose A. Lopes
-- * Drbd
900 c5539592 Jose A. Lopes
901 c5539592 Jose A. Lopes
drbdHmacAlg :: String
902 c5539592 Jose A. Lopes
drbdHmacAlg = "md5"
903 c5539592 Jose A. Lopes
904 c5539592 Jose A. Lopes
drbdDefaultNetProtocol :: String
905 c5539592 Jose A. Lopes
drbdDefaultNetProtocol = "C"
906 c5539592 Jose A. Lopes
907 c5539592 Jose A. Lopes
drbdMigrationNetProtocol :: String
908 c5539592 Jose A. Lopes
drbdMigrationNetProtocol = "C"
909 c5539592 Jose A. Lopes
910 c5539592 Jose A. Lopes
drbdStatusFile :: String
911 c5539592 Jose A. Lopes
drbdStatusFile = "/proc/drbd"
912 c5539592 Jose A. Lopes
913 c5539592 Jose A. Lopes
-- | Size of DRBD meta block device
914 c5539592 Jose A. Lopes
drbdMetaSize :: Int
915 c5539592 Jose A. Lopes
drbdMetaSize = 128
916 c5539592 Jose A. Lopes
917 c5539592 Jose A. Lopes
-- * Drbd barrier types
918 c5539592 Jose A. Lopes
919 c5539592 Jose A. Lopes
drbdBDiskBarriers :: String
920 c5539592 Jose A. Lopes
drbdBDiskBarriers = "b"
921 c5539592 Jose A. Lopes
922 c5539592 Jose A. Lopes
drbdBDiskDrain :: String
923 c5539592 Jose A. Lopes
drbdBDiskDrain = "d"
924 c5539592 Jose A. Lopes
925 c5539592 Jose A. Lopes
drbdBDiskFlush :: String
926 c5539592 Jose A. Lopes
drbdBDiskFlush = "f"
927 c5539592 Jose A. Lopes
928 c5539592 Jose A. Lopes
drbdBNone :: String
929 c5539592 Jose A. Lopes
drbdBNone = "n"
930 c5539592 Jose A. Lopes
931 3a715da0 Jose A. Lopes
-- | Valid barrier combinations: "n" or any non-null subset of "bfd"
932 3a715da0 Jose A. Lopes
drbdValidBarrierOpt :: FrozenSet (FrozenSet String)
933 3a715da0 Jose A. Lopes
drbdValidBarrierOpt =
934 3a715da0 Jose A. Lopes
  ConstantUtils.mkSet
935 3a715da0 Jose A. Lopes
  [ ConstantUtils.mkSet [drbdBNone]
936 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskBarriers]
937 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskDrain]
938 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskFlush]
939 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskDrain, drbdBDiskFlush]
940 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskBarriers, drbdBDiskDrain]
941 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskBarriers, drbdBDiskFlush]
942 3a715da0 Jose A. Lopes
  , ConstantUtils.mkSet [drbdBDiskBarriers, drbdBDiskFlush, drbdBDiskDrain]
943 3a715da0 Jose A. Lopes
  ]
944 3a715da0 Jose A. Lopes
945 c5539592 Jose A. Lopes
-- | Rbd tool command
946 c5539592 Jose A. Lopes
rbdCmd :: String
947 c5539592 Jose A. Lopes
rbdCmd = "rbd"
948 c5539592 Jose A. Lopes
949 c890f66a Jose A. Lopes
-- * File backend driver
950 85c48fbb Jose A. Lopes
951 c890f66a Jose A. Lopes
fdBlktap :: String
952 c890f66a Jose A. Lopes
fdBlktap = Types.fileDriverToRaw FileBlktap
953 85c48fbb Jose A. Lopes
954 c890f66a Jose A. Lopes
fdLoop :: String
955 c890f66a Jose A. Lopes
fdLoop = Types.fileDriverToRaw FileLoop
956 85c48fbb Jose A. Lopes
957 ad6f2bf3 Jose A. Lopes
fileDriver :: FrozenSet String
958 ad6f2bf3 Jose A. Lopes
fileDriver =
959 ad6f2bf3 Jose A. Lopes
  ConstantUtils.mkSet $
960 ad6f2bf3 Jose A. Lopes
  map Types.fileDriverToRaw [minBound..]
961 ad6f2bf3 Jose A. Lopes
962 59bcd180 Jose A. Lopes
-- | The set of drbd-like disk types
963 e8c86ab1 Klaus Aehlig
dtsDrbd :: FrozenSet String
964 e8c86ab1 Klaus Aehlig
dtsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
965 59bcd180 Jose A. Lopes
966 c890f66a Jose A. Lopes
-- * Disk access mode
967 85c48fbb Jose A. Lopes
968 c890f66a Jose A. Lopes
diskRdonly :: String
969 c890f66a Jose A. Lopes
diskRdonly = Types.diskModeToRaw DiskRdOnly
970 85c48fbb Jose A. Lopes
971 c890f66a Jose A. Lopes
diskRdwr :: String
972 c890f66a Jose A. Lopes
diskRdwr = Types.diskModeToRaw DiskRdWr
973 85c48fbb Jose A. Lopes
974 c890f66a Jose A. Lopes
diskAccessSet :: FrozenSet String
975 c890f66a Jose A. Lopes
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
976 85c48fbb Jose A. Lopes
977 a5450d2a Jose A. Lopes
-- * Disk replacement mode
978 a5450d2a Jose A. Lopes
979 a5450d2a Jose A. Lopes
replaceDiskAuto :: String
980 a5450d2a Jose A. Lopes
replaceDiskAuto = Types.replaceDisksModeToRaw ReplaceAuto
981 a5450d2a Jose A. Lopes
982 a5450d2a Jose A. Lopes
replaceDiskChg :: String
983 a5450d2a Jose A. Lopes
replaceDiskChg = Types.replaceDisksModeToRaw ReplaceNewSecondary
984 a5450d2a Jose A. Lopes
985 a5450d2a Jose A. Lopes
replaceDiskPri :: String
986 a5450d2a Jose A. Lopes
replaceDiskPri = Types.replaceDisksModeToRaw ReplaceOnPrimary
987 a5450d2a Jose A. Lopes
988 a5450d2a Jose A. Lopes
replaceDiskSec :: String
989 a5450d2a Jose A. Lopes
replaceDiskSec = Types.replaceDisksModeToRaw ReplaceOnSecondary
990 a5450d2a Jose A. Lopes
991 a5450d2a Jose A. Lopes
replaceModes :: FrozenSet String
992 a5450d2a Jose A. Lopes
replaceModes =
993 a5450d2a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.replaceDisksModeToRaw [minBound..]
994 a5450d2a Jose A. Lopes
995 c890f66a Jose A. Lopes
-- * Instance export mode
996 85c48fbb Jose A. Lopes
997 c890f66a Jose A. Lopes
exportModeLocal :: String
998 c890f66a Jose A. Lopes
exportModeLocal = Types.exportModeToRaw ExportModeLocal
999 85c48fbb Jose A. Lopes
1000 c890f66a Jose A. Lopes
exportModeRemote :: String
1001 c890f66a Jose A. Lopes
exportModeRemote = Types.exportModeToRaw ExportModeRemote
1002 85c48fbb Jose A. Lopes
1003 c890f66a Jose A. Lopes
exportModes :: FrozenSet String
1004 c890f66a Jose A. Lopes
exportModes = ConstantUtils.mkSet $ map Types.exportModeToRaw [minBound..]
1005 85c48fbb Jose A. Lopes
1006 c890f66a Jose A. Lopes
-- * Instance creation modes
1007 85c48fbb Jose A. Lopes
1008 c890f66a Jose A. Lopes
instanceCreate :: String
1009 c890f66a Jose A. Lopes
instanceCreate = Types.instCreateModeToRaw InstCreate
1010 85c48fbb Jose A. Lopes
1011 c890f66a Jose A. Lopes
instanceImport :: String
1012 c890f66a Jose A. Lopes
instanceImport = Types.instCreateModeToRaw InstImport
1013 85c48fbb Jose A. Lopes
1014 c890f66a Jose A. Lopes
instanceRemoteImport :: String
1015 c890f66a Jose A. Lopes
instanceRemoteImport = Types.instCreateModeToRaw InstRemoteImport
1016 85c48fbb Jose A. Lopes
1017 c890f66a Jose A. Lopes
instanceCreateModes :: FrozenSet String
1018 c890f66a Jose A. Lopes
instanceCreateModes =
1019 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.instCreateModeToRaw [minBound..]
1020 9413ef24 Jose A. Lopes
1021 6e18cc0d Jose A. Lopes
-- * Remote import/export handshake message and version
1022 6e18cc0d Jose A. Lopes
1023 6e18cc0d Jose A. Lopes
rieHandshake :: String
1024 6e18cc0d Jose A. Lopes
rieHandshake = "Hi, I'm Ganeti"
1025 6e18cc0d Jose A. Lopes
1026 6e18cc0d Jose A. Lopes
rieVersion :: Int
1027 6e18cc0d Jose A. Lopes
rieVersion = 0
1028 6e18cc0d Jose A. Lopes
1029 4c5cb91e Jose A. Lopes
-- | Remote import/export certificate validity (seconds)
1030 6e18cc0d Jose A. Lopes
rieCertValidity :: Int
1031 6e18cc0d Jose A. Lopes
rieCertValidity = 24 * 60 * 60
1032 6e18cc0d Jose A. Lopes
1033 6e18cc0d Jose A. Lopes
-- | Export only: how long to wait per connection attempt (seconds)
1034 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout :: Int
1035 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout = 20
1036 6e18cc0d Jose A. Lopes
1037 6e18cc0d Jose A. Lopes
-- | Export only: number of attempts to connect
1038 6e18cc0d Jose A. Lopes
rieConnectRetries :: Int
1039 6e18cc0d Jose A. Lopes
rieConnectRetries = 10
1040 6e18cc0d Jose A. Lopes
1041 6e18cc0d Jose A. Lopes
-- | Overall timeout for establishing connection
1042 6e18cc0d Jose A. Lopes
rieConnectTimeout :: Int
1043 6e18cc0d Jose A. Lopes
rieConnectTimeout = 180
1044 6e18cc0d Jose A. Lopes
1045 6e18cc0d Jose A. Lopes
-- | Give child process up to 5 seconds to exit after sending a signal
1046 6e18cc0d Jose A. Lopes
childLingerTimeout :: Double
1047 6e18cc0d Jose A. Lopes
childLingerTimeout = 5.0
1048 6e18cc0d Jose A. Lopes
1049 343dcda8 Jose A. Lopes
-- * Import/export config options
1050 343dcda8 Jose A. Lopes
1051 343dcda8 Jose A. Lopes
inisectBep :: String
1052 343dcda8 Jose A. Lopes
inisectBep = "backend"
1053 343dcda8 Jose A. Lopes
1054 343dcda8 Jose A. Lopes
inisectExp :: String
1055 343dcda8 Jose A. Lopes
inisectExp = "export"
1056 343dcda8 Jose A. Lopes
1057 343dcda8 Jose A. Lopes
inisectHyp :: String
1058 343dcda8 Jose A. Lopes
inisectHyp = "hypervisor"
1059 343dcda8 Jose A. Lopes
1060 343dcda8 Jose A. Lopes
inisectIns :: String
1061 343dcda8 Jose A. Lopes
inisectIns = "instance"
1062 343dcda8 Jose A. Lopes
1063 343dcda8 Jose A. Lopes
inisectOsp :: String
1064 343dcda8 Jose A. Lopes
inisectOsp = "os"
1065 343dcda8 Jose A. Lopes
1066 c890f66a Jose A. Lopes
-- * Dynamic device modification
1067 9413ef24 Jose A. Lopes
1068 c890f66a Jose A. Lopes
ddmAdd :: String
1069 c890f66a Jose A. Lopes
ddmAdd = Types.ddmFullToRaw DdmFullAdd
1070 1b2adaa6 Jose A. Lopes
1071 c890f66a Jose A. Lopes
ddmModify :: String
1072 c890f66a Jose A. Lopes
ddmModify = Types.ddmFullToRaw DdmFullModify
1073 1b2adaa6 Jose A. Lopes
1074 c890f66a Jose A. Lopes
ddmRemove :: String
1075 c890f66a Jose A. Lopes
ddmRemove = Types.ddmFullToRaw DdmFullRemove
1076 9413ef24 Jose A. Lopes
1077 c890f66a Jose A. Lopes
ddmsValues :: FrozenSet String
1078 c890f66a Jose A. Lopes
ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
1079 5867e439 Jose A. Lopes
1080 c890f66a Jose A. Lopes
ddmsValuesWithModify :: FrozenSet String
1081 c890f66a Jose A. Lopes
ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
1082 5867e439 Jose A. Lopes
1083 c890f66a Jose A. Lopes
-- * Common exit codes
1084 5867e439 Jose A. Lopes
1085 c890f66a Jose A. Lopes
exitSuccess :: Int
1086 c890f66a Jose A. Lopes
exitSuccess = 0
1087 5867e439 Jose A. Lopes
1088 c890f66a Jose A. Lopes
exitFailure :: Int
1089 c890f66a Jose A. Lopes
exitFailure = ConstantUtils.exitFailure
1090 5867e439 Jose A. Lopes
1091 c890f66a Jose A. Lopes
exitNotcluster :: Int
1092 c890f66a Jose A. Lopes
exitNotcluster = 5
1093 5867e439 Jose A. Lopes
1094 c890f66a Jose A. Lopes
exitNotmaster :: Int
1095 c890f66a Jose A. Lopes
exitNotmaster = 11
1096 5867e439 Jose A. Lopes
1097 c890f66a Jose A. Lopes
exitNodesetupError :: Int
1098 c890f66a Jose A. Lopes
exitNodesetupError = 12
1099 26eca119 Jose A. Lopes
1100 c890f66a Jose A. Lopes
-- | Need user confirmation
1101 c890f66a Jose A. Lopes
exitConfirmation :: Int
1102 c890f66a Jose A. Lopes
exitConfirmation = 13
1103 85c48fbb Jose A. Lopes
1104 c890f66a Jose A. Lopes
-- | Exit code for query operations with unknown fields
1105 c890f66a Jose A. Lopes
exitUnknownField :: Int
1106 c890f66a Jose A. Lopes
exitUnknownField = 14
1107 85c48fbb Jose A. Lopes
1108 c890f66a Jose A. Lopes
-- * Tags
1109 85c48fbb Jose A. Lopes
1110 c890f66a Jose A. Lopes
tagCluster :: String
1111 c890f66a Jose A. Lopes
tagCluster = Types.tagKindToRaw TagKindCluster
1112 85c48fbb Jose A. Lopes
1113 c890f66a Jose A. Lopes
tagInstance :: String
1114 c890f66a Jose A. Lopes
tagInstance = Types.tagKindToRaw TagKindInstance
1115 85c48fbb Jose A. Lopes
1116 c890f66a Jose A. Lopes
tagNetwork :: String
1117 c890f66a Jose A. Lopes
tagNetwork = Types.tagKindToRaw TagKindNetwork
1118 85c48fbb Jose A. Lopes
1119 c890f66a Jose A. Lopes
tagNode :: String
1120 c890f66a Jose A. Lopes
tagNode = Types.tagKindToRaw TagKindNode
1121 85c48fbb Jose A. Lopes
1122 c890f66a Jose A. Lopes
tagNodegroup :: String
1123 c890f66a Jose A. Lopes
tagNodegroup = Types.tagKindToRaw TagKindGroup
1124 85c48fbb Jose A. Lopes
1125 c890f66a Jose A. Lopes
validTagTypes :: FrozenSet String
1126 c890f66a Jose A. Lopes
validTagTypes = ConstantUtils.mkSet $ map Types.tagKindToRaw [minBound..]
1127 85c48fbb Jose A. Lopes
1128 c890f66a Jose A. Lopes
maxTagLen :: Int
1129 c890f66a Jose A. Lopes
maxTagLen = 128
1130 85c48fbb Jose A. Lopes
1131 c890f66a Jose A. Lopes
maxTagsPerObj :: Int
1132 c890f66a Jose A. Lopes
maxTagsPerObj = 4096
1133 85c48fbb Jose A. Lopes
1134 b7b8ff87 Jose A. Lopes
-- * Others
1135 b7b8ff87 Jose A. Lopes
1136 b7b8ff87 Jose A. Lopes
defaultBridge :: String
1137 b7b8ff87 Jose A. Lopes
defaultBridge = "xen-br0"
1138 b7b8ff87 Jose A. Lopes
1139 b7b8ff87 Jose A. Lopes
defaultOvs :: String
1140 b7b8ff87 Jose A. Lopes
defaultOvs = "switch1"
1141 b7b8ff87 Jose A. Lopes
1142 413434a5 Jose A. Lopes
-- | 60 MiB/s, expressed in KiB/s
1143 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed :: Int
1144 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed = 60 * 1024
1145 b7b8ff87 Jose A. Lopes
1146 b7b8ff87 Jose A. Lopes
ip4AddressAny :: String
1147 b7b8ff87 Jose A. Lopes
ip4AddressAny = "0.0.0.0"
1148 b7b8ff87 Jose A. Lopes
1149 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost :: String
1150 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost = "127.0.0.1"
1151 b7b8ff87 Jose A. Lopes
1152 b7b8ff87 Jose A. Lopes
ip6AddressAny :: String
1153 b7b8ff87 Jose A. Lopes
ip6AddressAny = "::"
1154 b7b8ff87 Jose A. Lopes
1155 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost :: String
1156 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost = "::1"
1157 b7b8ff87 Jose A. Lopes
1158 b7b8ff87 Jose A. Lopes
ip4Version :: Int
1159 b7b8ff87 Jose A. Lopes
ip4Version = 4
1160 b7b8ff87 Jose A. Lopes
1161 b7b8ff87 Jose A. Lopes
ip6Version :: Int
1162 b7b8ff87 Jose A. Lopes
ip6Version = 6
1163 b7b8ff87 Jose A. Lopes
1164 b7b8ff87 Jose A. Lopes
validIpVersions :: FrozenSet Int
1165 b7b8ff87 Jose A. Lopes
validIpVersions = ConstantUtils.mkSet [ip4Version, ip6Version]
1166 b7b8ff87 Jose A. Lopes
1167 b7b8ff87 Jose A. Lopes
tcpPingTimeout :: Int
1168 b7b8ff87 Jose A. Lopes
tcpPingTimeout = 10
1169 b7b8ff87 Jose A. Lopes
1170 b7b8ff87 Jose A. Lopes
defaultVg :: String
1171 b7b8ff87 Jose A. Lopes
defaultVg = "xenvg"
1172 b7b8ff87 Jose A. Lopes
1173 b7b8ff87 Jose A. Lopes
defaultDrbdHelper :: String
1174 b7b8ff87 Jose A. Lopes
defaultDrbdHelper = "/bin/true"
1175 b7b8ff87 Jose A. Lopes
1176 b7b8ff87 Jose A. Lopes
minVgSize :: Int
1177 b7b8ff87 Jose A. Lopes
minVgSize = 20480
1178 b7b8ff87 Jose A. Lopes
1179 b7b8ff87 Jose A. Lopes
defaultMacPrefix :: String
1180 b7b8ff87 Jose A. Lopes
defaultMacPrefix = "aa:00:00"
1181 b7b8ff87 Jose A. Lopes
1182 4c5cb91e Jose A. Lopes
-- | Default maximum instance wait time (seconds)
1183 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout :: Int
1184 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout = 120
1185 b7b8ff87 Jose A. Lopes
1186 4c5cb91e Jose A. Lopes
-- | Node clock skew (seconds)
1187 61e32567 Jose A. Lopes
nodeMaxClockSkew :: Int
1188 61e32567 Jose A. Lopes
nodeMaxClockSkew = 150
1189 61e32567 Jose A. Lopes
1190 52d4f735 Jose A. Lopes
-- | Time for an intra-cluster disk transfer to wait for a connection
1191 52d4f735 Jose A. Lopes
diskTransferConnectTimeout :: Int
1192 52d4f735 Jose A. Lopes
diskTransferConnectTimeout = 60
1193 52d4f735 Jose A. Lopes
1194 3b170ad4 Jose A. Lopes
-- | Disk index separator
1195 3b170ad4 Jose A. Lopes
diskSeparator :: String
1196 3b170ad4 Jose A. Lopes
diskSeparator = AutoConf.diskSeparator
1197 3b170ad4 Jose A. Lopes
1198 cf96e711 Jose A. Lopes
ipCommandPath :: String
1199 cf96e711 Jose A. Lopes
ipCommandPath = AutoConf.ipPath
1200 cf96e711 Jose A. Lopes
1201 d7754dad Jose A. Lopes
-- | Key for job IDs in opcode result
1202 d7754dad Jose A. Lopes
jobIdsKey :: String
1203 d7754dad Jose A. Lopes
jobIdsKey = "jobs"
1204 d7754dad Jose A. Lopes
1205 d7754dad Jose A. Lopes
-- * Runparts results
1206 d7754dad Jose A. Lopes
1207 d7754dad Jose A. Lopes
runpartsErr :: Int
1208 d7754dad Jose A. Lopes
runpartsErr = 2
1209 d7754dad Jose A. Lopes
1210 d7754dad Jose A. Lopes
runpartsRun :: Int
1211 d7754dad Jose A. Lopes
runpartsRun = 1
1212 d7754dad Jose A. Lopes
1213 d7754dad Jose A. Lopes
runpartsSkip :: Int
1214 d7754dad Jose A. Lopes
runpartsSkip = 0
1215 d7754dad Jose A. Lopes
1216 d7754dad Jose A. Lopes
runpartsStatus :: [Int]
1217 d7754dad Jose A. Lopes
runpartsStatus = [runpartsErr, runpartsRun, runpartsSkip]
1218 d7754dad Jose A. Lopes
1219 d7754dad Jose A. Lopes
-- * RPC
1220 d7754dad Jose A. Lopes
1221 d7754dad Jose A. Lopes
rpcEncodingNone :: Int
1222 d7754dad Jose A. Lopes
rpcEncodingNone = 0
1223 d7754dad Jose A. Lopes
1224 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 :: Int
1225 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 = 1
1226 d7754dad Jose A. Lopes
1227 c03224f6 Jose A. Lopes
-- * Timeout table
1228 c03224f6 Jose A. Lopes
--
1229 c03224f6 Jose A. Lopes
-- Various time constants for the timeout table
1230 c03224f6 Jose A. Lopes
1231 c03224f6 Jose A. Lopes
rpcTmoUrgent :: Int
1232 c03224f6 Jose A. Lopes
rpcTmoUrgent = Types.rpcTimeoutToRaw Urgent
1233 c03224f6 Jose A. Lopes
1234 c03224f6 Jose A. Lopes
rpcTmoFast :: Int
1235 c03224f6 Jose A. Lopes
rpcTmoFast = Types.rpcTimeoutToRaw Fast
1236 c03224f6 Jose A. Lopes
1237 c03224f6 Jose A. Lopes
rpcTmoNormal :: Int
1238 c03224f6 Jose A. Lopes
rpcTmoNormal = Types.rpcTimeoutToRaw Normal
1239 c03224f6 Jose A. Lopes
1240 c03224f6 Jose A. Lopes
rpcTmoSlow :: Int
1241 c03224f6 Jose A. Lopes
rpcTmoSlow = Types.rpcTimeoutToRaw Slow
1242 c03224f6 Jose A. Lopes
1243 c03224f6 Jose A. Lopes
-- | 'rpcTmo_4hrs' contains an underscore to circumvent a limitation
1244 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1245 c03224f6 Jose A. Lopes
-- Python name.
1246 c03224f6 Jose A. Lopes
rpcTmo_4hrs :: Int
1247 c03224f6 Jose A. Lopes
rpcTmo_4hrs = Types.rpcTimeoutToRaw FourHours
1248 c03224f6 Jose A. Lopes
1249 c03224f6 Jose A. Lopes
-- | 'rpcTmo_1day' contains an underscore to circumvent a limitation
1250 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1251 c03224f6 Jose A. Lopes
-- Python name.
1252 c03224f6 Jose A. Lopes
rpcTmo_1day :: Int
1253 c03224f6 Jose A. Lopes
rpcTmo_1day = Types.rpcTimeoutToRaw OneDay
1254 c03224f6 Jose A. Lopes
1255 c03224f6 Jose A. Lopes
-- | Timeout for connecting to nodes (seconds)
1256 c03224f6 Jose A. Lopes
rpcConnectTimeout :: Int
1257 c03224f6 Jose A. Lopes
rpcConnectTimeout = 5
1258 c03224f6 Jose A. Lopes
1259 e8d4d41e Jose A. Lopes
-- OS
1260 e8d4d41e Jose A. Lopes
1261 e8d4d41e Jose A. Lopes
osScriptCreate :: String
1262 e8d4d41e Jose A. Lopes
osScriptCreate = "create"
1263 e8d4d41e Jose A. Lopes
1264 e8d4d41e Jose A. Lopes
osScriptExport :: String
1265 e8d4d41e Jose A. Lopes
osScriptExport = "export"
1266 e8d4d41e Jose A. Lopes
1267 e8d4d41e Jose A. Lopes
osScriptImport :: String
1268 e8d4d41e Jose A. Lopes
osScriptImport = "import"
1269 e8d4d41e Jose A. Lopes
1270 e8d4d41e Jose A. Lopes
osScriptRename :: String
1271 e8d4d41e Jose A. Lopes
osScriptRename = "rename"
1272 e8d4d41e Jose A. Lopes
1273 e8d4d41e Jose A. Lopes
osScriptVerify :: String
1274 e8d4d41e Jose A. Lopes
osScriptVerify = "verify"
1275 e8d4d41e Jose A. Lopes
1276 e8d4d41e Jose A. Lopes
osScripts :: [String]
1277 e8d4d41e Jose A. Lopes
osScripts = [osScriptCreate, osScriptExport, osScriptImport, osScriptRename,
1278 e8d4d41e Jose A. Lopes
             osScriptVerify]
1279 e8d4d41e Jose A. Lopes
1280 e8d4d41e Jose A. Lopes
osApiFile :: String
1281 e8d4d41e Jose A. Lopes
osApiFile = "ganeti_api_version"
1282 e8d4d41e Jose A. Lopes
1283 e8d4d41e Jose A. Lopes
osVariantsFile :: String
1284 e8d4d41e Jose A. Lopes
osVariantsFile = "variants.list"
1285 e8d4d41e Jose A. Lopes
1286 e8d4d41e Jose A. Lopes
osParametersFile :: String
1287 e8d4d41e Jose A. Lopes
osParametersFile = "parameters.list"
1288 e8d4d41e Jose A. Lopes
1289 e8d4d41e Jose A. Lopes
osValidateParameters :: String
1290 e8d4d41e Jose A. Lopes
osValidateParameters = "parameters"
1291 e8d4d41e Jose A. Lopes
1292 e8d4d41e Jose A. Lopes
osValidateCalls :: FrozenSet String
1293 e8d4d41e Jose A. Lopes
osValidateCalls = ConstantUtils.mkSet [osValidateParameters]
1294 e8d4d41e Jose A. Lopes
1295 e8d4d41e Jose A. Lopes
-- | External Storage (ES) related constants
1296 e8d4d41e Jose A. Lopes
1297 e8d4d41e Jose A. Lopes
esActionAttach :: String
1298 e8d4d41e Jose A. Lopes
esActionAttach = "attach"
1299 e8d4d41e Jose A. Lopes
1300 e8d4d41e Jose A. Lopes
esActionCreate :: String
1301 e8d4d41e Jose A. Lopes
esActionCreate = "create"
1302 e8d4d41e Jose A. Lopes
1303 e8d4d41e Jose A. Lopes
esActionDetach :: String
1304 e8d4d41e Jose A. Lopes
esActionDetach = "detach"
1305 e8d4d41e Jose A. Lopes
1306 e8d4d41e Jose A. Lopes
esActionGrow :: String
1307 e8d4d41e Jose A. Lopes
esActionGrow = "grow"
1308 e8d4d41e Jose A. Lopes
1309 e8d4d41e Jose A. Lopes
esActionRemove :: String
1310 e8d4d41e Jose A. Lopes
esActionRemove = "remove"
1311 e8d4d41e Jose A. Lopes
1312 e8d4d41e Jose A. Lopes
esActionSetinfo :: String
1313 e8d4d41e Jose A. Lopes
esActionSetinfo = "setinfo"
1314 e8d4d41e Jose A. Lopes
1315 e8d4d41e Jose A. Lopes
esActionVerify :: String
1316 e8d4d41e Jose A. Lopes
esActionVerify = "verify"
1317 e8d4d41e Jose A. Lopes
1318 e8d4d41e Jose A. Lopes
esScriptCreate :: String
1319 e8d4d41e Jose A. Lopes
esScriptCreate = esActionCreate
1320 e8d4d41e Jose A. Lopes
1321 e8d4d41e Jose A. Lopes
esScriptRemove :: String
1322 e8d4d41e Jose A. Lopes
esScriptRemove = esActionRemove
1323 e8d4d41e Jose A. Lopes
1324 e8d4d41e Jose A. Lopes
esScriptGrow :: String
1325 e8d4d41e Jose A. Lopes
esScriptGrow = esActionGrow
1326 e8d4d41e Jose A. Lopes
1327 e8d4d41e Jose A. Lopes
esScriptAttach :: String
1328 e8d4d41e Jose A. Lopes
esScriptAttach = esActionAttach
1329 e8d4d41e Jose A. Lopes
1330 e8d4d41e Jose A. Lopes
esScriptDetach :: String
1331 e8d4d41e Jose A. Lopes
esScriptDetach = esActionDetach
1332 e8d4d41e Jose A. Lopes
1333 e8d4d41e Jose A. Lopes
esScriptSetinfo :: String
1334 e8d4d41e Jose A. Lopes
esScriptSetinfo = esActionSetinfo
1335 e8d4d41e Jose A. Lopes
1336 e8d4d41e Jose A. Lopes
esScriptVerify :: String
1337 e8d4d41e Jose A. Lopes
esScriptVerify = esActionVerify
1338 e8d4d41e Jose A. Lopes
1339 e8d4d41e Jose A. Lopes
esScripts :: FrozenSet String
1340 e8d4d41e Jose A. Lopes
esScripts =
1341 e8d4d41e Jose A. Lopes
  ConstantUtils.mkSet [esScriptAttach,
1342 e8d4d41e Jose A. Lopes
                       esScriptCreate,
1343 e8d4d41e Jose A. Lopes
                       esScriptDetach,
1344 e8d4d41e Jose A. Lopes
                       esScriptGrow,
1345 e8d4d41e Jose A. Lopes
                       esScriptRemove,
1346 e8d4d41e Jose A. Lopes
                       esScriptSetinfo,
1347 e8d4d41e Jose A. Lopes
                       esScriptVerify]
1348 e8d4d41e Jose A. Lopes
1349 e8d4d41e Jose A. Lopes
esParametersFile :: String
1350 e8d4d41e Jose A. Lopes
esParametersFile = "parameters.list"
1351 e8d4d41e Jose A. Lopes
1352 ae8e7986 Jose A. Lopes
-- * Reboot types
1353 ae8e7986 Jose A. Lopes
1354 ae8e7986 Jose A. Lopes
instanceRebootSoft :: String
1355 ae8e7986 Jose A. Lopes
instanceRebootSoft = Types.rebootTypeToRaw RebootSoft
1356 ae8e7986 Jose A. Lopes
1357 ae8e7986 Jose A. Lopes
instanceRebootHard :: String
1358 ae8e7986 Jose A. Lopes
instanceRebootHard = Types.rebootTypeToRaw RebootHard
1359 ae8e7986 Jose A. Lopes
1360 ae8e7986 Jose A. Lopes
instanceRebootFull :: String
1361 ae8e7986 Jose A. Lopes
instanceRebootFull = Types.rebootTypeToRaw RebootFull
1362 ae8e7986 Jose A. Lopes
1363 ae8e7986 Jose A. Lopes
rebootTypes :: FrozenSet String
1364 ae8e7986 Jose A. Lopes
rebootTypes = ConstantUtils.mkSet $ map Types.rebootTypeToRaw [minBound..]
1365 ae8e7986 Jose A. Lopes
1366 3c2abb61 Jose A. Lopes
-- * Instance reboot behaviors
1367 3c2abb61 Jose A. Lopes
1368 3c2abb61 Jose A. Lopes
instanceRebootAllowed :: String
1369 3c2abb61 Jose A. Lopes
instanceRebootAllowed = "reboot"
1370 3c2abb61 Jose A. Lopes
1371 3c2abb61 Jose A. Lopes
instanceRebootExit :: String
1372 3c2abb61 Jose A. Lopes
instanceRebootExit = "exit"
1373 3c2abb61 Jose A. Lopes
1374 3c2abb61 Jose A. Lopes
rebootBehaviors :: [String]
1375 3c2abb61 Jose A. Lopes
rebootBehaviors = [instanceRebootAllowed, instanceRebootExit]
1376 3c2abb61 Jose A. Lopes
1377 a91d6b30 Jose A. Lopes
-- * VTypes
1378 a91d6b30 Jose A. Lopes
1379 a91d6b30 Jose A. Lopes
vtypeBool :: VType
1380 a91d6b30 Jose A. Lopes
vtypeBool = VTypeBool
1381 a91d6b30 Jose A. Lopes
1382 a91d6b30 Jose A. Lopes
vtypeInt :: VType
1383 a91d6b30 Jose A. Lopes
vtypeInt = VTypeInt
1384 a91d6b30 Jose A. Lopes
1385 a91d6b30 Jose A. Lopes
vtypeMaybeString :: VType
1386 a91d6b30 Jose A. Lopes
vtypeMaybeString = VTypeMaybeString
1387 a91d6b30 Jose A. Lopes
1388 a91d6b30 Jose A. Lopes
-- | Size in MiBs
1389 a91d6b30 Jose A. Lopes
vtypeSize :: VType
1390 a91d6b30 Jose A. Lopes
vtypeSize = VTypeSize
1391 a91d6b30 Jose A. Lopes
1392 a91d6b30 Jose A. Lopes
vtypeString :: VType
1393 a91d6b30 Jose A. Lopes
vtypeString = VTypeString
1394 a91d6b30 Jose A. Lopes
1395 a91d6b30 Jose A. Lopes
enforceableTypes :: FrozenSet VType
1396 a91d6b30 Jose A. Lopes
enforceableTypes = ConstantUtils.mkSet [minBound..]
1397 8397ffde Jose A. Lopes
1398 5c8f186c Jose A. Lopes
-- | Constant representing that the user does not specify any IP version
1399 5c8f186c Jose A. Lopes
ifaceNoIpVersionSpecified :: Int
1400 5c8f186c Jose A. Lopes
ifaceNoIpVersionSpecified = 0
1401 5c8f186c Jose A. Lopes
1402 5c8f186c Jose A. Lopes
validSerialSpeeds :: [Int]
1403 5c8f186c Jose A. Lopes
validSerialSpeeds =
1404 5c8f186c Jose A. Lopes
  [75,
1405 5c8f186c Jose A. Lopes
   110,
1406 5c8f186c Jose A. Lopes
   300,
1407 5c8f186c Jose A. Lopes
   600,
1408 5c8f186c Jose A. Lopes
   1200,
1409 5c8f186c Jose A. Lopes
   1800,
1410 5c8f186c Jose A. Lopes
   2400,
1411 5c8f186c Jose A. Lopes
   4800,
1412 5c8f186c Jose A. Lopes
   9600,
1413 5c8f186c Jose A. Lopes
   14400,
1414 5c8f186c Jose A. Lopes
   19200,
1415 5c8f186c Jose A. Lopes
   28800,
1416 5c8f186c Jose A. Lopes
   38400,
1417 5c8f186c Jose A. Lopes
   57600,
1418 5c8f186c Jose A. Lopes
   115200,
1419 5c8f186c Jose A. Lopes
   230400,
1420 5c8f186c Jose A. Lopes
   345600,
1421 5c8f186c Jose A. Lopes
   460800]
1422 5c8f186c Jose A. Lopes
1423 5c8f186c Jose A. Lopes
-- * HV parameter names (global namespace)
1424 5c8f186c Jose A. Lopes
1425 5c8f186c Jose A. Lopes
hvAcpi :: String
1426 5c8f186c Jose A. Lopes
hvAcpi = "acpi"
1427 5c8f186c Jose A. Lopes
1428 5c8f186c Jose A. Lopes
hvBlockdevPrefix :: String
1429 5c8f186c Jose A. Lopes
hvBlockdevPrefix = "blockdev_prefix"
1430 5c8f186c Jose A. Lopes
1431 5c8f186c Jose A. Lopes
hvBootloaderArgs :: String
1432 5c8f186c Jose A. Lopes
hvBootloaderArgs = "bootloader_args"
1433 5c8f186c Jose A. Lopes
1434 5c8f186c Jose A. Lopes
hvBootloaderPath :: String
1435 5c8f186c Jose A. Lopes
hvBootloaderPath = "bootloader_path"
1436 5c8f186c Jose A. Lopes
1437 5c8f186c Jose A. Lopes
hvBootOrder :: String
1438 5c8f186c Jose A. Lopes
hvBootOrder = "boot_order"
1439 5c8f186c Jose A. Lopes
1440 5c8f186c Jose A. Lopes
hvCdromImagePath :: String
1441 5c8f186c Jose A. Lopes
hvCdromImagePath = "cdrom_image_path"
1442 5c8f186c Jose A. Lopes
1443 5c8f186c Jose A. Lopes
hvCpuCap :: String
1444 5c8f186c Jose A. Lopes
hvCpuCap = "cpu_cap"
1445 5c8f186c Jose A. Lopes
1446 5c8f186c Jose A. Lopes
hvCpuCores :: String
1447 5c8f186c Jose A. Lopes
hvCpuCores = "cpu_cores"
1448 5c8f186c Jose A. Lopes
1449 5c8f186c Jose A. Lopes
hvCpuMask :: String
1450 5c8f186c Jose A. Lopes
hvCpuMask = "cpu_mask"
1451 5c8f186c Jose A. Lopes
1452 5c8f186c Jose A. Lopes
hvCpuSockets :: String
1453 5c8f186c Jose A. Lopes
hvCpuSockets = "cpu_sockets"
1454 5c8f186c Jose A. Lopes
1455 5c8f186c Jose A. Lopes
hvCpuThreads :: String
1456 5c8f186c Jose A. Lopes
hvCpuThreads = "cpu_threads"
1457 5c8f186c Jose A. Lopes
1458 5c8f186c Jose A. Lopes
hvCpuType :: String
1459 5c8f186c Jose A. Lopes
hvCpuType = "cpu_type"
1460 5c8f186c Jose A. Lopes
1461 5c8f186c Jose A. Lopes
hvCpuWeight :: String
1462 5c8f186c Jose A. Lopes
hvCpuWeight = "cpu_weight"
1463 5c8f186c Jose A. Lopes
1464 5c8f186c Jose A. Lopes
hvDeviceModel :: String
1465 5c8f186c Jose A. Lopes
hvDeviceModel = "device_model"
1466 5c8f186c Jose A. Lopes
1467 5c8f186c Jose A. Lopes
hvDiskCache :: String
1468 5c8f186c Jose A. Lopes
hvDiskCache = "disk_cache"
1469 5c8f186c Jose A. Lopes
1470 5c8f186c Jose A. Lopes
hvDiskType :: String
1471 5c8f186c Jose A. Lopes
hvDiskType = "disk_type"
1472 5c8f186c Jose A. Lopes
1473 5c8f186c Jose A. Lopes
hvInitrdPath :: String
1474 5c8f186c Jose A. Lopes
hvInitrdPath = "initrd_path"
1475 5c8f186c Jose A. Lopes
1476 5c8f186c Jose A. Lopes
hvInitScript :: String
1477 5c8f186c Jose A. Lopes
hvInitScript = "init_script"
1478 5c8f186c Jose A. Lopes
1479 5c8f186c Jose A. Lopes
hvKernelArgs :: String
1480 5c8f186c Jose A. Lopes
hvKernelArgs = "kernel_args"
1481 5c8f186c Jose A. Lopes
1482 5c8f186c Jose A. Lopes
hvKernelPath :: String
1483 5c8f186c Jose A. Lopes
hvKernelPath = "kernel_path"
1484 5c8f186c Jose A. Lopes
1485 5c8f186c Jose A. Lopes
hvKeymap :: String
1486 5c8f186c Jose A. Lopes
hvKeymap = "keymap"
1487 5c8f186c Jose A. Lopes
1488 5c8f186c Jose A. Lopes
hvKvmCdrom2ImagePath :: String
1489 5c8f186c Jose A. Lopes
hvKvmCdrom2ImagePath = "cdrom2_image_path"
1490 5c8f186c Jose A. Lopes
1491 5c8f186c Jose A. Lopes
hvKvmCdromDiskType :: String
1492 5c8f186c Jose A. Lopes
hvKvmCdromDiskType = "cdrom_disk_type"
1493 5c8f186c Jose A. Lopes
1494 5c8f186c Jose A. Lopes
hvKvmExtra :: String
1495 5c8f186c Jose A. Lopes
hvKvmExtra = "kvm_extra"
1496 5c8f186c Jose A. Lopes
1497 5c8f186c Jose A. Lopes
hvKvmFlag :: String
1498 5c8f186c Jose A. Lopes
hvKvmFlag = "kvm_flag"
1499 5c8f186c Jose A. Lopes
1500 5c8f186c Jose A. Lopes
hvKvmFloppyImagePath :: String
1501 5c8f186c Jose A. Lopes
hvKvmFloppyImagePath = "floppy_image_path"
1502 5c8f186c Jose A. Lopes
1503 5c8f186c Jose A. Lopes
hvKvmMachineVersion :: String
1504 5c8f186c Jose A. Lopes
hvKvmMachineVersion = "machine_version"
1505 5c8f186c Jose A. Lopes
1506 5c8f186c Jose A. Lopes
hvKvmPath :: String
1507 5c8f186c Jose A. Lopes
hvKvmPath = "kvm_path"
1508 5c8f186c Jose A. Lopes
1509 5c8f186c Jose A. Lopes
hvKvmSpiceAudioCompr :: String
1510 5c8f186c Jose A. Lopes
hvKvmSpiceAudioCompr = "spice_playback_compression"
1511 5c8f186c Jose A. Lopes
1512 5c8f186c Jose A. Lopes
hvKvmSpiceBind :: String
1513 5c8f186c Jose A. Lopes
hvKvmSpiceBind = "spice_bind"
1514 5c8f186c Jose A. Lopes
1515 5c8f186c Jose A. Lopes
hvKvmSpiceIpVersion :: String
1516 5c8f186c Jose A. Lopes
hvKvmSpiceIpVersion = "spice_ip_version"
1517 5c8f186c Jose A. Lopes
1518 5c8f186c Jose A. Lopes
hvKvmSpiceJpegImgCompr :: String
1519 5c8f186c Jose A. Lopes
hvKvmSpiceJpegImgCompr = "spice_jpeg_wan_compression"
1520 5c8f186c Jose A. Lopes
1521 5c8f186c Jose A. Lopes
hvKvmSpiceLosslessImgCompr :: String
1522 5c8f186c Jose A. Lopes
hvKvmSpiceLosslessImgCompr = "spice_image_compression"
1523 5c8f186c Jose A. Lopes
1524 5c8f186c Jose A. Lopes
hvKvmSpicePasswordFile :: String
1525 5c8f186c Jose A. Lopes
hvKvmSpicePasswordFile = "spice_password_file"
1526 5c8f186c Jose A. Lopes
1527 5c8f186c Jose A. Lopes
hvKvmSpiceStreamingVideoDetection :: String
1528 5c8f186c Jose A. Lopes
hvKvmSpiceStreamingVideoDetection = "spice_streaming_video"
1529 5c8f186c Jose A. Lopes
1530 5c8f186c Jose A. Lopes
hvKvmSpiceTlsCiphers :: String
1531 5c8f186c Jose A. Lopes
hvKvmSpiceTlsCiphers = "spice_tls_ciphers"
1532 5c8f186c Jose A. Lopes
1533 5c8f186c Jose A. Lopes
hvKvmSpiceUseTls :: String
1534 5c8f186c Jose A. Lopes
hvKvmSpiceUseTls = "spice_use_tls"
1535 5c8f186c Jose A. Lopes
1536 5c8f186c Jose A. Lopes
hvKvmSpiceUseVdagent :: String
1537 5c8f186c Jose A. Lopes
hvKvmSpiceUseVdagent = "spice_use_vdagent"
1538 5c8f186c Jose A. Lopes
1539 5c8f186c Jose A. Lopes
hvKvmSpiceZlibGlzImgCompr :: String
1540 5c8f186c Jose A. Lopes
hvKvmSpiceZlibGlzImgCompr = "spice_zlib_glz_wan_compression"
1541 5c8f186c Jose A. Lopes
1542 5c8f186c Jose A. Lopes
hvKvmUseChroot :: String
1543 5c8f186c Jose A. Lopes
hvKvmUseChroot = "use_chroot"
1544 5c8f186c Jose A. Lopes
1545 5c8f186c Jose A. Lopes
hvMemPath :: String
1546 5c8f186c Jose A. Lopes
hvMemPath = "mem_path"
1547 5c8f186c Jose A. Lopes
1548 5c8f186c Jose A. Lopes
hvMigrationBandwidth :: String
1549 5c8f186c Jose A. Lopes
hvMigrationBandwidth = "migration_bandwidth"
1550 5c8f186c Jose A. Lopes
1551 5c8f186c Jose A. Lopes
hvMigrationDowntime :: String
1552 5c8f186c Jose A. Lopes
hvMigrationDowntime = "migration_downtime"
1553 5c8f186c Jose A. Lopes
1554 5c8f186c Jose A. Lopes
hvMigrationMode :: String
1555 5c8f186c Jose A. Lopes
hvMigrationMode = "migration_mode"
1556 5c8f186c Jose A. Lopes
1557 5c8f186c Jose A. Lopes
hvMigrationPort :: String
1558 5c8f186c Jose A. Lopes
hvMigrationPort = "migration_port"
1559 5c8f186c Jose A. Lopes
1560 5c8f186c Jose A. Lopes
hvNicType :: String
1561 5c8f186c Jose A. Lopes
hvNicType = "nic_type"
1562 5c8f186c Jose A. Lopes
1563 5c8f186c Jose A. Lopes
hvPae :: String
1564 5c8f186c Jose A. Lopes
hvPae = "pae"
1565 5c8f186c Jose A. Lopes
1566 5c8f186c Jose A. Lopes
hvPassthrough :: String
1567 5c8f186c Jose A. Lopes
hvPassthrough = "pci_pass"
1568 5c8f186c Jose A. Lopes
1569 5c8f186c Jose A. Lopes
hvRebootBehavior :: String
1570 5c8f186c Jose A. Lopes
hvRebootBehavior = "reboot_behavior"
1571 5c8f186c Jose A. Lopes
1572 5c8f186c Jose A. Lopes
hvRootPath :: String
1573 5c8f186c Jose A. Lopes
hvRootPath = "root_path"
1574 5c8f186c Jose A. Lopes
1575 5c8f186c Jose A. Lopes
hvSecurityDomain :: String
1576 5c8f186c Jose A. Lopes
hvSecurityDomain = "security_domain"
1577 5c8f186c Jose A. Lopes
1578 5c8f186c Jose A. Lopes
hvSecurityModel :: String
1579 5c8f186c Jose A. Lopes
hvSecurityModel = "security_model"
1580 5c8f186c Jose A. Lopes
1581 5c8f186c Jose A. Lopes
hvSerialConsole :: String
1582 5c8f186c Jose A. Lopes
hvSerialConsole = "serial_console"
1583 5c8f186c Jose A. Lopes
1584 5c8f186c Jose A. Lopes
hvSerialSpeed :: String
1585 5c8f186c Jose A. Lopes
hvSerialSpeed = "serial_speed"
1586 5c8f186c Jose A. Lopes
1587 5c8f186c Jose A. Lopes
hvSoundhw :: String
1588 5c8f186c Jose A. Lopes
hvSoundhw = "soundhw"
1589 5c8f186c Jose A. Lopes
1590 5c8f186c Jose A. Lopes
hvUsbDevices :: String
1591 5c8f186c Jose A. Lopes
hvUsbDevices = "usb_devices"
1592 5c8f186c Jose A. Lopes
1593 5c8f186c Jose A. Lopes
hvUsbMouse :: String
1594 5c8f186c Jose A. Lopes
hvUsbMouse = "usb_mouse"
1595 5c8f186c Jose A. Lopes
1596 5c8f186c Jose A. Lopes
hvUseBootloader :: String
1597 5c8f186c Jose A. Lopes
hvUseBootloader = "use_bootloader"
1598 5c8f186c Jose A. Lopes
1599 5c8f186c Jose A. Lopes
hvUseLocaltime :: String
1600 5c8f186c Jose A. Lopes
hvUseLocaltime = "use_localtime"
1601 5c8f186c Jose A. Lopes
1602 5c8f186c Jose A. Lopes
hvVga :: String
1603 5c8f186c Jose A. Lopes
hvVga = "vga"
1604 5c8f186c Jose A. Lopes
1605 5c8f186c Jose A. Lopes
hvVhostNet :: String
1606 5c8f186c Jose A. Lopes
hvVhostNet = "vhost_net"
1607 5c8f186c Jose A. Lopes
1608 5c8f186c Jose A. Lopes
hvVifScript :: String
1609 5c8f186c Jose A. Lopes
hvVifScript = "vif_script"
1610 5c8f186c Jose A. Lopes
1611 5c8f186c Jose A. Lopes
hvVifType :: String
1612 5c8f186c Jose A. Lopes
hvVifType = "vif_type"
1613 5c8f186c Jose A. Lopes
1614 5c8f186c Jose A. Lopes
hvViridian :: String
1615 5c8f186c Jose A. Lopes
hvViridian = "viridian"
1616 5c8f186c Jose A. Lopes
1617 5c8f186c Jose A. Lopes
hvVncBindAddress :: String
1618 5c8f186c Jose A. Lopes
hvVncBindAddress = "vnc_bind_address"
1619 5c8f186c Jose A. Lopes
1620 5c8f186c Jose A. Lopes
hvVncPasswordFile :: String
1621 5c8f186c Jose A. Lopes
hvVncPasswordFile = "vnc_password_file"
1622 5c8f186c Jose A. Lopes
1623 5c8f186c Jose A. Lopes
hvVncTls :: String
1624 5c8f186c Jose A. Lopes
hvVncTls = "vnc_tls"
1625 5c8f186c Jose A. Lopes
1626 5c8f186c Jose A. Lopes
hvVncX509 :: String
1627 5c8f186c Jose A. Lopes
hvVncX509 = "vnc_x509_path"
1628 5c8f186c Jose A. Lopes
1629 5c8f186c Jose A. Lopes
hvVncX509Verify :: String
1630 5c8f186c Jose A. Lopes
hvVncX509Verify = "vnc_x509_verify"
1631 5c8f186c Jose A. Lopes
1632 5c8f186c Jose A. Lopes
hvVnetHdr :: String
1633 5c8f186c Jose A. Lopes
hvVnetHdr = "vnet_hdr"
1634 5c8f186c Jose A. Lopes
1635 5c8f186c Jose A. Lopes
hvXenCmd :: String
1636 5c8f186c Jose A. Lopes
hvXenCmd = "xen_cmd"
1637 5c8f186c Jose A. Lopes
1638 5c8f186c Jose A. Lopes
hvXenCpuid :: String
1639 5c8f186c Jose A. Lopes
hvXenCpuid = "cpuid"
1640 5c8f186c Jose A. Lopes
1641 5c8f186c Jose A. Lopes
hvsParameterTitles :: Map String String
1642 5c8f186c Jose A. Lopes
hvsParameterTitles =
1643 5c8f186c Jose A. Lopes
  Map.fromList
1644 5c8f186c Jose A. Lopes
  [(hvAcpi, "ACPI"),
1645 5c8f186c Jose A. Lopes
   (hvBootOrder, "Boot_order"),
1646 5c8f186c Jose A. Lopes
   (hvCdromImagePath, "CDROM_image_path"),
1647 5c8f186c Jose A. Lopes
   (hvCpuType, "cpu_type"),
1648 5c8f186c Jose A. Lopes
   (hvDiskType, "Disk_type"),
1649 5c8f186c Jose A. Lopes
   (hvInitrdPath, "Initrd_path"),
1650 5c8f186c Jose A. Lopes
   (hvKernelPath, "Kernel_path"),
1651 5c8f186c Jose A. Lopes
   (hvNicType, "NIC_type"),
1652 5c8f186c Jose A. Lopes
   (hvPae, "PAE"),
1653 5c8f186c Jose A. Lopes
   (hvPassthrough, "pci_pass"),
1654 5c8f186c Jose A. Lopes
   (hvVncBindAddress, "VNC_bind_address")]
1655 5c8f186c Jose A. Lopes
1656 4dddf578 Jose A. Lopes
hvsParameters :: FrozenSet String
1657 4dddf578 Jose A. Lopes
hvsParameters = ConstantUtils.mkSet $ Map.keys hvsParameterTypes
1658 4dddf578 Jose A. Lopes
1659 4dddf578 Jose A. Lopes
hvsParameterTypes :: Map String VType
1660 4dddf578 Jose A. Lopes
hvsParameterTypes = Map.fromList
1661 4dddf578 Jose A. Lopes
  [ (hvAcpi,                            VTypeBool)
1662 4dddf578 Jose A. Lopes
  , (hvBlockdevPrefix,                  VTypeString)
1663 4dddf578 Jose A. Lopes
  , (hvBootloaderArgs,                  VTypeString)
1664 4dddf578 Jose A. Lopes
  , (hvBootloaderPath,                  VTypeString)
1665 4dddf578 Jose A. Lopes
  , (hvBootOrder,                       VTypeString)
1666 4dddf578 Jose A. Lopes
  , (hvCdromImagePath,                  VTypeString)
1667 4dddf578 Jose A. Lopes
  , (hvCpuCap,                          VTypeInt)
1668 4dddf578 Jose A. Lopes
  , (hvCpuCores,                        VTypeInt)
1669 4dddf578 Jose A. Lopes
  , (hvCpuMask,                         VTypeString)
1670 4dddf578 Jose A. Lopes
  , (hvCpuSockets,                      VTypeInt)
1671 4dddf578 Jose A. Lopes
  , (hvCpuThreads,                      VTypeInt)
1672 4dddf578 Jose A. Lopes
  , (hvCpuType,                         VTypeString)
1673 4dddf578 Jose A. Lopes
  , (hvCpuWeight,                       VTypeInt)
1674 4dddf578 Jose A. Lopes
  , (hvDeviceModel,                     VTypeString)
1675 4dddf578 Jose A. Lopes
  , (hvDiskCache,                       VTypeString)
1676 4dddf578 Jose A. Lopes
  , (hvDiskType,                        VTypeString)
1677 4dddf578 Jose A. Lopes
  , (hvInitrdPath,                      VTypeString)
1678 4dddf578 Jose A. Lopes
  , (hvInitScript,                      VTypeString)
1679 4dddf578 Jose A. Lopes
  , (hvKernelArgs,                      VTypeString)
1680 4dddf578 Jose A. Lopes
  , (hvKernelPath,                      VTypeString)
1681 4dddf578 Jose A. Lopes
  , (hvKeymap,                          VTypeString)
1682 4dddf578 Jose A. Lopes
  , (hvKvmCdrom2ImagePath,              VTypeString)
1683 4dddf578 Jose A. Lopes
  , (hvKvmCdromDiskType,                VTypeString)
1684 4dddf578 Jose A. Lopes
  , (hvKvmExtra,                        VTypeString)
1685 4dddf578 Jose A. Lopes
  , (hvKvmFlag,                         VTypeString)
1686 4dddf578 Jose A. Lopes
  , (hvKvmFloppyImagePath,              VTypeString)
1687 4dddf578 Jose A. Lopes
  , (hvKvmMachineVersion,               VTypeString)
1688 4dddf578 Jose A. Lopes
  , (hvKvmPath,                         VTypeString)
1689 4dddf578 Jose A. Lopes
  , (hvKvmSpiceAudioCompr,              VTypeBool)
1690 4dddf578 Jose A. Lopes
  , (hvKvmSpiceBind,                    VTypeString)
1691 4dddf578 Jose A. Lopes
  , (hvKvmSpiceIpVersion,               VTypeInt)
1692 4dddf578 Jose A. Lopes
  , (hvKvmSpiceJpegImgCompr,            VTypeString)
1693 4dddf578 Jose A. Lopes
  , (hvKvmSpiceLosslessImgCompr,        VTypeString)
1694 4dddf578 Jose A. Lopes
  , (hvKvmSpicePasswordFile,            VTypeString)
1695 4dddf578 Jose A. Lopes
  , (hvKvmSpiceStreamingVideoDetection, VTypeString)
1696 4dddf578 Jose A. Lopes
  , (hvKvmSpiceTlsCiphers,              VTypeString)
1697 4dddf578 Jose A. Lopes
  , (hvKvmSpiceUseTls,                  VTypeBool)
1698 4dddf578 Jose A. Lopes
  , (hvKvmSpiceUseVdagent,              VTypeBool)
1699 4dddf578 Jose A. Lopes
  , (hvKvmSpiceZlibGlzImgCompr,         VTypeString)
1700 4dddf578 Jose A. Lopes
  , (hvKvmUseChroot,                    VTypeBool)
1701 4dddf578 Jose A. Lopes
  , (hvMemPath,                         VTypeString)
1702 4dddf578 Jose A. Lopes
  , (hvMigrationBandwidth,              VTypeInt)
1703 4dddf578 Jose A. Lopes
  , (hvMigrationDowntime,               VTypeInt)
1704 4dddf578 Jose A. Lopes
  , (hvMigrationMode,                   VTypeString)
1705 4dddf578 Jose A. Lopes
  , (hvMigrationPort,                   VTypeInt)
1706 4dddf578 Jose A. Lopes
  , (hvNicType,                         VTypeString)
1707 4dddf578 Jose A. Lopes
  , (hvPae,                             VTypeBool)
1708 4dddf578 Jose A. Lopes
  , (hvPassthrough,                     VTypeString)
1709 4dddf578 Jose A. Lopes
  , (hvRebootBehavior,                  VTypeString)
1710 4dddf578 Jose A. Lopes
  , (hvRootPath,                        VTypeMaybeString)
1711 4dddf578 Jose A. Lopes
  , (hvSecurityDomain,                  VTypeString)
1712 4dddf578 Jose A. Lopes
  , (hvSecurityModel,                   VTypeString)
1713 4dddf578 Jose A. Lopes
  , (hvSerialConsole,                   VTypeBool)
1714 4dddf578 Jose A. Lopes
  , (hvSerialSpeed,                     VTypeInt)
1715 4dddf578 Jose A. Lopes
  , (hvSoundhw,                         VTypeString)
1716 4dddf578 Jose A. Lopes
  , (hvUsbDevices,                      VTypeString)
1717 4dddf578 Jose A. Lopes
  , (hvUsbMouse,                        VTypeString)
1718 4dddf578 Jose A. Lopes
  , (hvUseBootloader,                   VTypeBool)
1719 4dddf578 Jose A. Lopes
  , (hvUseLocaltime,                    VTypeBool)
1720 4dddf578 Jose A. Lopes
  , (hvVga,                             VTypeString)
1721 4dddf578 Jose A. Lopes
  , (hvVhostNet,                        VTypeBool)
1722 4dddf578 Jose A. Lopes
  , (hvVifScript,                       VTypeString)
1723 4dddf578 Jose A. Lopes
  , (hvVifType,                         VTypeString)
1724 4dddf578 Jose A. Lopes
  , (hvViridian,                        VTypeBool)
1725 4dddf578 Jose A. Lopes
  , (hvVncBindAddress,                  VTypeString)
1726 4dddf578 Jose A. Lopes
  , (hvVncPasswordFile,                 VTypeString)
1727 4dddf578 Jose A. Lopes
  , (hvVncTls,                          VTypeBool)
1728 4dddf578 Jose A. Lopes
  , (hvVncX509,                         VTypeString)
1729 4dddf578 Jose A. Lopes
  , (hvVncX509Verify,                   VTypeBool)
1730 4dddf578 Jose A. Lopes
  , (hvVnetHdr,                         VTypeBool)
1731 4dddf578 Jose A. Lopes
  , (hvXenCmd,                          VTypeString)
1732 4dddf578 Jose A. Lopes
  , (hvXenCpuid,                        VTypeString)
1733 4dddf578 Jose A. Lopes
  ]
1734 4dddf578 Jose A. Lopes
1735 5a7fab74 Jose A. Lopes
-- * Migration statuses
1736 5a7fab74 Jose A. Lopes
1737 5a7fab74 Jose A. Lopes
hvMigrationActive :: String
1738 5a7fab74 Jose A. Lopes
hvMigrationActive = "active"
1739 5a7fab74 Jose A. Lopes
1740 5a7fab74 Jose A. Lopes
hvMigrationCancelled :: String
1741 5a7fab74 Jose A. Lopes
hvMigrationCancelled = "cancelled"
1742 5a7fab74 Jose A. Lopes
1743 5a7fab74 Jose A. Lopes
hvMigrationCompleted :: String
1744 5a7fab74 Jose A. Lopes
hvMigrationCompleted = "completed"
1745 5a7fab74 Jose A. Lopes
1746 5a7fab74 Jose A. Lopes
hvMigrationFailed :: String
1747 5a7fab74 Jose A. Lopes
hvMigrationFailed = "failed"
1748 5a7fab74 Jose A. Lopes
1749 5a7fab74 Jose A. Lopes
hvMigrationValidStatuses :: FrozenSet String
1750 5a7fab74 Jose A. Lopes
hvMigrationValidStatuses =
1751 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvMigrationActive,
1752 5a7fab74 Jose A. Lopes
                       hvMigrationCancelled,
1753 5a7fab74 Jose A. Lopes
                       hvMigrationCompleted,
1754 5a7fab74 Jose A. Lopes
                       hvMigrationFailed]
1755 5a7fab74 Jose A. Lopes
1756 5a7fab74 Jose A. Lopes
hvMigrationFailedStatuses :: FrozenSet String
1757 5a7fab74 Jose A. Lopes
hvMigrationFailedStatuses =
1758 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvMigrationFailed, hvMigrationCancelled]
1759 5a7fab74 Jose A. Lopes
1760 5a7fab74 Jose A. Lopes
-- | KVM-specific statuses
1761 5a7fab74 Jose A. Lopes
--
1762 5a7fab74 Jose A. Lopes
-- FIXME: this constant seems unnecessary
1763 5a7fab74 Jose A. Lopes
hvKvmMigrationValidStatuses :: FrozenSet String
1764 5a7fab74 Jose A. Lopes
hvKvmMigrationValidStatuses = hvMigrationValidStatuses
1765 5a7fab74 Jose A. Lopes
1766 5a7fab74 Jose A. Lopes
-- | Node info keys
1767 5a7fab74 Jose A. Lopes
hvNodeinfoKeyVersion :: String
1768 5a7fab74 Jose A. Lopes
hvNodeinfoKeyVersion = "hv_version"
1769 5a7fab74 Jose A. Lopes
1770 5a7fab74 Jose A. Lopes
-- * Hypervisor state
1771 5a7fab74 Jose A. Lopes
1772 5a7fab74 Jose A. Lopes
hvstCpuNode :: String
1773 5a7fab74 Jose A. Lopes
hvstCpuNode = "cpu_node"
1774 5a7fab74 Jose A. Lopes
1775 5a7fab74 Jose A. Lopes
hvstCpuTotal :: String
1776 5a7fab74 Jose A. Lopes
hvstCpuTotal = "cpu_total"
1777 5a7fab74 Jose A. Lopes
1778 5a7fab74 Jose A. Lopes
hvstMemoryHv :: String
1779 5a7fab74 Jose A. Lopes
hvstMemoryHv = "mem_hv"
1780 5a7fab74 Jose A. Lopes
1781 5a7fab74 Jose A. Lopes
hvstMemoryNode :: String
1782 5a7fab74 Jose A. Lopes
hvstMemoryNode = "mem_node"
1783 5a7fab74 Jose A. Lopes
1784 5a7fab74 Jose A. Lopes
hvstMemoryTotal :: String
1785 5a7fab74 Jose A. Lopes
hvstMemoryTotal = "mem_total"
1786 5a7fab74 Jose A. Lopes
1787 5a7fab74 Jose A. Lopes
hvstsParameters :: FrozenSet String
1788 5a7fab74 Jose A. Lopes
hvstsParameters =
1789 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvstCpuNode,
1790 5a7fab74 Jose A. Lopes
                       hvstCpuTotal,
1791 5a7fab74 Jose A. Lopes
                       hvstMemoryHv,
1792 5a7fab74 Jose A. Lopes
                       hvstMemoryNode,
1793 5a7fab74 Jose A. Lopes
                       hvstMemoryTotal]
1794 5a7fab74 Jose A. Lopes
1795 5a7fab74 Jose A. Lopes
hvstDefaults :: Map String Int
1796 5a7fab74 Jose A. Lopes
hvstDefaults =
1797 5a7fab74 Jose A. Lopes
  Map.fromList
1798 5a7fab74 Jose A. Lopes
  [(hvstCpuNode, 1),
1799 5a7fab74 Jose A. Lopes
   (hvstCpuTotal, 1),
1800 5a7fab74 Jose A. Lopes
   (hvstMemoryHv, 0),
1801 5a7fab74 Jose A. Lopes
   (hvstMemoryTotal, 0),
1802 5a7fab74 Jose A. Lopes
   (hvstMemoryNode, 0)]
1803 5a7fab74 Jose A. Lopes
1804 5a7fab74 Jose A. Lopes
hvstsParameterTypes :: Map String VType
1805 5a7fab74 Jose A. Lopes
hvstsParameterTypes =
1806 5a7fab74 Jose A. Lopes
  Map.fromList [(hvstMemoryTotal, VTypeInt),
1807 5a7fab74 Jose A. Lopes
                (hvstMemoryNode, VTypeInt),
1808 5a7fab74 Jose A. Lopes
                (hvstMemoryHv, VTypeInt),
1809 5a7fab74 Jose A. Lopes
                (hvstCpuTotal, VTypeInt),
1810 5a7fab74 Jose A. Lopes
                (hvstCpuNode, VTypeInt)]
1811 5a7fab74 Jose A. Lopes
1812 5a7fab74 Jose A. Lopes
-- * Disk state
1813 5a7fab74 Jose A. Lopes
1814 5a7fab74 Jose A. Lopes
dsDiskOverhead :: String
1815 5a7fab74 Jose A. Lopes
dsDiskOverhead = "disk_overhead"
1816 5a7fab74 Jose A. Lopes
1817 5a7fab74 Jose A. Lopes
dsDiskReserved :: String
1818 5a7fab74 Jose A. Lopes
dsDiskReserved = "disk_reserved"
1819 5a7fab74 Jose A. Lopes
1820 5a7fab74 Jose A. Lopes
dsDiskTotal :: String
1821 5a7fab74 Jose A. Lopes
dsDiskTotal = "disk_total"
1822 5a7fab74 Jose A. Lopes
1823 5a7fab74 Jose A. Lopes
dsDefaults :: Map String Int
1824 5a7fab74 Jose A. Lopes
dsDefaults =
1825 5a7fab74 Jose A. Lopes
  Map.fromList
1826 5a7fab74 Jose A. Lopes
  [(dsDiskTotal, 0),
1827 5a7fab74 Jose A. Lopes
   (dsDiskReserved, 0),
1828 5a7fab74 Jose A. Lopes
   (dsDiskOverhead, 0)]
1829 5a7fab74 Jose A. Lopes
1830 5a7fab74 Jose A. Lopes
dssParameterTypes :: Map String VType
1831 5a7fab74 Jose A. Lopes
dssParameterTypes =
1832 5a7fab74 Jose A. Lopes
  Map.fromList [(dsDiskTotal, VTypeInt),
1833 5a7fab74 Jose A. Lopes
                (dsDiskReserved, VTypeInt),
1834 5a7fab74 Jose A. Lopes
                (dsDiskOverhead, VTypeInt)]
1835 5a7fab74 Jose A. Lopes
1836 5a7fab74 Jose A. Lopes
dssParameters :: FrozenSet String
1837 5a7fab74 Jose A. Lopes
dssParameters =
1838 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [dsDiskTotal, dsDiskReserved, dsDiskOverhead]
1839 5a7fab74 Jose A. Lopes
1840 5a7fab74 Jose A. Lopes
dsValidTypes :: FrozenSet String
1841 5a7fab74 Jose A. Lopes
dsValidTypes = ConstantUtils.mkSet [Types.diskTemplateToRaw DTPlain]
1842 5a7fab74 Jose A. Lopes
1843 8eb80cb3 Jose A. Lopes
-- Backend parameter names
1844 8eb80cb3 Jose A. Lopes
1845 8eb80cb3 Jose A. Lopes
beAlwaysFailover :: String
1846 8eb80cb3 Jose A. Lopes
beAlwaysFailover = "always_failover"
1847 8eb80cb3 Jose A. Lopes
1848 8eb80cb3 Jose A. Lopes
beAutoBalance :: String
1849 8eb80cb3 Jose A. Lopes
beAutoBalance = "auto_balance"
1850 8eb80cb3 Jose A. Lopes
1851 8eb80cb3 Jose A. Lopes
beMaxmem :: String
1852 8eb80cb3 Jose A. Lopes
beMaxmem = "maxmem"
1853 8eb80cb3 Jose A. Lopes
1854 8eb80cb3 Jose A. Lopes
-- | Deprecated and replaced by max and min mem
1855 8eb80cb3 Jose A. Lopes
beMemory :: String
1856 8eb80cb3 Jose A. Lopes
beMemory = "memory"
1857 8eb80cb3 Jose A. Lopes
1858 8eb80cb3 Jose A. Lopes
beMinmem :: String
1859 8eb80cb3 Jose A. Lopes
beMinmem = "minmem"
1860 8eb80cb3 Jose A. Lopes
1861 8eb80cb3 Jose A. Lopes
beSpindleUse :: String
1862 8eb80cb3 Jose A. Lopes
beSpindleUse = "spindle_use"
1863 8eb80cb3 Jose A. Lopes
1864 8eb80cb3 Jose A. Lopes
beVcpus :: String
1865 8eb80cb3 Jose A. Lopes
beVcpus = "vcpus"
1866 8eb80cb3 Jose A. Lopes
1867 8eb80cb3 Jose A. Lopes
besParameterTypes :: Map String VType
1868 8eb80cb3 Jose A. Lopes
besParameterTypes =
1869 8eb80cb3 Jose A. Lopes
  Map.fromList [(beAlwaysFailover, VTypeBool),
1870 8eb80cb3 Jose A. Lopes
                (beAutoBalance, VTypeBool),
1871 8eb80cb3 Jose A. Lopes
                (beMaxmem, VTypeSize),
1872 8eb80cb3 Jose A. Lopes
                (beMinmem, VTypeSize),
1873 8eb80cb3 Jose A. Lopes
                (beSpindleUse, VTypeInt),
1874 8eb80cb3 Jose A. Lopes
                (beVcpus, VTypeInt)]
1875 8eb80cb3 Jose A. Lopes
1876 8eb80cb3 Jose A. Lopes
besParameterTitles :: Map String String
1877 8eb80cb3 Jose A. Lopes
besParameterTitles =
1878 8eb80cb3 Jose A. Lopes
  Map.fromList [(beAutoBalance, "Auto_balance"),
1879 8eb80cb3 Jose A. Lopes
                (beMinmem, "ConfigMinMem"),
1880 8eb80cb3 Jose A. Lopes
                (beVcpus, "ConfigVCPUs"),
1881 8eb80cb3 Jose A. Lopes
                (beMaxmem, "ConfigMaxMem")]
1882 8eb80cb3 Jose A. Lopes
1883 8eb80cb3 Jose A. Lopes
besParameterCompat :: Map String VType
1884 8eb80cb3 Jose A. Lopes
besParameterCompat = Map.insert beMemory VTypeSize besParameterTypes
1885 8eb80cb3 Jose A. Lopes
1886 8eb80cb3 Jose A. Lopes
besParameters :: FrozenSet String
1887 8eb80cb3 Jose A. Lopes
besParameters =
1888 8eb80cb3 Jose A. Lopes
  ConstantUtils.mkSet [beAlwaysFailover,
1889 8eb80cb3 Jose A. Lopes
                       beAutoBalance,
1890 8eb80cb3 Jose A. Lopes
                       beMaxmem,
1891 8eb80cb3 Jose A. Lopes
                       beMinmem,
1892 8eb80cb3 Jose A. Lopes
                       beSpindleUse,
1893 8eb80cb3 Jose A. Lopes
                       beVcpus]
1894 8eb80cb3 Jose A. Lopes
1895 8397ffde Jose A. Lopes
-- | Instance specs
1896 8397ffde Jose A. Lopes
--
1897 8397ffde Jose A. Lopes
-- FIXME: these should be associated with 'Ganeti.HTools.Types.ISpec'
1898 8397ffde Jose A. Lopes
1899 8397ffde Jose A. Lopes
ispecMemSize :: String
1900 8397ffde Jose A. Lopes
ispecMemSize = ConstantUtils.ispecMemSize
1901 8397ffde Jose A. Lopes
1902 8397ffde Jose A. Lopes
ispecCpuCount :: String
1903 8397ffde Jose A. Lopes
ispecCpuCount = ConstantUtils.ispecCpuCount
1904 8397ffde Jose A. Lopes
1905 8397ffde Jose A. Lopes
ispecDiskCount :: String
1906 8397ffde Jose A. Lopes
ispecDiskCount = ConstantUtils.ispecDiskCount
1907 8397ffde Jose A. Lopes
1908 8397ffde Jose A. Lopes
ispecDiskSize :: String
1909 8397ffde Jose A. Lopes
ispecDiskSize = ConstantUtils.ispecDiskSize
1910 8397ffde Jose A. Lopes
1911 8397ffde Jose A. Lopes
ispecNicCount :: String
1912 8397ffde Jose A. Lopes
ispecNicCount = ConstantUtils.ispecNicCount
1913 8397ffde Jose A. Lopes
1914 8397ffde Jose A. Lopes
ispecSpindleUse :: String
1915 8397ffde Jose A. Lopes
ispecSpindleUse = ConstantUtils.ispecSpindleUse
1916 8397ffde Jose A. Lopes
1917 8397ffde Jose A. Lopes
ispecsParameterTypes :: Map String VType
1918 8397ffde Jose A. Lopes
ispecsParameterTypes =
1919 8397ffde Jose A. Lopes
  Map.fromList
1920 8397ffde Jose A. Lopes
  [(ConstantUtils.ispecDiskSize, VTypeInt),
1921 8397ffde Jose A. Lopes
   (ConstantUtils.ispecCpuCount, VTypeInt),
1922 8397ffde Jose A. Lopes
   (ConstantUtils.ispecSpindleUse, VTypeInt),
1923 8397ffde Jose A. Lopes
   (ConstantUtils.ispecMemSize, VTypeInt),
1924 8397ffde Jose A. Lopes
   (ConstantUtils.ispecNicCount, VTypeInt),
1925 8397ffde Jose A. Lopes
   (ConstantUtils.ispecDiskCount, VTypeInt)]
1926 8397ffde Jose A. Lopes
1927 8397ffde Jose A. Lopes
ispecsParameters :: FrozenSet String
1928 8397ffde Jose A. Lopes
ispecsParameters =
1929 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ispecCpuCount,
1930 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskCount,
1931 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskSize,
1932 8397ffde Jose A. Lopes
                       ConstantUtils.ispecMemSize,
1933 8397ffde Jose A. Lopes
                       ConstantUtils.ispecNicCount,
1934 8397ffde Jose A. Lopes
                       ConstantUtils.ispecSpindleUse]
1935 8397ffde Jose A. Lopes
1936 8397ffde Jose A. Lopes
ispecsMinmax :: String
1937 8397ffde Jose A. Lopes
ispecsMinmax = ConstantUtils.ispecsMinmax
1938 8397ffde Jose A. Lopes
1939 8397ffde Jose A. Lopes
ispecsMax :: String
1940 8397ffde Jose A. Lopes
ispecsMax = "max"
1941 8397ffde Jose A. Lopes
1942 8397ffde Jose A. Lopes
ispecsMin :: String
1943 8397ffde Jose A. Lopes
ispecsMin = "min"
1944 8397ffde Jose A. Lopes
1945 8397ffde Jose A. Lopes
ispecsStd :: String
1946 8397ffde Jose A. Lopes
ispecsStd = ConstantUtils.ispecsStd
1947 8397ffde Jose A. Lopes
1948 8397ffde Jose A. Lopes
ipolicyDts :: String
1949 8397ffde Jose A. Lopes
ipolicyDts = ConstantUtils.ipolicyDts
1950 8397ffde Jose A. Lopes
1951 8397ffde Jose A. Lopes
ipolicyVcpuRatio :: String
1952 8397ffde Jose A. Lopes
ipolicyVcpuRatio = ConstantUtils.ipolicyVcpuRatio
1953 8397ffde Jose A. Lopes
1954 8397ffde Jose A. Lopes
ipolicySpindleRatio :: String
1955 8397ffde Jose A. Lopes
ipolicySpindleRatio = ConstantUtils.ipolicySpindleRatio
1956 8397ffde Jose A. Lopes
1957 8397ffde Jose A. Lopes
ispecsMinmaxKeys :: FrozenSet String
1958 8397ffde Jose A. Lopes
ispecsMinmaxKeys = ConstantUtils.mkSet [ispecsMax, ispecsMin]
1959 8397ffde Jose A. Lopes
1960 8397ffde Jose A. Lopes
ipolicyParameters :: FrozenSet String
1961 8397ffde Jose A. Lopes
ipolicyParameters =
1962 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyVcpuRatio,
1963 8397ffde Jose A. Lopes
                       ConstantUtils.ipolicySpindleRatio]
1964 8397ffde Jose A. Lopes
1965 8397ffde Jose A. Lopes
ipolicyAllKeys :: FrozenSet String
1966 8397ffde Jose A. Lopes
ipolicyAllKeys =
1967 8397ffde Jose A. Lopes
  ConstantUtils.union ipolicyParameters $
1968 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyDts,
1969 8397ffde Jose A. Lopes
                       ConstantUtils.ispecsMinmax,
1970 8397ffde Jose A. Lopes
                       ispecsStd]
1971 8397ffde Jose A. Lopes
1972 ecf43dcb Jose A. Lopes
-- | Node parameter names
1973 ecf43dcb Jose A. Lopes
1974 ecf43dcb Jose A. Lopes
ndExclusiveStorage :: String
1975 ecf43dcb Jose A. Lopes
ndExclusiveStorage = "exclusive_storage"
1976 ecf43dcb Jose A. Lopes
1977 ecf43dcb Jose A. Lopes
ndOobProgram :: String
1978 ecf43dcb Jose A. Lopes
ndOobProgram = "oob_program"
1979 ecf43dcb Jose A. Lopes
1980 ecf43dcb Jose A. Lopes
ndSpindleCount :: String
1981 ecf43dcb Jose A. Lopes
ndSpindleCount = "spindle_count"
1982 ecf43dcb Jose A. Lopes
1983 ecf43dcb Jose A. Lopes
ndOvs :: String
1984 ecf43dcb Jose A. Lopes
ndOvs = "ovs"
1985 ecf43dcb Jose A. Lopes
1986 ecf43dcb Jose A. Lopes
ndOvsLink :: String
1987 ecf43dcb Jose A. Lopes
ndOvsLink = "ovs_link"
1988 ecf43dcb Jose A. Lopes
1989 ecf43dcb Jose A. Lopes
ndOvsName :: String
1990 ecf43dcb Jose A. Lopes
ndOvsName = "ovs_name"
1991 ecf43dcb Jose A. Lopes
1992 ecf43dcb Jose A. Lopes
ndsParameterTypes :: Map String VType
1993 ecf43dcb Jose A. Lopes
ndsParameterTypes =
1994 ecf43dcb Jose A. Lopes
  Map.fromList
1995 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, VTypeBool),
1996 ecf43dcb Jose A. Lopes
   (ndOobProgram, VTypeString),
1997 ecf43dcb Jose A. Lopes
   (ndOvs, VTypeBool),
1998 ecf43dcb Jose A. Lopes
   (ndOvsLink, VTypeMaybeString),
1999 ecf43dcb Jose A. Lopes
   (ndOvsName, VTypeMaybeString),
2000 ecf43dcb Jose A. Lopes
   (ndSpindleCount, VTypeInt)]
2001 ecf43dcb Jose A. Lopes
2002 ecf43dcb Jose A. Lopes
ndsParameters :: FrozenSet String
2003 ecf43dcb Jose A. Lopes
ndsParameters = ConstantUtils.mkSet (Map.keys ndsParameterTypes)
2004 ecf43dcb Jose A. Lopes
2005 ecf43dcb Jose A. Lopes
ndsParameterTitles :: Map String String
2006 ecf43dcb Jose A. Lopes
ndsParameterTitles =
2007 ecf43dcb Jose A. Lopes
  Map.fromList
2008 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, "ExclusiveStorage"),
2009 ecf43dcb Jose A. Lopes
   (ndOobProgram, "OutOfBandProgram"),
2010 ecf43dcb Jose A. Lopes
   (ndOvs, "OpenvSwitch"),
2011 ecf43dcb Jose A. Lopes
   (ndOvsLink, "OpenvSwitchLink"),
2012 ecf43dcb Jose A. Lopes
   (ndOvsName, "OpenvSwitchName"),
2013 ecf43dcb Jose A. Lopes
   (ndSpindleCount, "SpindleCount")]
2014 ecf43dcb Jose A. Lopes
2015 8eb80cb3 Jose A. Lopes
-- * Logical Disks parameters
2016 8eb80cb3 Jose A. Lopes
2017 8eb80cb3 Jose A. Lopes
ldpAccess :: String
2018 8eb80cb3 Jose A. Lopes
ldpAccess = "access"
2019 8eb80cb3 Jose A. Lopes
2020 8eb80cb3 Jose A. Lopes
ldpBarriers :: String
2021 8eb80cb3 Jose A. Lopes
ldpBarriers = "disabled-barriers"
2022 8eb80cb3 Jose A. Lopes
2023 8eb80cb3 Jose A. Lopes
ldpDefaultMetavg :: String
2024 8eb80cb3 Jose A. Lopes
ldpDefaultMetavg = "default-metavg"
2025 8eb80cb3 Jose A. Lopes
2026 8eb80cb3 Jose A. Lopes
ldpDelayTarget :: String
2027 8eb80cb3 Jose A. Lopes
ldpDelayTarget = "c-delay-target"
2028 8eb80cb3 Jose A. Lopes
2029 8eb80cb3 Jose A. Lopes
ldpDiskCustom :: String
2030 8eb80cb3 Jose A. Lopes
ldpDiskCustom = "disk-custom"
2031 8eb80cb3 Jose A. Lopes
2032 8eb80cb3 Jose A. Lopes
ldpDynamicResync :: String
2033 8eb80cb3 Jose A. Lopes
ldpDynamicResync = "dynamic-resync"
2034 3b170ad4 Jose A. Lopes
2035 8eb80cb3 Jose A. Lopes
ldpFillTarget :: String
2036 8eb80cb3 Jose A. Lopes
ldpFillTarget = "c-fill-target"
2037 85c48fbb Jose A. Lopes
2038 8eb80cb3 Jose A. Lopes
ldpMaxRate :: String
2039 8eb80cb3 Jose A. Lopes
ldpMaxRate = "c-max-rate"
2040 85c48fbb Jose A. Lopes
2041 8eb80cb3 Jose A. Lopes
ldpMinRate :: String
2042 8eb80cb3 Jose A. Lopes
ldpMinRate = "c-min-rate"
2043 85c48fbb Jose A. Lopes
2044 8eb80cb3 Jose A. Lopes
ldpNetCustom :: String
2045 8eb80cb3 Jose A. Lopes
ldpNetCustom = "net-custom"
2046 85c48fbb Jose A. Lopes
2047 8eb80cb3 Jose A. Lopes
ldpNoMetaFlush :: String
2048 8eb80cb3 Jose A. Lopes
ldpNoMetaFlush = "disable-meta-flush"
2049 8eb80cb3 Jose A. Lopes
2050 8eb80cb3 Jose A. Lopes
ldpPlanAhead :: String
2051 8eb80cb3 Jose A. Lopes
ldpPlanAhead = "c-plan-ahead"
2052 8eb80cb3 Jose A. Lopes
2053 8eb80cb3 Jose A. Lopes
ldpPool :: String
2054 8eb80cb3 Jose A. Lopes
ldpPool = "pool"
2055 8eb80cb3 Jose A. Lopes
2056 8eb80cb3 Jose A. Lopes
ldpProtocol :: String
2057 8eb80cb3 Jose A. Lopes
ldpProtocol = "protocol"
2058 8eb80cb3 Jose A. Lopes
2059 8eb80cb3 Jose A. Lopes
ldpResyncRate :: String
2060 8eb80cb3 Jose A. Lopes
ldpResyncRate = "resync-rate"
2061 8eb80cb3 Jose A. Lopes
2062 8eb80cb3 Jose A. Lopes
ldpStripes :: String
2063 8eb80cb3 Jose A. Lopes
ldpStripes = "stripes"
2064 8eb80cb3 Jose A. Lopes
2065 8eb80cb3 Jose A. Lopes
diskLdTypes :: Map String VType
2066 8eb80cb3 Jose A. Lopes
diskLdTypes =
2067 8eb80cb3 Jose A. Lopes
  Map.fromList
2068 8eb80cb3 Jose A. Lopes
  [(ldpAccess, VTypeString),
2069 8eb80cb3 Jose A. Lopes
   (ldpResyncRate, VTypeInt),
2070 8eb80cb3 Jose A. Lopes
   (ldpStripes, VTypeInt),
2071 8eb80cb3 Jose A. Lopes
   (ldpBarriers, VTypeString),
2072 8eb80cb3 Jose A. Lopes
   (ldpNoMetaFlush, VTypeBool),
2073 8eb80cb3 Jose A. Lopes
   (ldpDefaultMetavg, VTypeString),
2074 8eb80cb3 Jose A. Lopes
   (ldpDiskCustom, VTypeString),
2075 8eb80cb3 Jose A. Lopes
   (ldpNetCustom, VTypeString),
2076 8eb80cb3 Jose A. Lopes
   (ldpProtocol, VTypeString),
2077 8eb80cb3 Jose A. Lopes
   (ldpDynamicResync, VTypeBool),
2078 8eb80cb3 Jose A. Lopes
   (ldpPlanAhead, VTypeInt),
2079 8eb80cb3 Jose A. Lopes
   (ldpFillTarget, VTypeInt),
2080 8eb80cb3 Jose A. Lopes
   (ldpDelayTarget, VTypeInt),
2081 8eb80cb3 Jose A. Lopes
   (ldpMaxRate, VTypeInt),
2082 8eb80cb3 Jose A. Lopes
   (ldpMinRate, VTypeInt),
2083 8eb80cb3 Jose A. Lopes
   (ldpPool, VTypeString)]
2084 8eb80cb3 Jose A. Lopes
2085 8eb80cb3 Jose A. Lopes
diskLdParameters :: FrozenSet String
2086 8eb80cb3 Jose A. Lopes
diskLdParameters = ConstantUtils.mkSet (Map.keys diskLdTypes)
2087 85c48fbb Jose A. Lopes
2088 ec321549 Jose A. Lopes
-- * Disk template parameters
2089 ec321549 Jose A. Lopes
--
2090 ec321549 Jose A. Lopes
-- Disk template parameters can be set/changed by the user via
2091 ec321549 Jose A. Lopes
-- gnt-cluster and gnt-group)
2092 ec321549 Jose A. Lopes
2093 ec321549 Jose A. Lopes
drbdResyncRate :: String
2094 ec321549 Jose A. Lopes
drbdResyncRate = "resync-rate"
2095 ec321549 Jose A. Lopes
2096 ec321549 Jose A. Lopes
drbdDataStripes :: String
2097 ec321549 Jose A. Lopes
drbdDataStripes = "data-stripes"
2098 ec321549 Jose A. Lopes
2099 ec321549 Jose A. Lopes
drbdMetaStripes :: String
2100 ec321549 Jose A. Lopes
drbdMetaStripes = "meta-stripes"
2101 ec321549 Jose A. Lopes
2102 ec321549 Jose A. Lopes
drbdDiskBarriers :: String
2103 ec321549 Jose A. Lopes
drbdDiskBarriers = "disk-barriers"
2104 ec321549 Jose A. Lopes
2105 ec321549 Jose A. Lopes
drbdMetaBarriers :: String
2106 ec321549 Jose A. Lopes
drbdMetaBarriers = "meta-barriers"
2107 ec321549 Jose A. Lopes
2108 ec321549 Jose A. Lopes
drbdDefaultMetavg :: String
2109 ec321549 Jose A. Lopes
drbdDefaultMetavg = "metavg"
2110 ec321549 Jose A. Lopes
2111 ec321549 Jose A. Lopes
drbdDiskCustom :: String
2112 ec321549 Jose A. Lopes
drbdDiskCustom = "disk-custom"
2113 ec321549 Jose A. Lopes
2114 ec321549 Jose A. Lopes
drbdNetCustom :: String
2115 ec321549 Jose A. Lopes
drbdNetCustom = "net-custom"
2116 ec321549 Jose A. Lopes
2117 ec321549 Jose A. Lopes
drbdProtocol :: String
2118 ec321549 Jose A. Lopes
drbdProtocol = "protocol"
2119 ec321549 Jose A. Lopes
2120 ec321549 Jose A. Lopes
drbdDynamicResync :: String
2121 ec321549 Jose A. Lopes
drbdDynamicResync = "dynamic-resync"
2122 ec321549 Jose A. Lopes
2123 ec321549 Jose A. Lopes
drbdPlanAhead :: String
2124 ec321549 Jose A. Lopes
drbdPlanAhead = "c-plan-ahead"
2125 ec321549 Jose A. Lopes
2126 ec321549 Jose A. Lopes
drbdFillTarget :: String
2127 ec321549 Jose A. Lopes
drbdFillTarget = "c-fill-target"
2128 ec321549 Jose A. Lopes
2129 ec321549 Jose A. Lopes
drbdDelayTarget :: String
2130 ec321549 Jose A. Lopes
drbdDelayTarget = "c-delay-target"
2131 ec321549 Jose A. Lopes
2132 ec321549 Jose A. Lopes
drbdMaxRate :: String
2133 ec321549 Jose A. Lopes
drbdMaxRate = "c-max-rate"
2134 ec321549 Jose A. Lopes
2135 ec321549 Jose A. Lopes
drbdMinRate :: String
2136 ec321549 Jose A. Lopes
drbdMinRate = "c-min-rate"
2137 ec321549 Jose A. Lopes
2138 ec321549 Jose A. Lopes
lvStripes :: String
2139 ec321549 Jose A. Lopes
lvStripes = "stripes"
2140 ec321549 Jose A. Lopes
2141 ec321549 Jose A. Lopes
rbdAccess :: String
2142 ec321549 Jose A. Lopes
rbdAccess = "access"
2143 ec321549 Jose A. Lopes
2144 ec321549 Jose A. Lopes
rbdPool :: String
2145 ec321549 Jose A. Lopes
rbdPool = "pool"
2146 ec321549 Jose A. Lopes
2147 ec321549 Jose A. Lopes
diskDtTypes :: Map String VType
2148 ec321549 Jose A. Lopes
diskDtTypes =
2149 ec321549 Jose A. Lopes
  Map.fromList [(drbdResyncRate, VTypeInt),
2150 ec321549 Jose A. Lopes
                (drbdDataStripes, VTypeInt),
2151 ec321549 Jose A. Lopes
                (drbdMetaStripes, VTypeInt),
2152 ec321549 Jose A. Lopes
                (drbdDiskBarriers, VTypeString),
2153 ec321549 Jose A. Lopes
                (drbdMetaBarriers, VTypeBool),
2154 ec321549 Jose A. Lopes
                (drbdDefaultMetavg, VTypeString),
2155 ec321549 Jose A. Lopes
                (drbdDiskCustom, VTypeString),
2156 ec321549 Jose A. Lopes
                (drbdNetCustom, VTypeString),
2157 ec321549 Jose A. Lopes
                (drbdProtocol, VTypeString),
2158 ec321549 Jose A. Lopes
                (drbdDynamicResync, VTypeBool),
2159 ec321549 Jose A. Lopes
                (drbdPlanAhead, VTypeInt),
2160 ec321549 Jose A. Lopes
                (drbdFillTarget, VTypeInt),
2161 ec321549 Jose A. Lopes
                (drbdDelayTarget, VTypeInt),
2162 ec321549 Jose A. Lopes
                (drbdMaxRate, VTypeInt),
2163 ec321549 Jose A. Lopes
                (drbdMinRate, VTypeInt),
2164 ec321549 Jose A. Lopes
                (lvStripes, VTypeInt),
2165 ec321549 Jose A. Lopes
                (rbdAccess, VTypeString),
2166 ec321549 Jose A. Lopes
                (rbdPool, VTypeString)]
2167 ec321549 Jose A. Lopes
2168 ec321549 Jose A. Lopes
diskDtParameters :: FrozenSet String
2169 ec321549 Jose A. Lopes
diskDtParameters = ConstantUtils.mkSet (Map.keys diskDtTypes)
2170 ec321549 Jose A. Lopes
2171 ec321549 Jose A. Lopes
-- * Dynamic disk parameters
2172 ec321549 Jose A. Lopes
2173 ec321549 Jose A. Lopes
ddpLocalIp :: String
2174 ec321549 Jose A. Lopes
ddpLocalIp = "local-ip"
2175 ec321549 Jose A. Lopes
2176 ec321549 Jose A. Lopes
ddpRemoteIp :: String
2177 ec321549 Jose A. Lopes
ddpRemoteIp = "remote-ip"
2178 ec321549 Jose A. Lopes
2179 ec321549 Jose A. Lopes
ddpPort :: String
2180 ec321549 Jose A. Lopes
ddpPort = "port"
2181 ec321549 Jose A. Lopes
2182 ec321549 Jose A. Lopes
ddpLocalMinor :: String
2183 ec321549 Jose A. Lopes
ddpLocalMinor = "local-minor"
2184 ec321549 Jose A. Lopes
2185 ec321549 Jose A. Lopes
ddpRemoteMinor :: String
2186 ec321549 Jose A. Lopes
ddpRemoteMinor = "remote-minor"
2187 ec321549 Jose A. Lopes
2188 c890f66a Jose A. Lopes
-- * OOB supported commands
2189 85c48fbb Jose A. Lopes
2190 c890f66a Jose A. Lopes
oobPowerOn :: String
2191 c890f66a Jose A. Lopes
oobPowerOn = Types.oobCommandToRaw OobPowerOn
2192 85c48fbb Jose A. Lopes
2193 c890f66a Jose A. Lopes
oobPowerOff :: String
2194 c890f66a Jose A. Lopes
oobPowerOff = Types.oobCommandToRaw OobPowerOff
2195 85c48fbb Jose A. Lopes
2196 c890f66a Jose A. Lopes
oobPowerCycle :: String
2197 c890f66a Jose A. Lopes
oobPowerCycle = Types.oobCommandToRaw OobPowerCycle
2198 85c48fbb Jose A. Lopes
2199 c890f66a Jose A. Lopes
oobPowerStatus :: String
2200 c890f66a Jose A. Lopes
oobPowerStatus = Types.oobCommandToRaw OobPowerStatus
2201 85c48fbb Jose A. Lopes
2202 c890f66a Jose A. Lopes
oobHealth :: String
2203 c890f66a Jose A. Lopes
oobHealth = Types.oobCommandToRaw OobHealth
2204 85c48fbb Jose A. Lopes
2205 c890f66a Jose A. Lopes
oobCommands :: FrozenSet String
2206 c890f66a Jose A. Lopes
oobCommands = ConstantUtils.mkSet $ map Types.oobCommandToRaw [minBound..]
2207 85c48fbb Jose A. Lopes
2208 c890f66a Jose A. Lopes
oobPowerStatusPowered :: String
2209 c890f66a Jose A. Lopes
oobPowerStatusPowered = "powered"
2210 85c48fbb Jose A. Lopes
2211 c890f66a Jose A. Lopes
-- | 60 seconds
2212 c890f66a Jose A. Lopes
oobTimeout :: Int
2213 c890f66a Jose A. Lopes
oobTimeout = 60
2214 85c48fbb Jose A. Lopes
2215 c890f66a Jose A. Lopes
-- | 2 seconds
2216 c890f66a Jose A. Lopes
oobPowerDelay :: Double
2217 c890f66a Jose A. Lopes
oobPowerDelay = 2.0
2218 85c48fbb Jose A. Lopes
2219 c890f66a Jose A. Lopes
oobStatusCritical :: String
2220 c890f66a Jose A. Lopes
oobStatusCritical = Types.oobStatusToRaw OobStatusCritical
2221 85c48fbb Jose A. Lopes
2222 c890f66a Jose A. Lopes
oobStatusOk :: String
2223 c890f66a Jose A. Lopes
oobStatusOk = Types.oobStatusToRaw OobStatusOk
2224 85c48fbb Jose A. Lopes
2225 c890f66a Jose A. Lopes
oobStatusUnknown :: String
2226 c890f66a Jose A. Lopes
oobStatusUnknown = Types.oobStatusToRaw OobStatusUnknown
2227 85c48fbb Jose A. Lopes
2228 c890f66a Jose A. Lopes
oobStatusWarning :: String
2229 c890f66a Jose A. Lopes
oobStatusWarning = Types.oobStatusToRaw OobStatusWarning
2230 85c48fbb Jose A. Lopes
2231 c890f66a Jose A. Lopes
oobStatuses :: FrozenSet String
2232 c890f66a Jose A. Lopes
oobStatuses = ConstantUtils.mkSet $ map Types.oobStatusToRaw [minBound..]
2233 85c48fbb Jose A. Lopes
2234 649f774a Jose A. Lopes
-- | Instance Parameters Profile
2235 649f774a Jose A. Lopes
ppDefault :: String
2236 649f774a Jose A. Lopes
ppDefault = "default"
2237 649f774a Jose A. Lopes
2238 d4bc2eec Jose A. Lopes
-- * nic* constants are used inside the ganeti config
2239 85c48fbb Jose A. Lopes
2240 c890f66a Jose A. Lopes
nicLink :: String
2241 c890f66a Jose A. Lopes
nicLink = "link"
2242 85c48fbb Jose A. Lopes
2243 c890f66a Jose A. Lopes
nicMode :: String
2244 c890f66a Jose A. Lopes
nicMode = "mode"
2245 85c48fbb Jose A. Lopes
2246 c890f66a Jose A. Lopes
nicVlan :: String
2247 c890f66a Jose A. Lopes
nicVlan = "vlan"
2248 85c48fbb Jose A. Lopes
2249 d4bc2eec Jose A. Lopes
nicsParameterTypes :: Map String VType
2250 d4bc2eec Jose A. Lopes
nicsParameterTypes =
2251 d4bc2eec Jose A. Lopes
  Map.fromList [(nicMode, vtypeString),
2252 d4bc2eec Jose A. Lopes
                (nicLink, vtypeString),
2253 d4bc2eec Jose A. Lopes
                (nicVlan, vtypeMaybeString)]
2254 d4bc2eec Jose A. Lopes
2255 d4bc2eec Jose A. Lopes
nicsParameters :: FrozenSet String
2256 d4bc2eec Jose A. Lopes
nicsParameters = ConstantUtils.mkSet (Map.keys nicsParameterTypes)
2257 d4bc2eec Jose A. Lopes
2258 c890f66a Jose A. Lopes
nicModeBridged :: String
2259 c890f66a Jose A. Lopes
nicModeBridged = Types.nICModeToRaw NMBridged
2260 85c48fbb Jose A. Lopes
2261 c890f66a Jose A. Lopes
nicModeRouted :: String
2262 c890f66a Jose A. Lopes
nicModeRouted = Types.nICModeToRaw NMRouted
2263 85c48fbb Jose A. Lopes
2264 c890f66a Jose A. Lopes
nicModeOvs :: String
2265 c890f66a Jose A. Lopes
nicModeOvs = Types.nICModeToRaw NMOvs
2266 85c48fbb Jose A. Lopes
2267 c890f66a Jose A. Lopes
nicIpPool :: String
2268 c890f66a Jose A. Lopes
nicIpPool = Types.nICModeToRaw NMPool
2269 85c48fbb Jose A. Lopes
2270 c890f66a Jose A. Lopes
nicValidModes :: FrozenSet String
2271 c890f66a Jose A. Lopes
nicValidModes = ConstantUtils.mkSet $ map Types.nICModeToRaw [minBound..]
2272 85c48fbb Jose A. Lopes
2273 649f774a Jose A. Lopes
releaseAction :: String
2274 649f774a Jose A. Lopes
releaseAction = "release"
2275 649f774a Jose A. Lopes
2276 649f774a Jose A. Lopes
reserveAction :: String
2277 649f774a Jose A. Lopes
reserveAction = "reserve"
2278 649f774a Jose A. Lopes
2279 649f774a Jose A. Lopes
-- * idisk* constants are used in opcodes, to create/change disks
2280 649f774a Jose A. Lopes
2281 649f774a Jose A. Lopes
idiskAdopt :: String
2282 649f774a Jose A. Lopes
idiskAdopt = "adopt"
2283 649f774a Jose A. Lopes
2284 649f774a Jose A. Lopes
idiskMetavg :: String
2285 649f774a Jose A. Lopes
idiskMetavg = "metavg"
2286 649f774a Jose A. Lopes
2287 649f774a Jose A. Lopes
idiskMode :: String
2288 649f774a Jose A. Lopes
idiskMode = "mode"
2289 649f774a Jose A. Lopes
2290 649f774a Jose A. Lopes
idiskName :: String
2291 649f774a Jose A. Lopes
idiskName = "name"
2292 649f774a Jose A. Lopes
2293 649f774a Jose A. Lopes
idiskSize :: String
2294 649f774a Jose A. Lopes
idiskSize = "size"
2295 649f774a Jose A. Lopes
2296 649f774a Jose A. Lopes
idiskSpindles :: String
2297 649f774a Jose A. Lopes
idiskSpindles = "spindles"
2298 649f774a Jose A. Lopes
2299 649f774a Jose A. Lopes
idiskVg :: String
2300 649f774a Jose A. Lopes
idiskVg = "vg"
2301 649f774a Jose A. Lopes
2302 649f774a Jose A. Lopes
idiskProvider :: String
2303 649f774a Jose A. Lopes
idiskProvider = "provider"
2304 649f774a Jose A. Lopes
2305 649f774a Jose A. Lopes
idiskParamsTypes :: Map String VType
2306 649f774a Jose A. Lopes
idiskParamsTypes =
2307 649f774a Jose A. Lopes
  Map.fromList [(idiskSize, VTypeSize),
2308 649f774a Jose A. Lopes
                (idiskSpindles, VTypeInt),
2309 649f774a Jose A. Lopes
                (idiskMode, VTypeString),
2310 649f774a Jose A. Lopes
                (idiskAdopt, VTypeString),
2311 649f774a Jose A. Lopes
                (idiskVg, VTypeString),
2312 649f774a Jose A. Lopes
                (idiskMetavg, VTypeString),
2313 649f774a Jose A. Lopes
                (idiskProvider, VTypeString),
2314 649f774a Jose A. Lopes
                (idiskName, VTypeMaybeString)]
2315 649f774a Jose A. Lopes
2316 649f774a Jose A. Lopes
idiskParams :: FrozenSet String
2317 649f774a Jose A. Lopes
idiskParams = ConstantUtils.mkSet (Map.keys idiskParamsTypes)
2318 649f774a Jose A. Lopes
2319 649f774a Jose A. Lopes
-- * inic* constants are used in opcodes, to create/change nics
2320 649f774a Jose A. Lopes
2321 649f774a Jose A. Lopes
inicBridge :: String
2322 649f774a Jose A. Lopes
inicBridge = "bridge"
2323 649f774a Jose A. Lopes
2324 649f774a Jose A. Lopes
inicIp :: String
2325 649f774a Jose A. Lopes
inicIp = "ip"
2326 649f774a Jose A. Lopes
2327 649f774a Jose A. Lopes
inicLink :: String
2328 649f774a Jose A. Lopes
inicLink = "link"
2329 649f774a Jose A. Lopes
2330 649f774a Jose A. Lopes
inicMac :: String
2331 649f774a Jose A. Lopes
inicMac = "mac"
2332 649f774a Jose A. Lopes
2333 649f774a Jose A. Lopes
inicMode :: String
2334 649f774a Jose A. Lopes
inicMode = "mode"
2335 649f774a Jose A. Lopes
2336 649f774a Jose A. Lopes
inicName :: String
2337 649f774a Jose A. Lopes
inicName = "name"
2338 649f774a Jose A. Lopes
2339 649f774a Jose A. Lopes
inicNetwork :: String
2340 649f774a Jose A. Lopes
inicNetwork = "network"
2341 649f774a Jose A. Lopes
2342 649f774a Jose A. Lopes
inicVlan :: String
2343 649f774a Jose A. Lopes
inicVlan = "vlan"
2344 649f774a Jose A. Lopes
2345 649f774a Jose A. Lopes
inicParamsTypes :: Map String VType
2346 649f774a Jose A. Lopes
inicParamsTypes =
2347 649f774a Jose A. Lopes
  Map.fromList [(inicBridge, VTypeMaybeString),
2348 649f774a Jose A. Lopes
                (inicIp, VTypeMaybeString),
2349 649f774a Jose A. Lopes
                (inicLink, VTypeString),
2350 649f774a Jose A. Lopes
                (inicMac, VTypeString),
2351 649f774a Jose A. Lopes
                (inicMode, VTypeString),
2352 649f774a Jose A. Lopes
                (inicName, VTypeMaybeString),
2353 649f774a Jose A. Lopes
                (inicNetwork, VTypeMaybeString),
2354 649f774a Jose A. Lopes
                (inicVlan, VTypeMaybeString)]
2355 649f774a Jose A. Lopes
2356 649f774a Jose A. Lopes
inicParams :: FrozenSet String
2357 649f774a Jose A. Lopes
inicParams = ConstantUtils.mkSet (Map.keys inicParamsTypes)
2358 649f774a Jose A. Lopes
2359 c890f66a Jose A. Lopes
-- * Hypervisor constants
2360 85c48fbb Jose A. Lopes
2361 c890f66a Jose A. Lopes
htXenPvm :: String
2362 c890f66a Jose A. Lopes
htXenPvm = Types.hypervisorToRaw XenPvm
2363 85c48fbb Jose A. Lopes
2364 c890f66a Jose A. Lopes
htFake :: String
2365 c890f66a Jose A. Lopes
htFake = Types.hypervisorToRaw Fake
2366 85c48fbb Jose A. Lopes
2367 c890f66a Jose A. Lopes
htXenHvm :: String
2368 c890f66a Jose A. Lopes
htXenHvm = Types.hypervisorToRaw XenHvm
2369 85c48fbb Jose A. Lopes
2370 c890f66a Jose A. Lopes
htKvm :: String
2371 c890f66a Jose A. Lopes
htKvm = Types.hypervisorToRaw Kvm
2372 85c48fbb Jose A. Lopes
2373 c890f66a Jose A. Lopes
htChroot :: String
2374 c890f66a Jose A. Lopes
htChroot = Types.hypervisorToRaw Chroot
2375 85c48fbb Jose A. Lopes
2376 c890f66a Jose A. Lopes
htLxc :: String
2377 c890f66a Jose A. Lopes
htLxc = Types.hypervisorToRaw Lxc
2378 85c48fbb Jose A. Lopes
2379 c890f66a Jose A. Lopes
hyperTypes :: FrozenSet String
2380 c890f66a Jose A. Lopes
hyperTypes = ConstantUtils.mkSet $ map Types.hypervisorToRaw [minBound..]
2381 85c48fbb Jose A. Lopes
2382 c890f66a Jose A. Lopes
htsReqPort :: FrozenSet String
2383 c890f66a Jose A. Lopes
htsReqPort = ConstantUtils.mkSet [htXenHvm, htKvm]
2384 85c48fbb Jose A. Lopes
2385 cf1f4273 Jose A. Lopes
vncBasePort :: Int
2386 cf1f4273 Jose A. Lopes
vncBasePort = 5900
2387 cf1f4273 Jose A. Lopes
2388 cf1f4273 Jose A. Lopes
vncDefaultBindAddress :: String
2389 cf1f4273 Jose A. Lopes
vncDefaultBindAddress = ip4AddressAny
2390 cf1f4273 Jose A. Lopes
2391 b8576ea1 Jose A. Lopes
-- * NIC types
2392 b8576ea1 Jose A. Lopes
2393 b8576ea1 Jose A. Lopes
htNicE1000 :: String
2394 b8576ea1 Jose A. Lopes
htNicE1000 = "e1000"
2395 b8576ea1 Jose A. Lopes
2396 b8576ea1 Jose A. Lopes
htNicI82551 :: String
2397 b8576ea1 Jose A. Lopes
htNicI82551 = "i82551"
2398 b8576ea1 Jose A. Lopes
2399 b8576ea1 Jose A. Lopes
htNicI8259er :: String
2400 b8576ea1 Jose A. Lopes
htNicI8259er = "i82559er"
2401 b8576ea1 Jose A. Lopes
2402 b8576ea1 Jose A. Lopes
htNicI85557b :: String
2403 b8576ea1 Jose A. Lopes
htNicI85557b = "i82557b"
2404 b8576ea1 Jose A. Lopes
2405 b8576ea1 Jose A. Lopes
htNicNe2kIsa :: String
2406 b8576ea1 Jose A. Lopes
htNicNe2kIsa = "ne2k_isa"
2407 b8576ea1 Jose A. Lopes
2408 b8576ea1 Jose A. Lopes
htNicNe2kPci :: String
2409 b8576ea1 Jose A. Lopes
htNicNe2kPci = "ne2k_pci"
2410 b8576ea1 Jose A. Lopes
2411 b8576ea1 Jose A. Lopes
htNicParavirtual :: String
2412 b8576ea1 Jose A. Lopes
htNicParavirtual = "paravirtual"
2413 b8576ea1 Jose A. Lopes
2414 b8576ea1 Jose A. Lopes
htNicPcnet :: String
2415 b8576ea1 Jose A. Lopes
htNicPcnet = "pcnet"
2416 b8576ea1 Jose A. Lopes
2417 b8576ea1 Jose A. Lopes
htNicRtl8139 :: String
2418 b8576ea1 Jose A. Lopes
htNicRtl8139 = "rtl8139"
2419 b8576ea1 Jose A. Lopes
2420 b8576ea1 Jose A. Lopes
htHvmValidNicTypes :: FrozenSet String
2421 b8576ea1 Jose A. Lopes
htHvmValidNicTypes =
2422 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htNicE1000,
2423 b8576ea1 Jose A. Lopes
                       htNicNe2kIsa,
2424 b8576ea1 Jose A. Lopes
                       htNicNe2kPci,
2425 b8576ea1 Jose A. Lopes
                       htNicParavirtual,
2426 b8576ea1 Jose A. Lopes
                       htNicRtl8139]
2427 b8576ea1 Jose A. Lopes
2428 b8576ea1 Jose A. Lopes
htKvmValidNicTypes :: FrozenSet String
2429 b8576ea1 Jose A. Lopes
htKvmValidNicTypes =
2430 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htNicE1000,
2431 b8576ea1 Jose A. Lopes
                       htNicI82551,
2432 b8576ea1 Jose A. Lopes
                       htNicI8259er,
2433 b8576ea1 Jose A. Lopes
                       htNicI85557b,
2434 b8576ea1 Jose A. Lopes
                       htNicNe2kIsa,
2435 b8576ea1 Jose A. Lopes
                       htNicNe2kPci,
2436 b8576ea1 Jose A. Lopes
                       htNicParavirtual,
2437 b8576ea1 Jose A. Lopes
                       htNicPcnet,
2438 b8576ea1 Jose A. Lopes
                       htNicRtl8139]
2439 b8576ea1 Jose A. Lopes
2440 b8576ea1 Jose A. Lopes
-- * Vif types
2441 b8576ea1 Jose A. Lopes
2442 b8576ea1 Jose A. Lopes
-- | Default vif type in xen-hvm
2443 b8576ea1 Jose A. Lopes
htHvmVifIoemu :: String
2444 b8576ea1 Jose A. Lopes
htHvmVifIoemu = "ioemu"
2445 b8576ea1 Jose A. Lopes
2446 b8576ea1 Jose A. Lopes
htHvmVifVif :: String
2447 b8576ea1 Jose A. Lopes
htHvmVifVif = "vif"
2448 b8576ea1 Jose A. Lopes
2449 b8576ea1 Jose A. Lopes
htHvmValidVifTypes :: FrozenSet String
2450 b8576ea1 Jose A. Lopes
htHvmValidVifTypes = ConstantUtils.mkSet [htHvmVifIoemu, htHvmVifVif]
2451 b8576ea1 Jose A. Lopes
2452 b8576ea1 Jose A. Lopes
-- * Disk types
2453 b8576ea1 Jose A. Lopes
2454 b8576ea1 Jose A. Lopes
htDiskIde :: String
2455 b8576ea1 Jose A. Lopes
htDiskIde = "ide"
2456 b8576ea1 Jose A. Lopes
2457 b8576ea1 Jose A. Lopes
htDiskIoemu :: String
2458 b8576ea1 Jose A. Lopes
htDiskIoemu = "ioemu"
2459 b8576ea1 Jose A. Lopes
2460 b8576ea1 Jose A. Lopes
htDiskMtd :: String
2461 b8576ea1 Jose A. Lopes
htDiskMtd = "mtd"
2462 b8576ea1 Jose A. Lopes
2463 b8576ea1 Jose A. Lopes
htDiskParavirtual :: String
2464 b8576ea1 Jose A. Lopes
htDiskParavirtual = "paravirtual"
2465 b8576ea1 Jose A. Lopes
2466 b8576ea1 Jose A. Lopes
htDiskPflash :: String
2467 b8576ea1 Jose A. Lopes
htDiskPflash = "pflash"
2468 b8576ea1 Jose A. Lopes
2469 b8576ea1 Jose A. Lopes
htDiskScsi :: String
2470 b8576ea1 Jose A. Lopes
htDiskScsi = "scsi"
2471 b8576ea1 Jose A. Lopes
2472 b8576ea1 Jose A. Lopes
htDiskSd :: String
2473 b8576ea1 Jose A. Lopes
htDiskSd = "sd"
2474 b8576ea1 Jose A. Lopes
2475 b8576ea1 Jose A. Lopes
htHvmValidDiskTypes :: FrozenSet String
2476 b8576ea1 Jose A. Lopes
htHvmValidDiskTypes = ConstantUtils.mkSet [htDiskIoemu, htDiskParavirtual]
2477 b8576ea1 Jose A. Lopes
2478 b8576ea1 Jose A. Lopes
htKvmValidDiskTypes :: FrozenSet String
2479 b8576ea1 Jose A. Lopes
htKvmValidDiskTypes =
2480 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htDiskIde,
2481 b8576ea1 Jose A. Lopes
                       htDiskMtd,
2482 b8576ea1 Jose A. Lopes
                       htDiskParavirtual,
2483 b8576ea1 Jose A. Lopes
                       htDiskPflash,
2484 b8576ea1 Jose A. Lopes
                       htDiskScsi,
2485 b8576ea1 Jose A. Lopes
                       htDiskSd]
2486 b8576ea1 Jose A. Lopes
2487 b8576ea1 Jose A. Lopes
htCacheDefault :: String
2488 b8576ea1 Jose A. Lopes
htCacheDefault = "default"
2489 b8576ea1 Jose A. Lopes
2490 b8576ea1 Jose A. Lopes
htCacheNone :: String
2491 b8576ea1 Jose A. Lopes
htCacheNone = "none"
2492 b8576ea1 Jose A. Lopes
2493 b8576ea1 Jose A. Lopes
htCacheWback :: String
2494 b8576ea1 Jose A. Lopes
htCacheWback = "writeback"
2495 b8576ea1 Jose A. Lopes
2496 b8576ea1 Jose A. Lopes
htCacheWthrough :: String
2497 b8576ea1 Jose A. Lopes
htCacheWthrough = "writethrough"
2498 b8576ea1 Jose A. Lopes
2499 b8576ea1 Jose A. Lopes
htValidCacheTypes :: FrozenSet String
2500 b8576ea1 Jose A. Lopes
htValidCacheTypes =
2501 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htCacheDefault,
2502 b8576ea1 Jose A. Lopes
                       htCacheNone,
2503 b8576ea1 Jose A. Lopes
                       htCacheWback,
2504 b8576ea1 Jose A. Lopes
                       htCacheWthrough]
2505 b8576ea1 Jose A. Lopes
2506 b8576ea1 Jose A. Lopes
-- * Mouse types
2507 b8576ea1 Jose A. Lopes
2508 b8576ea1 Jose A. Lopes
htMouseMouse :: String
2509 b8576ea1 Jose A. Lopes
htMouseMouse = "mouse"
2510 b8576ea1 Jose A. Lopes
2511 b8576ea1 Jose A. Lopes
htMouseTablet :: String
2512 b8576ea1 Jose A. Lopes
htMouseTablet = "tablet"
2513 b8576ea1 Jose A. Lopes
2514 b8576ea1 Jose A. Lopes
htKvmValidMouseTypes :: FrozenSet String
2515 b8576ea1 Jose A. Lopes
htKvmValidMouseTypes = ConstantUtils.mkSet [htMouseMouse, htMouseTablet]
2516 b8576ea1 Jose A. Lopes
2517 b8576ea1 Jose A. Lopes
-- * Boot order
2518 b8576ea1 Jose A. Lopes
2519 b8576ea1 Jose A. Lopes
htBoCdrom :: String
2520 b8576ea1 Jose A. Lopes
htBoCdrom = "cdrom"
2521 b8576ea1 Jose A. Lopes
2522 b8576ea1 Jose A. Lopes
htBoDisk :: String
2523 b8576ea1 Jose A. Lopes
htBoDisk = "disk"
2524 b8576ea1 Jose A. Lopes
2525 b8576ea1 Jose A. Lopes
htBoFloppy :: String
2526 b8576ea1 Jose A. Lopes
htBoFloppy = "floppy"
2527 b8576ea1 Jose A. Lopes
2528 b8576ea1 Jose A. Lopes
htBoNetwork :: String
2529 b8576ea1 Jose A. Lopes
htBoNetwork = "network"
2530 b8576ea1 Jose A. Lopes
2531 b8576ea1 Jose A. Lopes
htKvmValidBoTypes :: FrozenSet String
2532 b8576ea1 Jose A. Lopes
htKvmValidBoTypes =
2533 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htBoCdrom, htBoDisk, htBoFloppy, htBoNetwork]
2534 b8576ea1 Jose A. Lopes
2535 b8576ea1 Jose A. Lopes
-- * SPICE lossless image compression options
2536 b8576ea1 Jose A. Lopes
2537 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprAutoGlz :: String
2538 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprAutoGlz = "auto_glz"
2539 b8576ea1 Jose A. Lopes
2540 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprAutoLz :: String
2541 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprAutoLz = "auto_lz"
2542 b8576ea1 Jose A. Lopes
2543 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprGlz :: String
2544 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprGlz = "glz"
2545 b8576ea1 Jose A. Lopes
2546 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprLz :: String
2547 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprLz = "lz"
2548 b8576ea1 Jose A. Lopes
2549 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprOff :: String
2550 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprOff = "off"
2551 b8576ea1 Jose A. Lopes
2552 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprQuic :: String
2553 b8576ea1 Jose A. Lopes
htKvmSpiceLosslessImgComprQuic = "quic"
2554 b8576ea1 Jose A. Lopes
2555 b8576ea1 Jose A. Lopes
htKvmSpiceValidLosslessImgComprOptions :: FrozenSet String
2556 b8576ea1 Jose A. Lopes
htKvmSpiceValidLosslessImgComprOptions =
2557 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htKvmSpiceLosslessImgComprAutoGlz,
2558 b8576ea1 Jose A. Lopes
                       htKvmSpiceLosslessImgComprAutoLz,
2559 b8576ea1 Jose A. Lopes
                       htKvmSpiceLosslessImgComprGlz,
2560 b8576ea1 Jose A. Lopes
                       htKvmSpiceLosslessImgComprLz,
2561 b8576ea1 Jose A. Lopes
                       htKvmSpiceLosslessImgComprOff,
2562 b8576ea1 Jose A. Lopes
                       htKvmSpiceLosslessImgComprQuic]
2563 b8576ea1 Jose A. Lopes
2564 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprAlways :: String
2565 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprAlways = "always"
2566 b8576ea1 Jose A. Lopes
2567 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprAuto :: String
2568 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprAuto = "auto"
2569 b8576ea1 Jose A. Lopes
2570 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprNever :: String
2571 b8576ea1 Jose A. Lopes
htKvmSpiceLossyImgComprNever = "never"
2572 b8576ea1 Jose A. Lopes
2573 b8576ea1 Jose A. Lopes
htKvmSpiceValidLossyImgComprOptions :: FrozenSet String
2574 b8576ea1 Jose A. Lopes
htKvmSpiceValidLossyImgComprOptions =
2575 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htKvmSpiceLossyImgComprAlways,
2576 b8576ea1 Jose A. Lopes
                       htKvmSpiceLossyImgComprAuto,
2577 b8576ea1 Jose A. Lopes
                       htKvmSpiceLossyImgComprNever]
2578 b8576ea1 Jose A. Lopes
2579 b8576ea1 Jose A. Lopes
-- * SPICE video stream detection
2580 b8576ea1 Jose A. Lopes
2581 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionAll :: String
2582 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionAll = "all"
2583 b8576ea1 Jose A. Lopes
2584 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionFilter :: String
2585 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionFilter = "filter"
2586 b8576ea1 Jose A. Lopes
2587 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionOff :: String
2588 b8576ea1 Jose A. Lopes
htKvmSpiceVideoStreamDetectionOff = "off"
2589 b8576ea1 Jose A. Lopes
2590 b8576ea1 Jose A. Lopes
htKvmSpiceValidVideoStreamDetectionOptions :: FrozenSet String
2591 b8576ea1 Jose A. Lopes
htKvmSpiceValidVideoStreamDetectionOptions =
2592 b8576ea1 Jose A. Lopes
  ConstantUtils.mkSet [htKvmSpiceVideoStreamDetectionAll,
2593 b8576ea1 Jose A. Lopes
                       htKvmSpiceVideoStreamDetectionFilter,
2594 b8576ea1 Jose A. Lopes
                       htKvmSpiceVideoStreamDetectionOff]
2595 b8576ea1 Jose A. Lopes
2596 b8576ea1 Jose A. Lopes
-- * Security models
2597 b8576ea1 Jose A. Lopes
2598 b8576ea1 Jose A. Lopes
htSmNone :: String
2599 b8576ea1 Jose A. Lopes
htSmNone = "none"
2600 b8576ea1 Jose A. Lopes
2601 b8576ea1 Jose A. Lopes
htSmPool :: String
2602 b8576ea1 Jose A. Lopes
htSmPool = "pool"
2603 b8576ea1 Jose A. Lopes
2604 b8576ea1 Jose A. Lopes
htSmUser :: String
2605 b8576ea1 Jose A. Lopes
htSmUser = "user"
2606 b8576ea1 Jose A. Lopes
2607 b8576ea1 Jose A. Lopes
htKvmValidSmTypes :: FrozenSet String
2608 b8576ea1 Jose A. Lopes
htKvmValidSmTypes = ConstantUtils.mkSet [htSmNone, htSmPool, htSmUser]
2609 b8576ea1 Jose A. Lopes
2610 b8576ea1 Jose A. Lopes
-- * Kvm flag values
2611 b8576ea1 Jose A. Lopes
2612 b8576ea1 Jose A. Lopes
htKvmDisabled :: String
2613 b8576ea1 Jose A. Lopes
htKvmDisabled = "disabled"
2614 b8576ea1 Jose A. Lopes
2615 b8576ea1 Jose A. Lopes
htKvmEnabled :: String
2616 b8576ea1 Jose A. Lopes
htKvmEnabled = "enabled"
2617 b8576ea1 Jose A. Lopes
2618 b8576ea1 Jose A. Lopes
htKvmFlagValues :: FrozenSet String
2619 b8576ea1 Jose A. Lopes
htKvmFlagValues = ConstantUtils.mkSet [htKvmDisabled, htKvmEnabled]
2620 b8576ea1 Jose A. Lopes
2621 c890f66a Jose A. Lopes
-- * Migration type
2622 26eca119 Jose A. Lopes
2623 c890f66a Jose A. Lopes
htMigrationLive :: String
2624 c890f66a Jose A. Lopes
htMigrationLive = Types.migrationModeToRaw MigrationLive
2625 26eca119 Jose A. Lopes
2626 c890f66a Jose A. Lopes
htMigrationNonlive :: String
2627 c890f66a Jose A. Lopes
htMigrationNonlive = Types.migrationModeToRaw MigrationNonLive
2628 26eca119 Jose A. Lopes
2629 c890f66a Jose A. Lopes
htMigrationModes :: FrozenSet String
2630 c890f66a Jose A. Lopes
htMigrationModes =
2631 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.migrationModeToRaw [minBound..]
2632 26eca119 Jose A. Lopes
2633 c890f66a Jose A. Lopes
-- * Cluster verify steps
2634 26eca119 Jose A. Lopes
2635 c890f66a Jose A. Lopes
verifyNplusoneMem :: String
2636 c890f66a Jose A. Lopes
verifyNplusoneMem = Types.verifyOptionalChecksToRaw VerifyNPlusOneMem
2637 26eca119 Jose A. Lopes
2638 c890f66a Jose A. Lopes
verifyOptionalChecks :: FrozenSet String
2639 c890f66a Jose A. Lopes
verifyOptionalChecks =
2640 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.verifyOptionalChecksToRaw [minBound..]
2641 26eca119 Jose A. Lopes
2642 c890f66a Jose A. Lopes
-- * Cluster Verify error classes
2643 26eca119 Jose A. Lopes
2644 c890f66a Jose A. Lopes
cvTcluster :: String
2645 c890f66a Jose A. Lopes
cvTcluster = "cluster"
2646 26eca119 Jose A. Lopes
2647 c890f66a Jose A. Lopes
cvTgroup :: String
2648 c890f66a Jose A. Lopes
cvTgroup = "group"
2649 26eca119 Jose A. Lopes
2650 c890f66a Jose A. Lopes
cvTnode :: String
2651 c890f66a Jose A. Lopes
cvTnode = "node"
2652 26eca119 Jose A. Lopes
2653 c890f66a Jose A. Lopes
cvTinstance :: String
2654 c890f66a Jose A. Lopes
cvTinstance = "instance"
2655 26eca119 Jose A. Lopes
2656 c890f66a Jose A. Lopes
-- * Cluster Verify error codes and documentation
2657 26eca119 Jose A. Lopes
2658 c890f66a Jose A. Lopes
cvEclustercert :: (String, String, String)
2659 c890f66a Jose A. Lopes
cvEclustercert =
2660 c890f66a Jose A. Lopes
  ("cluster",
2661 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCERT,
2662 c890f66a Jose A. Lopes
   "Cluster certificate files verification failure")
2663 26eca119 Jose A. Lopes
2664 c890f66a Jose A. Lopes
cvEclustercfg :: (String, String, String)
2665 c890f66a Jose A. Lopes
cvEclustercfg =
2666 c890f66a Jose A. Lopes
  ("cluster",
2667 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCFG,
2668 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
2669 26eca119 Jose A. Lopes
2670 c890f66a Jose A. Lopes
cvEclusterdanglinginst :: (String, String, String)
2671 c890f66a Jose A. Lopes
cvEclusterdanglinginst =
2672 c890f66a Jose A. Lopes
  ("node",
2673 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGINST,
2674 c890f66a Jose A. Lopes
   "Some instances have a non-existing primary node")
2675 26eca119 Jose A. Lopes
2676 c890f66a Jose A. Lopes
cvEclusterdanglingnodes :: (String, String, String)
2677 c890f66a Jose A. Lopes
cvEclusterdanglingnodes =
2678 c890f66a Jose A. Lopes
  ("node",
2679 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGNODES,
2680 c890f66a Jose A. Lopes
   "Some nodes belong to non-existing groups")
2681 f361a6ee Jose A. Lopes
2682 c890f66a Jose A. Lopes
cvEclusterfilecheck :: (String, String, String)
2683 c890f66a Jose A. Lopes
cvEclusterfilecheck =
2684 c890f66a Jose A. Lopes
  ("cluster",
2685 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERFILECHECK,
2686 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
2687 f361a6ee Jose A. Lopes
2688 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize :: (String, String, String)
2689 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize =
2690 c890f66a Jose A. Lopes
  ("group",
2691 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEGROUPDIFFERENTPVSIZE,
2692 c890f66a Jose A. Lopes
   "PVs in the group have different sizes")
2693 f361a6ee Jose A. Lopes
2694 c890f66a Jose A. Lopes
cvEinstancebadnode :: (String, String, String)
2695 c890f66a Jose A. Lopes
cvEinstancebadnode =
2696 c890f66a Jose A. Lopes
  ("instance",
2697 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEBADNODE,
2698 c890f66a Jose A. Lopes
   "Instance marked as running lives on an offline node")
2699 f361a6ee Jose A. Lopes
2700 c890f66a Jose A. Lopes
cvEinstancedown :: (String, String, String)
2701 c890f66a Jose A. Lopes
cvEinstancedown =
2702 c890f66a Jose A. Lopes
  ("instance",
2703 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEDOWN,
2704 c890f66a Jose A. Lopes
   "Instance not running on its primary node")
2705 f361a6ee Jose A. Lopes
2706 c890f66a Jose A. Lopes
cvEinstancefaultydisk :: (String, String, String)
2707 c890f66a Jose A. Lopes
cvEinstancefaultydisk =
2708 c890f66a Jose A. Lopes
  ("instance",
2709 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEFAULTYDISK,
2710 c890f66a Jose A. Lopes
   "Impossible to retrieve status for a disk")
2711 f361a6ee Jose A. Lopes
2712 c890f66a Jose A. Lopes
cvEinstancelayout :: (String, String, String)
2713 c890f66a Jose A. Lopes
cvEinstancelayout =
2714 c890f66a Jose A. Lopes
  ("instance",
2715 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCELAYOUT,
2716 c890f66a Jose A. Lopes
   "Instance has multiple secondary nodes")
2717 f361a6ee Jose A. Lopes
2718 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter :: (String, String, String)
2719 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter =
2720 c890f66a Jose A. Lopes
  ("instance",
2721 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGCFGPARAMETER,
2722 c890f66a Jose A. Lopes
   "A configuration parameter for an instance is missing")
2723 f361a6ee Jose A. Lopes
2724 c890f66a Jose A. Lopes
cvEinstancemissingdisk :: (String, String, String)
2725 c890f66a Jose A. Lopes
cvEinstancemissingdisk =
2726 c890f66a Jose A. Lopes
  ("instance",
2727 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGDISK,
2728 c890f66a Jose A. Lopes
   "Missing volume on an instance")
2729 f361a6ee Jose A. Lopes
2730 c890f66a Jose A. Lopes
cvEinstancepolicy :: (String, String, String)
2731 c890f66a Jose A. Lopes
cvEinstancepolicy =
2732 c890f66a Jose A. Lopes
  ("instance",
2733 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEPOLICY,
2734 c890f66a Jose A. Lopes
   "Instance does not meet policy")
2735 f361a6ee Jose A. Lopes
2736 c890f66a Jose A. Lopes
cvEinstancesplitgroups :: (String, String, String)
2737 c890f66a Jose A. Lopes
cvEinstancesplitgroups =
2738 c890f66a Jose A. Lopes
  ("instance",
2739 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCESPLITGROUPS,
2740 c890f66a Jose A. Lopes
   "Instance with primary and secondary nodes in different groups")
2741 f361a6ee Jose A. Lopes
2742 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode :: (String, String, String)
2743 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode =
2744 c890f66a Jose A. Lopes
  ("instance",
2745 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEUNSUITABLENODE,
2746 c890f66a Jose A. Lopes
   "Instance running on nodes that are not suitable for it")
2747 f361a6ee Jose A. Lopes
2748 c890f66a Jose A. Lopes
cvEinstancewrongnode :: (String, String, String)
2749 c890f66a Jose A. Lopes
cvEinstancewrongnode =
2750 c890f66a Jose A. Lopes
  ("instance",
2751 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEWRONGNODE,
2752 c890f66a Jose A. Lopes
   "Instance running on the wrong node")
2753 6dc0cb59 Jose A. Lopes
2754 c890f66a Jose A. Lopes
cvEnodedrbd :: (String, String, String)
2755 c890f66a Jose A. Lopes
cvEnodedrbd =
2756 c890f66a Jose A. Lopes
  ("node",
2757 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBD,
2758 c890f66a Jose A. Lopes
   "Error parsing the DRBD status file")
2759 6dc0cb59 Jose A. Lopes
2760 c890f66a Jose A. Lopes
cvEnodedrbdhelper :: (String, String, String)
2761 c890f66a Jose A. Lopes
cvEnodedrbdhelper =
2762 c890f66a Jose A. Lopes
  ("node",
2763 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDHELPER,
2764 c890f66a Jose A. Lopes
   "Error caused by the DRBD helper")
2765 6dc0cb59 Jose A. Lopes
2766 c890f66a Jose A. Lopes
cvEnodedrbdversion :: (String, String, String)
2767 c890f66a Jose A. Lopes
cvEnodedrbdversion =
2768 c890f66a Jose A. Lopes
  ("node",
2769 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDVERSION,
2770 c890f66a Jose A. Lopes
   "DRBD version mismatch within a node group")
2771 6dc0cb59 Jose A. Lopes
2772 c890f66a Jose A. Lopes
cvEnodefilecheck :: (String, String, String)
2773 c890f66a Jose A. Lopes
cvEnodefilecheck =
2774 c890f66a Jose A. Lopes
  ("node",
2775 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILECHECK,
2776 c890f66a Jose A. Lopes
   "Error retrieving the checksum of the node files")
2777 6dc0cb59 Jose A. Lopes
2778 c890f66a Jose A. Lopes
cvEnodefilestoragepaths :: (String, String, String)
2779 c890f66a Jose A. Lopes
cvEnodefilestoragepaths =
2780 c890f66a Jose A. Lopes
  ("node",
2781 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHS,
2782 c890f66a Jose A. Lopes
   "Detected bad file storage paths")
2783 856eb53c Jose A. Lopes
2784 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable :: (String, String, String)
2785 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable =
2786 c890f66a Jose A. Lopes
  ("node",
2787 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHUNUSABLE,
2788 c890f66a Jose A. Lopes
   "File storage path unusable")
2789 1c31b263 Jose A. Lopes
2790 c890f66a Jose A. Lopes
cvEnodehooks :: (String, String, String)
2791 c890f66a Jose A. Lopes
cvEnodehooks =
2792 c890f66a Jose A. Lopes
  ("node",
2793 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHOOKS,
2794 c890f66a Jose A. Lopes
   "Communication failure in hooks execution")
2795 1c31b263 Jose A. Lopes
2796 c890f66a Jose A. Lopes
cvEnodehv :: (String, String, String)
2797 c890f66a Jose A. Lopes
cvEnodehv =
2798 c890f66a Jose A. Lopes
  ("node",
2799 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHV,
2800 c890f66a Jose A. Lopes
   "Hypervisor parameters verification failure")
2801 df726590 Jose A. Lopes
2802 c890f66a Jose A. Lopes
cvEnodelvm :: (String, String, String)
2803 c890f66a Jose A. Lopes
cvEnodelvm =
2804 c890f66a Jose A. Lopes
  ("node",
2805 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODELVM,
2806 c890f66a Jose A. Lopes
   "LVM-related node error")
2807 df726590 Jose A. Lopes
2808 c890f66a Jose A. Lopes
cvEnoden1 :: (String, String, String)
2809 c890f66a Jose A. Lopes
cvEnoden1 =
2810 c890f66a Jose A. Lopes
  ("node",
2811 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEN1,
2812 c890f66a Jose A. Lopes
   "Not enough memory to accommodate instance failovers")
2813 df726590 Jose A. Lopes
2814 c890f66a Jose A. Lopes
cvEnodenet :: (String, String, String)
2815 c890f66a Jose A. Lopes
cvEnodenet =
2816 c890f66a Jose A. Lopes
  ("node",
2817 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODENET,
2818 c890f66a Jose A. Lopes
   "Network-related node error")
2819 df726590 Jose A. Lopes
2820 c890f66a Jose A. Lopes
cvEnodeoobpath :: (String, String, String)
2821 c890f66a Jose A. Lopes
cvEnodeoobpath =
2822 c890f66a Jose A. Lopes
  ("node",
2823 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOOBPATH,
2824 c890f66a Jose A. Lopes
   "Invalid Out Of Band path")
2825 df726590 Jose A. Lopes
2826 c890f66a Jose A. Lopes
cvEnodeorphaninstance :: (String, String, String)
2827 c890f66a Jose A. Lopes
cvEnodeorphaninstance =
2828 c890f66a Jose A. Lopes
  ("node",
2829 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANINSTANCE,
2830 c890f66a Jose A. Lopes
   "Unknown intance running on a node")
2831 df726590 Jose A. Lopes
2832 c890f66a Jose A. Lopes
cvEnodeorphanlv :: (String, String, String)
2833 c890f66a Jose A. Lopes
cvEnodeorphanlv =
2834 c890f66a Jose A. Lopes
  ("node",
2835 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANLV,
2836 c890f66a Jose A. Lopes
   "Unknown LVM logical volume")
2837 df726590 Jose A. Lopes
2838 c890f66a Jose A. Lopes
cvEnodeos :: (String, String, String)
2839 c890f66a Jose A. Lopes
cvEnodeos =
2840 c890f66a Jose A. Lopes
  ("node",
2841 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOS,
2842 c890f66a Jose A. Lopes
   "OS-related node error")
2843 7236533e Jose A. Lopes
2844 c890f66a Jose A. Lopes
cvEnoderpc :: (String, String, String)
2845 c890f66a Jose A. Lopes
cvEnoderpc =
2846 c890f66a Jose A. Lopes
  ("node",
2847 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODERPC,
2848 c890f66a Jose A. Lopes
   "Error during connection to the primary node of an instance")
2849 7236533e Jose A. Lopes
2850 c890f66a Jose A. Lopes
cvEnodesetup :: (String, String, String)
2851 c890f66a Jose A. Lopes
cvEnodesetup =
2852 c890f66a Jose A. Lopes
  ("node",
2853 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESETUP,
2854 c890f66a Jose A. Lopes
   "Node setup error")
2855 7236533e Jose A. Lopes
2856 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable :: (String, String, String)
2857 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable =
2858 c890f66a Jose A. Lopes
  ("node",
2859 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESHAREDFILESTORAGEPATHUNUSABLE,
2860 c890f66a Jose A. Lopes
   "Shared file storage path unusable")
2861 7236533e Jose A. Lopes
2862 c890f66a Jose A. Lopes
cvEnodessh :: (String, String, String)
2863 c890f66a Jose A. Lopes
cvEnodessh =
2864 c890f66a Jose A. Lopes
  ("node",
2865 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESSH,
2866 c890f66a Jose A. Lopes
   "SSH-related node error")
2867 7236533e Jose A. Lopes
2868 c890f66a Jose A. Lopes
cvEnodetime :: (String, String, String)
2869 c890f66a Jose A. Lopes
cvEnodetime =
2870 c890f66a Jose A. Lopes
  ("node",
2871 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODETIME,
2872 c890f66a Jose A. Lopes
   "Node returned invalid time")
2873 7236533e Jose A. Lopes
2874 c890f66a Jose A. Lopes
cvEnodeuserscripts :: (String, String, String)
2875 c890f66a Jose A. Lopes
cvEnodeuserscripts =
2876 c890f66a Jose A. Lopes
  ("node",
2877 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEUSERSCRIPTS,
2878 c890f66a Jose A. Lopes
   "User scripts not present or not executable")
2879 7236533e Jose A. Lopes
2880 c890f66a Jose A. Lopes
cvEnodeversion :: (String, String, String)
2881 c890f66a Jose A. Lopes
cvEnodeversion =
2882 c890f66a Jose A. Lopes
  ("node",
2883 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEVERSION,
2884 c890f66a Jose A. Lopes
   "Protocol version mismatch or Ganeti version mismatch")
2885 85c48fbb Jose A. Lopes
2886 c890f66a Jose A. Lopes
cvAllEcodes :: FrozenSet (String, String, String)
2887 c890f66a Jose A. Lopes
cvAllEcodes =
2888 c890f66a Jose A. Lopes
  ConstantUtils.mkSet
2889 c890f66a Jose A. Lopes
  [cvEclustercert,
2890 c890f66a Jose A. Lopes
   cvEclustercfg,
2891 c890f66a Jose A. Lopes
   cvEclusterdanglinginst,
2892 c890f66a Jose A. Lopes
   cvEclusterdanglingnodes,
2893 c890f66a Jose A. Lopes
   cvEclusterfilecheck,
2894 c890f66a Jose A. Lopes
   cvEgroupdifferentpvsize,
2895 c890f66a Jose A. Lopes
   cvEinstancebadnode,
2896 c890f66a Jose A. Lopes
   cvEinstancedown,
2897 c890f66a Jose A. Lopes
   cvEinstancefaultydisk,
2898 c890f66a Jose A. Lopes
   cvEinstancelayout,
2899 c890f66a Jose A. Lopes
   cvEinstancemissingcfgparameter,
2900 c890f66a Jose A. Lopes
   cvEinstancemissingdisk,
2901 c890f66a Jose A. Lopes
   cvEinstancepolicy,
2902 c890f66a Jose A. Lopes
   cvEinstancesplitgroups,
2903 c890f66a Jose A. Lopes
   cvEinstanceunsuitablenode,
2904 c890f66a Jose A. Lopes
   cvEinstancewrongnode,
2905 c890f66a Jose A. Lopes
   cvEnodedrbd,
2906 c890f66a Jose A. Lopes
   cvEnodedrbdhelper,
2907 c890f66a Jose A. Lopes
   cvEnodedrbdversion,
2908 c890f66a Jose A. Lopes
   cvEnodefilecheck,
2909 c890f66a Jose A. Lopes
   cvEnodefilestoragepaths,
2910 c890f66a Jose A. Lopes
   cvEnodefilestoragepathunusable,
2911 c890f66a Jose A. Lopes
   cvEnodehooks,
2912 c890f66a Jose A. Lopes
   cvEnodehv,
2913 c890f66a Jose A. Lopes
   cvEnodelvm,
2914 c890f66a Jose A. Lopes
   cvEnoden1,
2915 c890f66a Jose A. Lopes
   cvEnodenet,
2916 c890f66a Jose A. Lopes
   cvEnodeoobpath,
2917 c890f66a Jose A. Lopes
   cvEnodeorphaninstance,
2918 c890f66a Jose A. Lopes
   cvEnodeorphanlv,
2919 c890f66a Jose A. Lopes
   cvEnodeos,
2920 c890f66a Jose A. Lopes
   cvEnoderpc,
2921 c890f66a Jose A. Lopes
   cvEnodesetup,
2922 c890f66a Jose A. Lopes
   cvEnodesharedfilestoragepathunusable,
2923 c890f66a Jose A. Lopes
   cvEnodessh,
2924 c890f66a Jose A. Lopes
   cvEnodetime,
2925 c890f66a Jose A. Lopes
   cvEnodeuserscripts,
2926 c890f66a Jose A. Lopes
   cvEnodeversion]
2927 85c48fbb Jose A. Lopes
2928 c890f66a Jose A. Lopes
cvAllEcodesStrings :: FrozenSet String
2929 c890f66a Jose A. Lopes
cvAllEcodesStrings =
2930 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.cVErrorCodeToRaw [minBound..]
2931 85c48fbb Jose A. Lopes
2932 75463b9a Jose A. Lopes
-- * Node verify constants
2933 75463b9a Jose A. Lopes
2934 75463b9a Jose A. Lopes
nvBridges :: String
2935 75463b9a Jose A. Lopes
nvBridges = "bridges"
2936 75463b9a Jose A. Lopes
2937 75463b9a Jose A. Lopes
nvDrbdhelper :: String
2938 75463b9a Jose A. Lopes
nvDrbdhelper = "drbd-helper"
2939 75463b9a Jose A. Lopes
2940 75463b9a Jose A. Lopes
nvDrbdversion :: String
2941 75463b9a Jose A. Lopes
nvDrbdversion = "drbd-version"
2942 75463b9a Jose A. Lopes
2943 75463b9a Jose A. Lopes
nvDrbdlist :: String
2944 75463b9a Jose A. Lopes
nvDrbdlist = "drbd-list"
2945 75463b9a Jose A. Lopes
2946 75463b9a Jose A. Lopes
nvExclusivepvs :: String
2947 75463b9a Jose A. Lopes
nvExclusivepvs = "exclusive-pvs"
2948 75463b9a Jose A. Lopes
2949 75463b9a Jose A. Lopes
nvFilelist :: String
2950 75463b9a Jose A. Lopes
nvFilelist = "filelist"
2951 75463b9a Jose A. Lopes
2952 75463b9a Jose A. Lopes
nvAcceptedStoragePaths :: String
2953 75463b9a Jose A. Lopes
nvAcceptedStoragePaths = "allowed-file-storage-paths"
2954 75463b9a Jose A. Lopes
2955 75463b9a Jose A. Lopes
nvFileStoragePath :: String
2956 75463b9a Jose A. Lopes
nvFileStoragePath = "file-storage-path"
2957 75463b9a Jose A. Lopes
2958 75463b9a Jose A. Lopes
nvSharedFileStoragePath :: String
2959 75463b9a Jose A. Lopes
nvSharedFileStoragePath = "shared-file-storage-path"
2960 75463b9a Jose A. Lopes
2961 75463b9a Jose A. Lopes
nvHvinfo :: String
2962 75463b9a Jose A. Lopes
nvHvinfo = "hvinfo"
2963 75463b9a Jose A. Lopes
2964 75463b9a Jose A. Lopes
nvHvparams :: String
2965 75463b9a Jose A. Lopes
nvHvparams = "hvparms"
2966 75463b9a Jose A. Lopes
2967 75463b9a Jose A. Lopes
nvHypervisor :: String
2968 75463b9a Jose A. Lopes
nvHypervisor = "hypervisor"
2969 75463b9a Jose A. Lopes
2970 75463b9a Jose A. Lopes
nvInstancelist :: String
2971 75463b9a Jose A. Lopes
nvInstancelist = "instancelist"
2972 75463b9a Jose A. Lopes
2973 75463b9a Jose A. Lopes
nvLvlist :: String
2974 75463b9a Jose A. Lopes
nvLvlist = "lvlist"
2975 75463b9a Jose A. Lopes
2976 75463b9a Jose A. Lopes
nvMasterip :: String
2977 75463b9a Jose A. Lopes
nvMasterip = "master-ip"
2978 75463b9a Jose A. Lopes
2979 75463b9a Jose A. Lopes
nvNodelist :: String
2980 75463b9a Jose A. Lopes
nvNodelist = "nodelist"
2981 75463b9a Jose A. Lopes
2982 75463b9a Jose A. Lopes
nvNodenettest :: String
2983 75463b9a Jose A. Lopes
nvNodenettest = "node-net-test"
2984 75463b9a Jose A. Lopes
2985 75463b9a Jose A. Lopes
nvNodesetup :: String
2986 75463b9a Jose A. Lopes
nvNodesetup = "nodesetup"
2987 75463b9a Jose A. Lopes
2988 75463b9a Jose A. Lopes
nvOobPaths :: String
2989 75463b9a Jose A. Lopes
nvOobPaths = "oob-paths"
2990 75463b9a Jose A. Lopes
2991 75463b9a Jose A. Lopes
nvOslist :: String
2992 75463b9a Jose A. Lopes
nvOslist = "oslist"
2993 75463b9a Jose A. Lopes
2994 75463b9a Jose A. Lopes
nvPvlist :: String
2995 75463b9a Jose A. Lopes
nvPvlist = "pvlist"
2996 75463b9a Jose A. Lopes
2997 75463b9a Jose A. Lopes
nvTime :: String
2998 75463b9a Jose A. Lopes
nvTime = "time"
2999 75463b9a Jose A. Lopes
3000 75463b9a Jose A. Lopes
nvUserscripts :: String
3001 75463b9a Jose A. Lopes
nvUserscripts = "user-scripts"
3002 75463b9a Jose A. Lopes
3003 75463b9a Jose A. Lopes
nvVersion :: String
3004 75463b9a Jose A. Lopes
nvVersion = "version"
3005 75463b9a Jose A. Lopes
3006 75463b9a Jose A. Lopes
nvVglist :: String
3007 75463b9a Jose A. Lopes
nvVglist = "vglist"
3008 75463b9a Jose A. Lopes
3009 75463b9a Jose A. Lopes
nvVmnodes :: String
3010 75463b9a Jose A. Lopes
nvVmnodes = "vmnodes"
3011 75463b9a Jose A. Lopes
3012 c890f66a Jose A. Lopes
-- * Instance status
3013 85c48fbb Jose A. Lopes
3014 c890f66a Jose A. Lopes
inststAdmindown :: String
3015 c890f66a Jose A. Lopes
inststAdmindown = Types.instanceStatusToRaw StatusDown
3016 85c48fbb Jose A. Lopes
3017 c890f66a Jose A. Lopes
inststAdminoffline :: String
3018 c890f66a Jose A. Lopes
inststAdminoffline = Types.instanceStatusToRaw StatusOffline
3019 85c48fbb Jose A. Lopes
3020 c890f66a Jose A. Lopes
inststErrordown :: String
3021 c890f66a Jose A. Lopes
inststErrordown = Types.instanceStatusToRaw ErrorDown
3022 85c48fbb Jose A. Lopes
3023 c890f66a Jose A. Lopes
inststErrorup :: String
3024 c890f66a Jose A. Lopes
inststErrorup = Types.instanceStatusToRaw ErrorUp
3025 85c48fbb Jose A. Lopes
3026 c890f66a Jose A. Lopes
inststNodedown :: String
3027 c890f66a Jose A. Lopes
inststNodedown = Types.instanceStatusToRaw NodeDown
3028 85c48fbb Jose A. Lopes
3029 c890f66a Jose A. Lopes
inststNodeoffline :: String
3030 c890f66a Jose A. Lopes
inststNodeoffline = Types.instanceStatusToRaw NodeOffline
3031 37248170 Jose A. Lopes
3032 c890f66a Jose A. Lopes
inststRunning :: String
3033 c890f66a Jose A. Lopes
inststRunning = Types.instanceStatusToRaw Running
3034 37248170 Jose A. Lopes
3035 c890f66a Jose A. Lopes
inststWrongnode :: String
3036 c890f66a Jose A. Lopes
inststWrongnode = Types.instanceStatusToRaw WrongNode
3037 37248170 Jose A. Lopes
3038 c890f66a Jose A. Lopes
inststAll :: FrozenSet String
3039 c890f66a Jose A. Lopes
inststAll = ConstantUtils.mkSet $ map Types.instanceStatusToRaw [minBound..]
3040 37248170 Jose A. Lopes
3041 c890f66a Jose A. Lopes
-- * Admin states
3042 37248170 Jose A. Lopes
3043 c890f66a Jose A. Lopes
adminstDown :: String
3044 c890f66a Jose A. Lopes
adminstDown = Types.adminStateToRaw AdminDown
3045 37248170 Jose A. Lopes
3046 c890f66a Jose A. Lopes
adminstOffline :: String
3047 c890f66a Jose A. Lopes
adminstOffline = Types.adminStateToRaw AdminOffline
3048 37248170 Jose A. Lopes
3049 c890f66a Jose A. Lopes
adminstUp :: String
3050 c890f66a Jose A. Lopes
adminstUp = Types.adminStateToRaw AdminUp
3051 37248170 Jose A. Lopes
3052 c890f66a Jose A. Lopes
adminstAll :: FrozenSet String
3053 c890f66a Jose A. Lopes
adminstAll = ConstantUtils.mkSet $ map Types.adminStateToRaw [minBound..]
3054 37248170 Jose A. Lopes
3055 c890f66a Jose A. Lopes
-- * Node roles
3056 85c48fbb Jose A. Lopes
3057 c890f66a Jose A. Lopes
nrDrained :: String
3058 c890f66a Jose A. Lopes
nrDrained = Types.nodeRoleToRaw NRDrained
3059 85c48fbb Jose A. Lopes
3060 c890f66a Jose A. Lopes
nrMaster :: String
3061 c890f66a Jose A. Lopes
nrMaster = Types.nodeRoleToRaw NRMaster
3062 85c48fbb Jose A. Lopes
3063 c890f66a Jose A. Lopes
nrMcandidate :: String
3064 c890f66a Jose A. Lopes
nrMcandidate = Types.nodeRoleToRaw NRCandidate
3065 85c48fbb Jose A. Lopes
3066 c890f66a Jose A. Lopes
nrOffline :: String
3067 c890f66a Jose A. Lopes
nrOffline = Types.nodeRoleToRaw NROffline
3068 85c48fbb Jose A. Lopes
3069 c890f66a Jose A. Lopes
nrRegular :: String
3070 c890f66a Jose A. Lopes
nrRegular = Types.nodeRoleToRaw NRRegular
3071 85c48fbb Jose A. Lopes
3072 c890f66a Jose A. Lopes
nrAll :: FrozenSet String
3073 c890f66a Jose A. Lopes
nrAll = ConstantUtils.mkSet $ map Types.nodeRoleToRaw [minBound..]
3074 85c48fbb Jose A. Lopes
3075 b964f067 Jose A. Lopes
-- * SSL certificate check constants (in days)
3076 b964f067 Jose A. Lopes
3077 b964f067 Jose A. Lopes
sslCertExpirationError :: Int
3078 b964f067 Jose A. Lopes
sslCertExpirationError = 7
3079 b964f067 Jose A. Lopes
3080 b964f067 Jose A. Lopes
sslCertExpirationWarn :: Int
3081 b964f067 Jose A. Lopes
sslCertExpirationWarn = 30
3082 b964f067 Jose A. Lopes
3083 c890f66a Jose A. Lopes
-- * Allocator framework constants
3084 85c48fbb Jose A. Lopes
3085 c890f66a Jose A. Lopes
iallocatorVersion :: Int
3086 c890f66a Jose A. Lopes
iallocatorVersion = 2
3087 85c48fbb Jose A. Lopes
3088 c890f66a Jose A. Lopes
iallocatorDirIn :: String
3089 c890f66a Jose A. Lopes
iallocatorDirIn = Types.iAllocatorTestDirToRaw IAllocatorDirIn
3090 85c48fbb Jose A. Lopes
3091 c890f66a Jose A. Lopes
iallocatorDirOut :: String
3092 c890f66a Jose A. Lopes
iallocatorDirOut = Types.iAllocatorTestDirToRaw IAllocatorDirOut
3093 85c48fbb Jose A. Lopes
3094 c890f66a Jose A. Lopes
validIallocatorDirections :: FrozenSet String
3095 c890f66a Jose A. Lopes
validIallocatorDirections =
3096 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorTestDirToRaw [minBound..]
3097 85c48fbb Jose A. Lopes
3098 c890f66a Jose A. Lopes
iallocatorModeAlloc :: String
3099 c890f66a Jose A. Lopes
iallocatorModeAlloc = Types.iAllocatorModeToRaw IAllocatorAlloc
3100 85c48fbb Jose A. Lopes
3101 c890f66a Jose A. Lopes
iallocatorModeChgGroup :: String
3102 c890f66a Jose A. Lopes
iallocatorModeChgGroup = Types.iAllocatorModeToRaw IAllocatorChangeGroup
3103 85c48fbb Jose A. Lopes
3104 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc :: String
3105 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc = Types.iAllocatorModeToRaw IAllocatorMultiAlloc
3106 85c48fbb Jose A. Lopes
3107 c890f66a Jose A. Lopes
iallocatorModeNodeEvac :: String
3108 c890f66a Jose A. Lopes
iallocatorModeNodeEvac = Types.iAllocatorModeToRaw IAllocatorNodeEvac
3109 5867e439 Jose A. Lopes
3110 c890f66a Jose A. Lopes
iallocatorModeReloc :: String
3111 c890f66a Jose A. Lopes
iallocatorModeReloc = Types.iAllocatorModeToRaw IAllocatorReloc
3112 5867e439 Jose A. Lopes
3113 c890f66a Jose A. Lopes
validIallocatorModes :: FrozenSet String
3114 c890f66a Jose A. Lopes
validIallocatorModes =
3115 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorModeToRaw [minBound..]
3116 5867e439 Jose A. Lopes
3117 c890f66a Jose A. Lopes
iallocatorSearchPath :: [String]
3118 c890f66a Jose A. Lopes
iallocatorSearchPath = AutoConf.iallocatorSearchPath
3119 5867e439 Jose A. Lopes
3120 c890f66a Jose A. Lopes
defaultIallocatorShortcut :: String
3121 c890f66a Jose A. Lopes
defaultIallocatorShortcut = "."
3122 85c48fbb Jose A. Lopes
3123 c890f66a Jose A. Lopes
-- * Node evacuation
3124 85c48fbb Jose A. Lopes
3125 c890f66a Jose A. Lopes
nodeEvacPri :: String
3126 d067f40b Jose A. Lopes
nodeEvacPri = Types.evacModeToRaw ChangePrimary
3127 85c48fbb Jose A. Lopes
3128 c890f66a Jose A. Lopes
nodeEvacSec :: String
3129 d067f40b Jose A. Lopes
nodeEvacSec = Types.evacModeToRaw ChangeSecondary
3130 85c48fbb Jose A. Lopes
3131 c890f66a Jose A. Lopes
nodeEvacAll :: String
3132 d067f40b Jose A. Lopes
nodeEvacAll = Types.evacModeToRaw ChangeAll
3133 85c48fbb Jose A. Lopes
3134 c890f66a Jose A. Lopes
nodeEvacModes :: FrozenSet String
3135 d067f40b Jose A. Lopes
nodeEvacModes = ConstantUtils.mkSet $ map Types.evacModeToRaw [minBound..]
3136 85c48fbb Jose A. Lopes
3137 b964f067 Jose A. Lopes
-- * Job queue
3138 b964f067 Jose A. Lopes
3139 b964f067 Jose A. Lopes
jobQueueVersion :: Int
3140 b964f067 Jose A. Lopes
jobQueueVersion = 1
3141 b964f067 Jose A. Lopes
3142 b964f067 Jose A. Lopes
jobQueueSizeHardLimit :: Int
3143 b964f067 Jose A. Lopes
jobQueueSizeHardLimit = 5000
3144 b964f067 Jose A. Lopes
3145 b964f067 Jose A. Lopes
jobQueueFilesPerms :: Int
3146 b964f067 Jose A. Lopes
jobQueueFilesPerms = 0o640
3147 b964f067 Jose A. Lopes
3148 b964f067 Jose A. Lopes
-- * Unchanged job return
3149 b964f067 Jose A. Lopes
3150 b964f067 Jose A. Lopes
jobNotchanged :: String
3151 b964f067 Jose A. Lopes
jobNotchanged = "nochange"
3152 b964f067 Jose A. Lopes
3153 c890f66a Jose A. Lopes
-- * Job status
3154 85c48fbb Jose A. Lopes
3155 c890f66a Jose A. Lopes
jobStatusQueued :: String
3156 c890f66a Jose A. Lopes
jobStatusQueued = Types.jobStatusToRaw JOB_STATUS_QUEUED
3157 85c48fbb Jose A. Lopes
3158 c890f66a Jose A. Lopes
jobStatusWaiting :: String
3159 c890f66a Jose A. Lopes
jobStatusWaiting = Types.jobStatusToRaw JOB_STATUS_WAITING
3160 85c48fbb Jose A. Lopes
3161 c890f66a Jose A. Lopes
jobStatusCanceling :: String
3162 c890f66a Jose A. Lopes
jobStatusCanceling = Types.jobStatusToRaw JOB_STATUS_CANCELING
3163 85c48fbb Jose A. Lopes
3164 c890f66a Jose A. Lopes
jobStatusRunning :: String
3165 c890f66a Jose A. Lopes
jobStatusRunning = Types.jobStatusToRaw JOB_STATUS_RUNNING
3166 85c48fbb Jose A. Lopes
3167 c890f66a Jose A. Lopes
jobStatusCanceled :: String
3168 c890f66a Jose A. Lopes
jobStatusCanceled = Types.jobStatusToRaw JOB_STATUS_CANCELED
3169 43a9e860 Jose A. Lopes
3170 c890f66a Jose A. Lopes
jobStatusSuccess :: String
3171 c890f66a Jose A. Lopes
jobStatusSuccess = Types.jobStatusToRaw JOB_STATUS_SUCCESS
3172 43a9e860 Jose A. Lopes
3173 c890f66a Jose A. Lopes
jobStatusError :: String
3174 c890f66a Jose A. Lopes
jobStatusError = Types.jobStatusToRaw JOB_STATUS_ERROR
3175 43a9e860 Jose A. Lopes
3176 c890f66a Jose A. Lopes
jobsPending :: FrozenSet String
3177 c890f66a Jose A. Lopes
jobsPending =
3178 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [jobStatusQueued, jobStatusWaiting, jobStatusCanceling]
3179 43a9e860 Jose A. Lopes
3180 c890f66a Jose A. Lopes
jobsFinalized :: FrozenSet String
3181 c890f66a Jose A. Lopes
jobsFinalized =
3182 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.finalizedJobStatusToRaw [minBound..]
3183 43a9e860 Jose A. Lopes
3184 c890f66a Jose A. Lopes
jobStatusAll :: FrozenSet String
3185 c890f66a Jose A. Lopes
jobStatusAll = ConstantUtils.mkSet $ map Types.jobStatusToRaw [minBound..]
3186 43a9e860 Jose A. Lopes
3187 c890f66a Jose A. Lopes
-- * OpCode status
3188 43a9e860 Jose A. Lopes
3189 c890f66a Jose A. Lopes
-- ** Not yet finalized opcodes
3190 43a9e860 Jose A. Lopes
3191 c890f66a Jose A. Lopes
opStatusCanceling :: String
3192 c890f66a Jose A. Lopes
opStatusCanceling = "canceling"
3193 85c48fbb Jose A. Lopes
3194 c890f66a Jose A. Lopes
opStatusQueued :: String
3195 c890f66a Jose A. Lopes
opStatusQueued = "queued"
3196 85c48fbb Jose A. Lopes
3197 c890f66a Jose A. Lopes
opStatusRunning :: String
3198 c890f66a Jose A. Lopes
opStatusRunning = "running"
3199 85c48fbb Jose A. Lopes
3200 c890f66a Jose A. Lopes
opStatusWaiting :: String
3201 c890f66a Jose A. Lopes
opStatusWaiting = "waiting"
3202 85c48fbb Jose A. Lopes
3203 c890f66a Jose A. Lopes
-- ** Finalized opcodes
3204 85c48fbb Jose A. Lopes
3205 c890f66a Jose A. Lopes
opStatusCanceled :: String
3206 c890f66a Jose A. Lopes
opStatusCanceled = "canceled"
3207 85c48fbb Jose A. Lopes
3208 c890f66a Jose A. Lopes
opStatusError :: String
3209 c890f66a Jose A. Lopes
opStatusError = "error"
3210 85c48fbb Jose A. Lopes
3211 c890f66a Jose A. Lopes
opStatusSuccess :: String
3212 c890f66a Jose A. Lopes
opStatusSuccess = "success"
3213 85c48fbb Jose A. Lopes
3214 c890f66a Jose A. Lopes
opsFinalized :: FrozenSet String
3215 c890f66a Jose A. Lopes
opsFinalized =
3216 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [opStatusCanceled, opStatusError, opStatusSuccess]
3217 85c48fbb Jose A. Lopes
3218 c890f66a Jose A. Lopes
-- * OpCode priority
3219 85c48fbb Jose A. Lopes
3220 c890f66a Jose A. Lopes
opPrioLowest :: Int
3221 c890f66a Jose A. Lopes
opPrioLowest = 19
3222 85c48fbb Jose A. Lopes
3223 c890f66a Jose A. Lopes
opPrioHighest :: Int
3224 c890f66a Jose A. Lopes
opPrioHighest = -20
3225 85c48fbb Jose A. Lopes
3226 c890f66a Jose A. Lopes
opPrioLow :: Int
3227 c890f66a Jose A. Lopes
opPrioLow = Types.opSubmitPriorityToRaw OpPrioLow
3228 85c48fbb Jose A. Lopes
3229 c890f66a Jose A. Lopes
opPrioNormal :: Int
3230 c890f66a Jose A. Lopes
opPrioNormal = Types.opSubmitPriorityToRaw OpPrioNormal
3231 85c48fbb Jose A. Lopes
3232 c890f66a Jose A. Lopes
opPrioHigh :: Int
3233 c890f66a Jose A. Lopes
opPrioHigh = Types.opSubmitPriorityToRaw OpPrioHigh
3234 5867e439 Jose A. Lopes
3235 c890f66a Jose A. Lopes
opPrioSubmitValid :: FrozenSet Int
3236 c890f66a Jose A. Lopes
opPrioSubmitValid = ConstantUtils.mkSet [opPrioLow, opPrioNormal, opPrioHigh]
3237 5867e439 Jose A. Lopes
3238 c890f66a Jose A. Lopes
opPrioDefault :: Int
3239 c890f66a Jose A. Lopes
opPrioDefault = opPrioNormal
3240 5867e439 Jose A. Lopes
3241 b964f067 Jose A. Lopes
-- * Lock recalculate mode
3242 b964f067 Jose A. Lopes
3243 b964f067 Jose A. Lopes
locksAppend :: String
3244 b964f067 Jose A. Lopes
locksAppend = "append"
3245 b964f067 Jose A. Lopes
3246 b964f067 Jose A. Lopes
locksReplace :: String
3247 b964f067 Jose A. Lopes
locksReplace = "replace"
3248 b964f067 Jose A. Lopes
3249 b964f067 Jose A. Lopes
-- * Lock timeout
3250 b964f067 Jose A. Lopes
--
3251 b964f067 Jose A. Lopes
-- The lock timeout (sum) before we transition into blocking acquire
3252 b964f067 Jose A. Lopes
-- (this can still be reset by priority change).  Computed as max time
3253 b964f067 Jose A. Lopes
-- (10 hours) before we should actually go into blocking acquire,
3254 b964f067 Jose A. Lopes
-- given that we start from the default priority level.
3255 b964f067 Jose A. Lopes
3256 b964f067 Jose A. Lopes
lockAttemptsMaxwait :: Double
3257 b964f067 Jose A. Lopes
lockAttemptsMaxwait = 15.0
3258 b964f067 Jose A. Lopes
3259 b964f067 Jose A. Lopes
lockAttemptsMinwait :: Double
3260 b964f067 Jose A. Lopes
lockAttemptsMinwait = 1.0
3261 b964f067 Jose A. Lopes
3262 b964f067 Jose A. Lopes
lockAttemptsTimeout :: Int
3263 b964f067 Jose A. Lopes
lockAttemptsTimeout = (10 * 3600) `div` (opPrioDefault - opPrioHighest)
3264 b964f067 Jose A. Lopes
3265 c890f66a Jose A. Lopes
-- * Execution log types
3266 5867e439 Jose A. Lopes
3267 c890f66a Jose A. Lopes
elogMessage :: String
3268 c890f66a Jose A. Lopes
elogMessage = Types.eLogTypeToRaw ELogMessage
3269 5867e439 Jose A. Lopes
3270 c890f66a Jose A. Lopes
elogRemoteImport :: String
3271 c890f66a Jose A. Lopes
elogRemoteImport = Types.eLogTypeToRaw ELogRemoteImport
3272 5867e439 Jose A. Lopes
3273 c890f66a Jose A. Lopes
elogJqueueTest :: String
3274 c890f66a Jose A. Lopes
elogJqueueTest = Types.eLogTypeToRaw ELogJqueueTest
3275 5867e439 Jose A. Lopes
3276 385b2959 Jose A. Lopes
-- * /etc/hosts modification
3277 385b2959 Jose A. Lopes
3278 385b2959 Jose A. Lopes
etcHostsAdd :: String
3279 385b2959 Jose A. Lopes
etcHostsAdd = "add"
3280 385b2959 Jose A. Lopes
3281 385b2959 Jose A. Lopes
etcHostsRemove :: String
3282 385b2959 Jose A. Lopes
etcHostsRemove = "remove"
3283 385b2959 Jose A. Lopes
3284 385b2959 Jose A. Lopes
-- * Job queue test
3285 385b2959 Jose A. Lopes
3286 385b2959 Jose A. Lopes
jqtMsgprefix :: String
3287 385b2959 Jose A. Lopes
jqtMsgprefix = "TESTMSG="
3288 385b2959 Jose A. Lopes
3289 385b2959 Jose A. Lopes
jqtExec :: String
3290 385b2959 Jose A. Lopes
jqtExec = "exec"
3291 385b2959 Jose A. Lopes
3292 385b2959 Jose A. Lopes
jqtExpandnames :: String
3293 385b2959 Jose A. Lopes
jqtExpandnames = "expandnames"
3294 385b2959 Jose A. Lopes
3295 385b2959 Jose A. Lopes
jqtLogmsg :: String
3296 385b2959 Jose A. Lopes
jqtLogmsg = "logmsg"
3297 385b2959 Jose A. Lopes
3298 385b2959 Jose A. Lopes
jqtStartmsg :: String
3299 385b2959 Jose A. Lopes
jqtStartmsg = "startmsg"
3300 385b2959 Jose A. Lopes
3301 385b2959 Jose A. Lopes
jqtAll :: FrozenSet String
3302 385b2959 Jose A. Lopes
jqtAll = ConstantUtils.mkSet [jqtExec, jqtExpandnames, jqtLogmsg, jqtStartmsg]
3303 385b2959 Jose A. Lopes
3304 8799fb9d Jose A. Lopes
-- * Query resources
3305 8799fb9d Jose A. Lopes
3306 8799fb9d Jose A. Lopes
qrCluster :: String
3307 8799fb9d Jose A. Lopes
qrCluster = "cluster"
3308 8799fb9d Jose A. Lopes
3309 8799fb9d Jose A. Lopes
qrExport :: String
3310 8799fb9d Jose A. Lopes
qrExport = "export"
3311 8799fb9d Jose A. Lopes
3312 8799fb9d Jose A. Lopes
qrExtstorage :: String
3313 8799fb9d Jose A. Lopes
qrExtstorage = "extstorage"
3314 8799fb9d Jose A. Lopes
3315 8799fb9d Jose A. Lopes
qrGroup :: String
3316 8799fb9d Jose A. Lopes
qrGroup = "group"
3317 8799fb9d Jose A. Lopes
3318 8799fb9d Jose A. Lopes
qrInstance :: String
3319 8799fb9d Jose A. Lopes
qrInstance = "instance"
3320 8799fb9d Jose A. Lopes
3321 8799fb9d Jose A. Lopes
qrJob :: String
3322 8799fb9d Jose A. Lopes
qrJob = "job"
3323 8799fb9d Jose A. Lopes
3324 8799fb9d Jose A. Lopes
qrLock :: String
3325 8799fb9d Jose A. Lopes
qrLock = "lock"
3326 8799fb9d Jose A. Lopes
3327 8799fb9d Jose A. Lopes
qrNetwork :: String
3328 8799fb9d Jose A. Lopes
qrNetwork = "network"
3329 8799fb9d Jose A. Lopes
3330 8799fb9d Jose A. Lopes
qrNode :: String
3331 8799fb9d Jose A. Lopes
qrNode = "node"
3332 8799fb9d Jose A. Lopes
3333 8799fb9d Jose A. Lopes
qrOs :: String
3334 8799fb9d Jose A. Lopes
qrOs = "os"
3335 8799fb9d Jose A. Lopes
3336 8799fb9d Jose A. Lopes
-- | List of resources which can be queried using 'Ganeti.OpCodes.OpQuery'
3337 8799fb9d Jose A. Lopes
qrViaOp :: FrozenSet String
3338 8799fb9d Jose A. Lopes
qrViaOp =
3339 8799fb9d Jose A. Lopes
  ConstantUtils.mkSet [qrCluster,
3340 8799fb9d Jose A. Lopes
                       qrInstance,
3341 8799fb9d Jose A. Lopes
                       qrNode,
3342 8799fb9d Jose A. Lopes
                       qrGroup,
3343 8799fb9d Jose A. Lopes
                       qrOs,
3344 8799fb9d Jose A. Lopes
                       qrExport,
3345 8799fb9d Jose A. Lopes
                       qrNetwork,
3346 8799fb9d Jose A. Lopes
                       qrExtstorage]
3347 8799fb9d Jose A. Lopes
3348 8799fb9d Jose A. Lopes
-- | List of resources which can be queried using Local UniX Interface
3349 8799fb9d Jose A. Lopes
qrViaLuxi :: FrozenSet String
3350 8799fb9d Jose A. Lopes
qrViaLuxi = ConstantUtils.mkSet [qrLock, qrJob]
3351 8799fb9d Jose A. Lopes
3352 8799fb9d Jose A. Lopes
-- | List of resources which can be queried using RAPI
3353 8799fb9d Jose A. Lopes
qrViaRapi :: FrozenSet String
3354 8799fb9d Jose A. Lopes
qrViaRapi = qrViaLuxi
3355 8799fb9d Jose A. Lopes
3356 8799fb9d Jose A. Lopes
-- * Query field types
3357 8799fb9d Jose A. Lopes
3358 8799fb9d Jose A. Lopes
qftBool :: String
3359 8799fb9d Jose A. Lopes
qftBool = "bool"
3360 8799fb9d Jose A. Lopes
3361 8799fb9d Jose A. Lopes
qftNumber :: String
3362 8799fb9d Jose A. Lopes
qftNumber = "number"
3363 8799fb9d Jose A. Lopes
3364 8799fb9d Jose A. Lopes
qftOther :: String
3365 8799fb9d Jose A. Lopes
qftOther = "other"
3366 8799fb9d Jose A. Lopes
3367 8799fb9d Jose A. Lopes
qftText :: String
3368 8799fb9d Jose A. Lopes
qftText = "text"
3369 8799fb9d Jose A. Lopes
3370 8799fb9d Jose A. Lopes
qftTimestamp :: String
3371 8799fb9d Jose A. Lopes
qftTimestamp = "timestamp"
3372 8799fb9d Jose A. Lopes
3373 8799fb9d Jose A. Lopes
qftUnit :: String
3374 8799fb9d Jose A. Lopes
qftUnit = "unit"
3375 8799fb9d Jose A. Lopes
3376 8799fb9d Jose A. Lopes
qftUnknown :: String
3377 8799fb9d Jose A. Lopes
qftUnknown = "unknown"
3378 8799fb9d Jose A. Lopes
3379 8799fb9d Jose A. Lopes
qftAll :: FrozenSet String
3380 8799fb9d Jose A. Lopes
qftAll =
3381 8799fb9d Jose A. Lopes
  ConstantUtils.mkSet [qftBool,
3382 8799fb9d Jose A. Lopes
                       qftNumber,
3383 8799fb9d Jose A. Lopes
                       qftOther,
3384 8799fb9d Jose A. Lopes
                       qftText,
3385 8799fb9d Jose A. Lopes
                       qftTimestamp,
3386 8799fb9d Jose A. Lopes
                       qftUnit,
3387 8799fb9d Jose A. Lopes
                       qftUnknown]
3388 8799fb9d Jose A. Lopes
3389 8799fb9d Jose A. Lopes
-- * Query result field status
3390 8799fb9d Jose A. Lopes
--
3391 8799fb9d Jose A. Lopes
-- Don't change or reuse values as they're used by clients.
3392 8799fb9d Jose A. Lopes
--
3393 8799fb9d Jose A. Lopes
-- FIXME: link with 'Ganeti.Query.Language.ResultStatus'
3394 8799fb9d Jose A. Lopes
3395 8799fb9d Jose A. Lopes
-- | No data (e.g. RPC error), can be used instead of 'rsOffline'
3396 8799fb9d Jose A. Lopes
rsNodata :: Int
3397 8799fb9d Jose A. Lopes
rsNodata = 2
3398 8799fb9d Jose A. Lopes
3399 8799fb9d Jose A. Lopes
rsNormal :: Int
3400 8799fb9d Jose A. Lopes
rsNormal = 0
3401 8799fb9d Jose A. Lopes
3402 8799fb9d Jose A. Lopes
-- | Resource marked offline
3403 8799fb9d Jose A. Lopes
rsOffline :: Int
3404 8799fb9d Jose A. Lopes
rsOffline = 4
3405 8799fb9d Jose A. Lopes
3406 8799fb9d Jose A. Lopes
-- | Value unavailable/unsupported for item; if this field is
3407 8799fb9d Jose A. Lopes
-- supported but we cannot get the data for the moment, 'rsNodata' or
3408 8799fb9d Jose A. Lopes
-- 'rsOffline' should be used
3409 8799fb9d Jose A. Lopes
rsUnavail :: Int
3410 8799fb9d Jose A. Lopes
rsUnavail = 3
3411 8799fb9d Jose A. Lopes
3412 8799fb9d Jose A. Lopes
rsUnknown :: Int
3413 8799fb9d Jose A. Lopes
rsUnknown = 1
3414 8799fb9d Jose A. Lopes
3415 8799fb9d Jose A. Lopes
rsAll :: FrozenSet Int
3416 8799fb9d Jose A. Lopes
rsAll =
3417 8799fb9d Jose A. Lopes
  ConstantUtils.mkSet [rsNodata,
3418 8799fb9d Jose A. Lopes
                       rsNormal,
3419 8799fb9d Jose A. Lopes
                       rsOffline,
3420 8799fb9d Jose A. Lopes
                       rsUnavail,
3421 8799fb9d Jose A. Lopes
                       rsUnknown]
3422 8799fb9d Jose A. Lopes
3423 8799fb9d Jose A. Lopes
-- | Special field cases and their verbose/terse formatting
3424 8799fb9d Jose A. Lopes
rssDescription :: Map Int (String, String)
3425 8799fb9d Jose A. Lopes
rssDescription =
3426 8799fb9d Jose A. Lopes
  Map.fromList [(rsUnknown, ("(unknown)", "??")),
3427 8799fb9d Jose A. Lopes
                (rsNodata, ("(nodata)", "?")),
3428 8799fb9d Jose A. Lopes
                (rsOffline, ("(offline)", "*")),
3429 8799fb9d Jose A. Lopes
                (rsUnavail, ("(unavail)", "-"))]
3430 8799fb9d Jose A. Lopes
3431 6e6a6f84 Jose A. Lopes
-- * Max dynamic devices
3432 6e6a6f84 Jose A. Lopes
3433 6e6a6f84 Jose A. Lopes
maxDisks :: Int
3434 6e6a6f84 Jose A. Lopes
maxDisks = Types.maxDisks
3435 6e6a6f84 Jose A. Lopes
3436 6e6a6f84 Jose A. Lopes
maxNics :: Int
3437 6e6a6f84 Jose A. Lopes
maxNics = Types.maxNics
3438 6e6a6f84 Jose A. Lopes
3439 d84ddec2 Jose A. Lopes
-- | SSCONF file prefix
3440 d84ddec2 Jose A. Lopes
ssconfFileprefix :: String
3441 d84ddec2 Jose A. Lopes
ssconfFileprefix = "ssconf_"
3442 d84ddec2 Jose A. Lopes
3443 d84ddec2 Jose A. Lopes
-- * SSCONF keys
3444 d84ddec2 Jose A. Lopes
3445 d84ddec2 Jose A. Lopes
ssClusterName :: String
3446 d84ddec2 Jose A. Lopes
ssClusterName = "cluster_name"
3447 d84ddec2 Jose A. Lopes
3448 d84ddec2 Jose A. Lopes
ssClusterTags :: String
3449 d84ddec2 Jose A. Lopes
ssClusterTags = "cluster_tags"
3450 d84ddec2 Jose A. Lopes
3451 d84ddec2 Jose A. Lopes
ssFileStorageDir :: String
3452 d84ddec2 Jose A. Lopes
ssFileStorageDir = "file_storage_dir"
3453 d84ddec2 Jose A. Lopes
3454 d84ddec2 Jose A. Lopes
ssSharedFileStorageDir :: String
3455 d84ddec2 Jose A. Lopes
ssSharedFileStorageDir = "shared_file_storage_dir"
3456 d84ddec2 Jose A. Lopes
3457 d84ddec2 Jose A. Lopes
ssMasterCandidates :: String
3458 d84ddec2 Jose A. Lopes
ssMasterCandidates = "master_candidates"
3459 d84ddec2 Jose A. Lopes
3460 d84ddec2 Jose A. Lopes
ssMasterCandidatesIps :: String
3461 d84ddec2 Jose A. Lopes
ssMasterCandidatesIps = "master_candidates_ips"
3462 d84ddec2 Jose A. Lopes
3463 d84ddec2 Jose A. Lopes
ssMasterIp :: String
3464 d84ddec2 Jose A. Lopes
ssMasterIp = "master_ip"
3465 d84ddec2 Jose A. Lopes
3466 d84ddec2 Jose A. Lopes
ssMasterNetdev :: String
3467 d84ddec2 Jose A. Lopes
ssMasterNetdev = "master_netdev"
3468 d84ddec2 Jose A. Lopes
3469 d84ddec2 Jose A. Lopes
ssMasterNetmask :: String
3470 d84ddec2 Jose A. Lopes
ssMasterNetmask = "master_netmask"
3471 d84ddec2 Jose A. Lopes
3472 d84ddec2 Jose A. Lopes
ssMasterNode :: String
3473 d84ddec2 Jose A. Lopes
ssMasterNode = "master_node"
3474 d84ddec2 Jose A. Lopes
3475 d84ddec2 Jose A. Lopes
ssNodeList :: String
3476 d84ddec2 Jose A. Lopes
ssNodeList = "node_list"
3477 d84ddec2 Jose A. Lopes
3478 d84ddec2 Jose A. Lopes
ssNodePrimaryIps :: String
3479 d84ddec2 Jose A. Lopes
ssNodePrimaryIps = "node_primary_ips"
3480 d84ddec2 Jose A. Lopes
3481 d84ddec2 Jose A. Lopes
ssNodeSecondaryIps :: String
3482 d84ddec2 Jose A. Lopes
ssNodeSecondaryIps = "node_secondary_ips"
3483 d84ddec2 Jose A. Lopes
3484 d84ddec2 Jose A. Lopes
ssOfflineNodes :: String
3485 d84ddec2 Jose A. Lopes
ssOfflineNodes = "offline_nodes"
3486 d84ddec2 Jose A. Lopes
3487 d84ddec2 Jose A. Lopes
ssOnlineNodes :: String
3488 d84ddec2 Jose A. Lopes
ssOnlineNodes = "online_nodes"
3489 d84ddec2 Jose A. Lopes
3490 d84ddec2 Jose A. Lopes
ssPrimaryIpFamily :: String
3491 d84ddec2 Jose A. Lopes
ssPrimaryIpFamily = "primary_ip_family"
3492 d84ddec2 Jose A. Lopes
3493 d84ddec2 Jose A. Lopes
ssInstanceList :: String
3494 d84ddec2 Jose A. Lopes
ssInstanceList = "instance_list"
3495 d84ddec2 Jose A. Lopes
3496 d84ddec2 Jose A. Lopes
ssReleaseVersion :: String
3497 d84ddec2 Jose A. Lopes
ssReleaseVersion = "release_version"
3498 d84ddec2 Jose A. Lopes
3499 d84ddec2 Jose A. Lopes
ssHypervisorList :: String
3500 d84ddec2 Jose A. Lopes
ssHypervisorList = "hypervisor_list"
3501 d84ddec2 Jose A. Lopes
3502 d84ddec2 Jose A. Lopes
ssMaintainNodeHealth :: String
3503 d84ddec2 Jose A. Lopes
ssMaintainNodeHealth = "maintain_node_health"
3504 d84ddec2 Jose A. Lopes
3505 d84ddec2 Jose A. Lopes
ssUidPool :: String
3506 d84ddec2 Jose A. Lopes
ssUidPool = "uid_pool"
3507 d84ddec2 Jose A. Lopes
3508 d84ddec2 Jose A. Lopes
ssNodegroups :: String
3509 d84ddec2 Jose A. Lopes
ssNodegroups = "nodegroups"
3510 d84ddec2 Jose A. Lopes
3511 d84ddec2 Jose A. Lopes
ssNetworks :: String
3512 d84ddec2 Jose A. Lopes
ssNetworks = "networks"
3513 d84ddec2 Jose A. Lopes
3514 d84ddec2 Jose A. Lopes
-- | This is not a complete SSCONF key, but the prefix for the
3515 d84ddec2 Jose A. Lopes
-- hypervisor keys
3516 d84ddec2 Jose A. Lopes
ssHvparamsPref :: String
3517 d84ddec2 Jose A. Lopes
ssHvparamsPref = "hvparams_"
3518 d84ddec2 Jose A. Lopes
3519 d84ddec2 Jose A. Lopes
-- * Hvparams keys
3520 d84ddec2 Jose A. Lopes
3521 d84ddec2 Jose A. Lopes
ssHvparamsXenChroot :: String
3522 d84ddec2 Jose A. Lopes
ssHvparamsXenChroot = ssHvparamsPref ++ htChroot
3523 d84ddec2 Jose A. Lopes
3524 d84ddec2 Jose A. Lopes
ssHvparamsXenFake :: String
3525 d84ddec2 Jose A. Lopes
ssHvparamsXenFake = ssHvparamsPref ++ htFake
3526 d84ddec2 Jose A. Lopes
3527 d84ddec2 Jose A. Lopes
ssHvparamsXenHvm :: String
3528 d84ddec2 Jose A. Lopes
ssHvparamsXenHvm = ssHvparamsPref ++ htXenHvm
3529 d84ddec2 Jose A. Lopes
3530 d84ddec2 Jose A. Lopes
ssHvparamsXenKvm :: String
3531 d84ddec2 Jose A. Lopes
ssHvparamsXenKvm = ssHvparamsPref ++ htKvm
3532 d84ddec2 Jose A. Lopes
3533 d84ddec2 Jose A. Lopes
ssHvparamsXenLxc :: String
3534 d84ddec2 Jose A. Lopes
ssHvparamsXenLxc = ssHvparamsPref ++ htLxc
3535 d84ddec2 Jose A. Lopes
3536 d84ddec2 Jose A. Lopes
ssHvparamsXenPvm :: String
3537 d84ddec2 Jose A. Lopes
ssHvparamsXenPvm = ssHvparamsPref ++ htXenPvm
3538 d84ddec2 Jose A. Lopes
3539 d84ddec2 Jose A. Lopes
validSsHvparamsKeys :: FrozenSet String
3540 d84ddec2 Jose A. Lopes
validSsHvparamsKeys =
3541 d84ddec2 Jose A. Lopes
  ConstantUtils.mkSet [ssHvparamsXenChroot,
3542 d84ddec2 Jose A. Lopes
                       ssHvparamsXenLxc,
3543 d84ddec2 Jose A. Lopes
                       ssHvparamsXenFake,
3544 d84ddec2 Jose A. Lopes
                       ssHvparamsXenHvm,
3545 d84ddec2 Jose A. Lopes
                       ssHvparamsXenKvm,
3546 d84ddec2 Jose A. Lopes
                       ssHvparamsXenPvm]
3547 d84ddec2 Jose A. Lopes
3548 d84ddec2 Jose A. Lopes
ssFilePerms :: Int
3549 d84ddec2 Jose A. Lopes
ssFilePerms = 0o444
3550 d84ddec2 Jose A. Lopes
3551 d99012a6 Jose A. Lopes
-- | Cluster wide default parameters
3552 d99012a6 Jose A. Lopes
defaultEnabledHypervisor :: String
3553 d99012a6 Jose A. Lopes
defaultEnabledHypervisor = htXenPvm
3554 d99012a6 Jose A. Lopes
3555 a49e7e0d Jose A. Lopes
hvcDefaults :: Map Hypervisor (Map String PyValueEx)
3556 a49e7e0d Jose A. Lopes
hvcDefaults =
3557 a49e7e0d Jose A. Lopes
  Map.fromList
3558 a49e7e0d Jose A. Lopes
  [ (XenPvm, Map.fromList
3559 a49e7e0d Jose A. Lopes
             [ (hvUseBootloader,  PyValueEx False)
3560 a49e7e0d Jose A. Lopes
             , (hvBootloaderPath, PyValueEx xenBootloader)
3561 a49e7e0d Jose A. Lopes
             , (hvBootloaderArgs, PyValueEx "")
3562 a49e7e0d Jose A. Lopes
             , (hvKernelPath,     PyValueEx xenKernel)
3563 a49e7e0d Jose A. Lopes
             , (hvInitrdPath,     PyValueEx "")
3564 a49e7e0d Jose A. Lopes
             , (hvRootPath,       PyValueEx "/dev/xvda1")
3565 a49e7e0d Jose A. Lopes
             , (hvKernelArgs,     PyValueEx "ro")
3566 a49e7e0d Jose A. Lopes
             , (hvMigrationPort,  PyValueEx (8002 :: Int))
3567 a49e7e0d Jose A. Lopes
             , (hvMigrationMode,  PyValueEx htMigrationLive)
3568 a49e7e0d Jose A. Lopes
             , (hvBlockdevPrefix, PyValueEx "sd")
3569 a49e7e0d Jose A. Lopes
             , (hvRebootBehavior, PyValueEx instanceRebootAllowed)
3570 a49e7e0d Jose A. Lopes
             , (hvCpuMask,        PyValueEx cpuPinningAll)
3571 a49e7e0d Jose A. Lopes
             , (hvCpuCap,         PyValueEx (0 :: Int))
3572 a49e7e0d Jose A. Lopes
             , (hvCpuWeight,      PyValueEx (256 :: Int))
3573 a49e7e0d Jose A. Lopes
             , (hvVifScript,      PyValueEx "")
3574 a49e7e0d Jose A. Lopes
             , (hvXenCmd,         PyValueEx xenCmdXm)
3575 a49e7e0d Jose A. Lopes
             , (hvXenCpuid,       PyValueEx "")
3576 a49e7e0d Jose A. Lopes
             , (hvSoundhw,        PyValueEx "")
3577 a49e7e0d Jose A. Lopes
             ])
3578 a49e7e0d Jose A. Lopes
  , (XenHvm, Map.fromList
3579 a49e7e0d Jose A. Lopes
             [ (hvBootOrder,      PyValueEx "cd")
3580 a49e7e0d Jose A. Lopes
             , (hvCdromImagePath, PyValueEx "")
3581 a49e7e0d Jose A. Lopes
             , (hvNicType,        PyValueEx htNicRtl8139)
3582 a49e7e0d Jose A. Lopes
             , (hvDiskType,       PyValueEx htDiskParavirtual)
3583 a49e7e0d Jose A. Lopes
             , (hvVncBindAddress, PyValueEx ip4AddressAny)
3584 a49e7e0d Jose A. Lopes
             , (hvAcpi,           PyValueEx True)
3585 a49e7e0d Jose A. Lopes
             , (hvPae,            PyValueEx True)
3586 a49e7e0d Jose A. Lopes
             , (hvKernelPath,     PyValueEx "/usr/lib/xen/boot/hvmloader")
3587 a49e7e0d Jose A. Lopes
             , (hvDeviceModel,    PyValueEx "/usr/lib/xen/bin/qemu-dm")
3588 a49e7e0d Jose A. Lopes
             , (hvMigrationPort,  PyValueEx (8002 :: Int))
3589 a49e7e0d Jose A. Lopes
             , (hvMigrationMode,  PyValueEx htMigrationNonlive)
3590 a49e7e0d Jose A. Lopes
             , (hvUseLocaltime,   PyValueEx False)
3591 a49e7e0d Jose A. Lopes
             , (hvBlockdevPrefix, PyValueEx "hd")
3592 a49e7e0d Jose A. Lopes
             , (hvPassthrough,    PyValueEx "")
3593 a49e7e0d Jose A. Lopes
             , (hvRebootBehavior, PyValueEx instanceRebootAllowed)
3594 a49e7e0d Jose A. Lopes
             , (hvCpuMask,        PyValueEx cpuPinningAll)
3595 a49e7e0d Jose A. Lopes
             , (hvCpuCap,         PyValueEx (0 :: Int))
3596 a49e7e0d Jose A. Lopes
             , (hvCpuWeight,      PyValueEx (256 :: Int))
3597 a49e7e0d Jose A. Lopes
             , (hvVifType,        PyValueEx htHvmVifIoemu)
3598 a49e7e0d Jose A. Lopes
             , (hvVifScript,      PyValueEx "")
3599 a49e7e0d Jose A. Lopes
             , (hvViridian,       PyValueEx False)
3600 a49e7e0d Jose A. Lopes
             , (hvXenCmd,         PyValueEx xenCmdXm)
3601 a49e7e0d Jose A. Lopes
             , (hvXenCpuid,       PyValueEx "")
3602 a49e7e0d Jose A. Lopes
             , (hvSoundhw,        PyValueEx "")
3603 a49e7e0d Jose A. Lopes
             ])
3604 a49e7e0d Jose A. Lopes
  , (Kvm, Map.fromList
3605 a49e7e0d Jose A. Lopes
          [ (hvKvmPath,                         PyValueEx kvmPath)
3606 a49e7e0d Jose A. Lopes
          , (hvKernelPath,                      PyValueEx kvmKernel)
3607 a49e7e0d Jose A. Lopes
          , (hvInitrdPath,                      PyValueEx "")
3608 a49e7e0d Jose A. Lopes
          , (hvKernelArgs,                      PyValueEx "ro")
3609 a49e7e0d Jose A. Lopes
          , (hvRootPath,                        PyValueEx "/dev/vda1")
3610 a49e7e0d Jose A. Lopes
          , (hvAcpi,                            PyValueEx True)
3611 a49e7e0d Jose A. Lopes
          , (hvSerialConsole,                   PyValueEx True)
3612 a49e7e0d Jose A. Lopes
          , (hvSerialSpeed,                     PyValueEx (38400 :: Int))
3613 a49e7e0d Jose A. Lopes
          , (hvVncBindAddress,                  PyValueEx "")
3614 a49e7e0d Jose A. Lopes
          , (hvVncTls,                          PyValueEx False)
3615 a49e7e0d Jose A. Lopes
          , (hvVncX509,                         PyValueEx "")
3616 a49e7e0d Jose A. Lopes
          , (hvVncX509Verify,                   PyValueEx False)
3617 a49e7e0d Jose A. Lopes
          , (hvVncPasswordFile,                 PyValueEx "")
3618 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceBind,                    PyValueEx "")
3619 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceIpVersion,           PyValueEx ifaceNoIpVersionSpecified)
3620 a49e7e0d Jose A. Lopes
          , (hvKvmSpicePasswordFile,            PyValueEx "")
3621 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceLosslessImgCompr,        PyValueEx "")
3622 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceJpegImgCompr,            PyValueEx "")
3623 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceZlibGlzImgCompr,         PyValueEx "")
3624 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceStreamingVideoDetection, PyValueEx "")
3625 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceAudioCompr,              PyValueEx True)
3626 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceUseTls,                  PyValueEx False)
3627 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceTlsCiphers,              PyValueEx opensslCiphers)
3628 a49e7e0d Jose A. Lopes
          , (hvKvmSpiceUseVdagent,              PyValueEx True)
3629 a49e7e0d Jose A. Lopes
          , (hvKvmFloppyImagePath,              PyValueEx "")
3630 a49e7e0d Jose A. Lopes
          , (hvCdromImagePath,                  PyValueEx "")
3631 a49e7e0d Jose A. Lopes
          , (hvKvmCdrom2ImagePath,              PyValueEx "")
3632 a49e7e0d Jose A. Lopes
          , (hvBootOrder,                       PyValueEx htBoDisk)
3633 a49e7e0d Jose A. Lopes
          , (hvNicType,                         PyValueEx htNicParavirtual)
3634 a49e7e0d Jose A. Lopes
          , (hvDiskType,                        PyValueEx htDiskParavirtual)
3635 a49e7e0d Jose A. Lopes
          , (hvKvmCdromDiskType,                PyValueEx "")
3636 a49e7e0d Jose A. Lopes
          , (hvUsbMouse,                        PyValueEx "")
3637 a49e7e0d Jose A. Lopes
          , (hvKeymap,                          PyValueEx "")
3638 a49e7e0d Jose A. Lopes
          , (hvMigrationPort,                   PyValueEx (8102 :: Int))
3639 a49e7e0d Jose A. Lopes
          , (hvMigrationBandwidth,              PyValueEx (32 :: Int))
3640 a49e7e0d Jose A. Lopes
          , (hvMigrationDowntime,               PyValueEx (30 :: Int))
3641 a49e7e0d Jose A. Lopes
          , (hvMigrationMode,                   PyValueEx htMigrationLive)
3642 a49e7e0d Jose A. Lopes
          , (hvUseLocaltime,                    PyValueEx False)
3643 a49e7e0d Jose A. Lopes
          , (hvDiskCache,                       PyValueEx htCacheDefault)
3644 a49e7e0d Jose A. Lopes
          , (hvSecurityModel,                   PyValueEx htSmNone)
3645 a49e7e0d Jose A. Lopes
          , (hvSecurityDomain,                  PyValueEx "")
3646 a49e7e0d Jose A. Lopes
          , (hvKvmFlag,                         PyValueEx "")
3647 a49e7e0d Jose A. Lopes
          , (hvVhostNet,                        PyValueEx False)
3648 a49e7e0d Jose A. Lopes
          , (hvKvmUseChroot,                    PyValueEx False)
3649 a49e7e0d Jose A. Lopes
          , (hvMemPath,                         PyValueEx "")
3650 a49e7e0d Jose A. Lopes
          , (hvRebootBehavior,                  PyValueEx instanceRebootAllowed)
3651 a49e7e0d Jose A. Lopes
          , (hvCpuMask,                         PyValueEx cpuPinningAll)
3652 a49e7e0d Jose A. Lopes
          , (hvCpuType,                         PyValueEx "")
3653 a49e7e0d Jose A. Lopes
          , (hvCpuCores,                        PyValueEx (0 :: Int))
3654 a49e7e0d Jose A. Lopes
          , (hvCpuThreads,                      PyValueEx (0 :: Int))
3655 a49e7e0d Jose A. Lopes
          , (hvCpuSockets,                      PyValueEx (0 :: Int))
3656 a49e7e0d Jose A. Lopes
          , (hvSoundhw,                         PyValueEx "")
3657 a49e7e0d Jose A. Lopes
          , (hvUsbDevices,                      PyValueEx "")
3658 a49e7e0d Jose A. Lopes
          , (hvVga,                             PyValueEx "")
3659 a49e7e0d Jose A. Lopes
          , (hvKvmExtra,                        PyValueEx "")
3660 a49e7e0d Jose A. Lopes
          , (hvKvmMachineVersion,               PyValueEx "")
3661 a49e7e0d Jose A. Lopes
          , (hvVnetHdr,                         PyValueEx True)])
3662 a49e7e0d Jose A. Lopes
  , (Fake, Map.fromList [(hvMigrationMode, PyValueEx htMigrationLive)])
3663 a49e7e0d Jose A. Lopes
  , (Chroot, Map.fromList [(hvInitScript, PyValueEx "/ganeti-chroot")])
3664 a49e7e0d Jose A. Lopes
  , (Lxc, Map.fromList [(hvCpuMask, PyValueEx "")])
3665 a49e7e0d Jose A. Lopes
  ]
3666 a49e7e0d Jose A. Lopes
3667 53a5f21b Jose A. Lopes
hvcGlobals :: FrozenSet String
3668 53a5f21b Jose A. Lopes
hvcGlobals =
3669 53a5f21b Jose A. Lopes
  ConstantUtils.mkSet [hvMigrationBandwidth,
3670 53a5f21b Jose A. Lopes
                       hvMigrationMode,
3671 53a5f21b Jose A. Lopes
                       hvMigrationPort,
3672 53a5f21b Jose A. Lopes
                       hvXenCmd]
3673 53a5f21b Jose A. Lopes
3674 47ea2344 Jose A. Lopes
becDefaults :: Map String PyValueEx
3675 47ea2344 Jose A. Lopes
becDefaults =
3676 47ea2344 Jose A. Lopes
  Map.fromList
3677 47ea2344 Jose A. Lopes
  [ (beMinmem, PyValueEx (128 :: Int))
3678 47ea2344 Jose A. Lopes
  , (beMaxmem, PyValueEx (128 :: Int))
3679 47ea2344 Jose A. Lopes
  , (beVcpus, PyValueEx (1 :: Int))
3680 47ea2344 Jose A. Lopes
  , (beAutoBalance, PyValueEx True)
3681 47ea2344 Jose A. Lopes
  , (beAlwaysFailover, PyValueEx False)
3682 47ea2344 Jose A. Lopes
  , (beSpindleUse, PyValueEx (1 :: Int))
3683 47ea2344 Jose A. Lopes
  ]
3684 47ea2344 Jose A. Lopes
3685 0e7126a1 Jose A. Lopes
ndcDefaults :: Map String PyValueEx
3686 0e7126a1 Jose A. Lopes
ndcDefaults =
3687 0e7126a1 Jose A. Lopes
  Map.fromList
3688 0e7126a1 Jose A. Lopes
  [ (ndOobProgram,       PyValueEx "")
3689 0e7126a1 Jose A. Lopes
  , (ndSpindleCount,     PyValueEx (1 :: Int))
3690 0e7126a1 Jose A. Lopes
  , (ndExclusiveStorage, PyValueEx False)
3691 0e7126a1 Jose A. Lopes
  , (ndOvs,              PyValueEx False)
3692 0e7126a1 Jose A. Lopes
  , (ndOvsName,          PyValueEx defaultOvs)
3693 0e7126a1 Jose A. Lopes
  , (ndOvsLink,          PyValueEx "")
3694 0e7126a1 Jose A. Lopes
  ]
3695 0e7126a1 Jose A. Lopes
3696 53a5f21b Jose A. Lopes
ndcGlobals :: FrozenSet String
3697 53a5f21b Jose A. Lopes
ndcGlobals = ConstantUtils.mkSet [ndExclusiveStorage]
3698 53a5f21b Jose A. Lopes
3699 df2e0fa5 Jose A. Lopes
-- | Default delay target measured in sectors
3700 df2e0fa5 Jose A. Lopes
defaultDelayTarget :: Int
3701 df2e0fa5 Jose A. Lopes
defaultDelayTarget = 1
3702 df2e0fa5 Jose A. Lopes
3703 df2e0fa5 Jose A. Lopes
defaultDiskCustom :: String
3704 df2e0fa5 Jose A. Lopes
defaultDiskCustom = ""
3705 df2e0fa5 Jose A. Lopes
3706 df2e0fa5 Jose A. Lopes
defaultDiskResync :: Bool
3707 df2e0fa5 Jose A. Lopes
defaultDiskResync = False
3708 df2e0fa5 Jose A. Lopes
3709 df2e0fa5 Jose A. Lopes
-- | Default fill target measured in sectors
3710 df2e0fa5 Jose A. Lopes
defaultFillTarget :: Int
3711 df2e0fa5 Jose A. Lopes
defaultFillTarget = 0
3712 df2e0fa5 Jose A. Lopes
3713 df2e0fa5 Jose A. Lopes
-- | Default mininum rate measured in KiB/s
3714 df2e0fa5 Jose A. Lopes
defaultMinRate :: Int
3715 df2e0fa5 Jose A. Lopes
defaultMinRate = 4 * 1024
3716 df2e0fa5 Jose A. Lopes
3717 df2e0fa5 Jose A. Lopes
defaultNetCustom :: String
3718 df2e0fa5 Jose A. Lopes
defaultNetCustom = ""
3719 df2e0fa5 Jose A. Lopes
3720 df2e0fa5 Jose A. Lopes
-- | Default plan ahead measured in sectors
3721 df2e0fa5 Jose A. Lopes
--
3722 df2e0fa5 Jose A. Lopes
-- The default values for the DRBD dynamic resync speed algorithm are
3723 df2e0fa5 Jose A. Lopes
-- taken from the drbsetup 8.3.11 man page, except for c-plan-ahead
3724 df2e0fa5 Jose A. Lopes
-- (that we don't need to set to 0, because we have a separate option
3725 df2e0fa5 Jose A. Lopes
-- to enable it) and for c-max-rate, that we cap to the default value
3726 df2e0fa5 Jose A. Lopes
-- for the static resync rate.
3727 df2e0fa5 Jose A. Lopes
defaultPlanAhead :: Int
3728 df2e0fa5 Jose A. Lopes
defaultPlanAhead = 20
3729 df2e0fa5 Jose A. Lopes
3730 df2e0fa5 Jose A. Lopes
defaultRbdPool :: String
3731 df2e0fa5 Jose A. Lopes
defaultRbdPool = "rbd"
3732 df2e0fa5 Jose A. Lopes
3733 93e2e44e Jose A. Lopes
diskLdDefaults :: Map DiskTemplate (Map String PyValueEx)
3734 93e2e44e Jose A. Lopes
diskLdDefaults =
3735 93e2e44e Jose A. Lopes
  Map.fromList
3736 df2e0fa5 Jose A. Lopes
  [ (DTBlock, Map.empty)
3737 df2e0fa5 Jose A. Lopes
  , (DTDrbd8, Map.fromList
3738 df2e0fa5 Jose A. Lopes
              [ (ldpBarriers,      PyValueEx drbdBarriers)
3739 93e2e44e Jose A. Lopes
              , (ldpDefaultMetavg, PyValueEx defaultVg)
3740 df2e0fa5 Jose A. Lopes
              , (ldpDelayTarget,   PyValueEx defaultDelayTarget)
3741 df2e0fa5 Jose A. Lopes
              , (ldpDiskCustom,    PyValueEx defaultDiskCustom)
3742 df2e0fa5 Jose A. Lopes
              , (ldpDynamicResync, PyValueEx defaultDiskResync)
3743 df2e0fa5 Jose A. Lopes
              , (ldpFillTarget,    PyValueEx defaultFillTarget)
3744 df2e0fa5 Jose A. Lopes
              , (ldpMaxRate,       PyValueEx classicDrbdSyncSpeed)
3745 df2e0fa5 Jose A. Lopes
              , (ldpMinRate,       PyValueEx defaultMinRate)
3746 df2e0fa5 Jose A. Lopes
              , (ldpNetCustom,     PyValueEx defaultNetCustom)
3747 df2e0fa5 Jose A. Lopes
              , (ldpNoMetaFlush,   PyValueEx drbdNoMetaFlush)
3748 df2e0fa5 Jose A. Lopes
              , (ldpPlanAhead,     PyValueEx defaultPlanAhead)
3749 df2e0fa5 Jose A. Lopes
              , (ldpProtocol,      PyValueEx drbdDefaultNetProtocol)
3750 df2e0fa5 Jose A. Lopes
              , (ldpResyncRate,    PyValueEx classicDrbdSyncSpeed)
3751 93e2e44e Jose A. Lopes
              ])
3752 df2e0fa5 Jose A. Lopes
  , (DTExt, Map.empty)
3753 93e2e44e Jose A. Lopes
  , (DTFile, Map.empty)
3754 df2e0fa5 Jose A. Lopes
  , (DTPlain, Map.fromList [(ldpStripes, PyValueEx lvmStripecount)])
3755 93e2e44e Jose A. Lopes
  , (DTRbd, Map.fromList
3756 df2e0fa5 Jose A. Lopes
            [ (ldpPool, PyValueEx defaultRbdPool)
3757 93e2e44e Jose A. Lopes
            , (ldpAccess, PyValueEx diskKernelspace)
3758 93e2e44e Jose A. Lopes
            ])
3759 df2e0fa5 Jose A. Lopes
  , (DTSharedFile, Map.empty)
3760 df2e0fa5 Jose A. Lopes
  ]
3761 df2e0fa5 Jose A. Lopes
3762 df2e0fa5 Jose A. Lopes
diskDtDefaults :: Map DiskTemplate (Map String PyValueEx)
3763 df2e0fa5 Jose A. Lopes
diskDtDefaults =
3764 df2e0fa5 Jose A. Lopes
  Map.fromList
3765 df2e0fa5 Jose A. Lopes
  [ (DTBlock,      Map.empty)
3766 df2e0fa5 Jose A. Lopes
  , (DTDiskless,   Map.empty)
3767 df2e0fa5 Jose A. Lopes
  , (DTDrbd8,      Map.fromList
3768 df2e0fa5 Jose A. Lopes
                   [ (drbdDataStripes,   PyValueEx lvmStripecount)
3769 df2e0fa5 Jose A. Lopes
                   , (drbdDefaultMetavg, PyValueEx defaultVg)
3770 df2e0fa5 Jose A. Lopes
                   , (drbdDelayTarget,   PyValueEx defaultDelayTarget)
3771 df2e0fa5 Jose A. Lopes
                   , (drbdDiskBarriers,  PyValueEx drbdBarriers)
3772 df2e0fa5 Jose A. Lopes
                   , (drbdDiskCustom,    PyValueEx defaultDiskCustom)
3773 df2e0fa5 Jose A. Lopes
                   , (drbdDynamicResync, PyValueEx defaultDiskResync)
3774 df2e0fa5 Jose A. Lopes
                   , (drbdFillTarget,    PyValueEx defaultFillTarget)
3775 df2e0fa5 Jose A. Lopes
                   , (drbdMaxRate,       PyValueEx classicDrbdSyncSpeed)
3776 df2e0fa5 Jose A. Lopes
                   , (drbdMetaBarriers,  PyValueEx drbdNoMetaFlush)
3777 df2e0fa5 Jose A. Lopes
                   , (drbdMetaStripes,   PyValueEx lvmStripecount)
3778 df2e0fa5 Jose A. Lopes
                   , (drbdMinRate,       PyValueEx defaultMinRate)
3779 df2e0fa5 Jose A. Lopes
                   , (drbdNetCustom,     PyValueEx defaultNetCustom)
3780 df2e0fa5 Jose A. Lopes
                   , (drbdPlanAhead,     PyValueEx defaultPlanAhead)
3781 df2e0fa5 Jose A. Lopes
                   , (drbdProtocol,      PyValueEx drbdDefaultNetProtocol)
3782 df2e0fa5 Jose A. Lopes
                   , (drbdResyncRate,    PyValueEx classicDrbdSyncSpeed)
3783 df2e0fa5 Jose A. Lopes
                   ])
3784 df2e0fa5 Jose A. Lopes
  , (DTExt,        Map.empty)
3785 df2e0fa5 Jose A. Lopes
  , (DTFile,       Map.empty)
3786 df2e0fa5 Jose A. Lopes
  , (DTPlain,      Map.fromList [(lvStripes, PyValueEx lvmStripecount)])
3787 df2e0fa5 Jose A. Lopes
  , (DTRbd,        Map.fromList
3788 df2e0fa5 Jose A. Lopes
                   [ (rbdPool, PyValueEx defaultRbdPool)
3789 df2e0fa5 Jose A. Lopes
                   , (rbdAccess, PyValueEx diskKernelspace)
3790 df2e0fa5 Jose A. Lopes
                   ])
3791 df2e0fa5 Jose A. Lopes
  , (DTSharedFile, Map.empty)
3792 93e2e44e Jose A. Lopes
  ]
3793 93e2e44e Jose A. Lopes
3794 a2b55ccd Jose A. Lopes
niccDefaults :: Map String PyValueEx
3795 a2b55ccd Jose A. Lopes
niccDefaults =
3796 a2b55ccd Jose A. Lopes
  Map.fromList
3797 a2b55ccd Jose A. Lopes
  [ (nicMode, PyValueEx nicModeBridged)
3798 a2b55ccd Jose A. Lopes
  , (nicLink, PyValueEx defaultBridge)
3799 a2b55ccd Jose A. Lopes
  , (nicVlan, PyValueEx valueHsNothing)
3800 a2b55ccd Jose A. Lopes
  ]
3801 a2b55ccd Jose A. Lopes
3802 54e8f65d Jose A. Lopes
-- | All of the following values are quite arbitrary - there are no
3803 54e8f65d Jose A. Lopes
-- "good" defaults, these must be customised per-site
3804 54e8f65d Jose A. Lopes
ispecsMinmaxDefaults :: Map String (Map String Int)
3805 54e8f65d Jose A. Lopes
ispecsMinmaxDefaults =
3806 54e8f65d Jose A. Lopes
  Map.fromList
3807 54e8f65d Jose A. Lopes
  [(ispecsMin,
3808 54e8f65d Jose A. Lopes
    Map.fromList
3809 54e8f65d Jose A. Lopes
    [(ConstantUtils.ispecMemSize, Types.iSpecMemorySize Types.defMinISpec),
3810 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecCpuCount, Types.iSpecCpuCount Types.defMinISpec),
3811 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecDiskCount, Types.iSpecDiskCount Types.defMinISpec),
3812 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecDiskSize, Types.iSpecDiskSize Types.defMinISpec),
3813 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecNicCount, Types.iSpecNicCount Types.defMinISpec),
3814 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecSpindleUse, Types.iSpecSpindleUse Types.defMinISpec)]),
3815 54e8f65d Jose A. Lopes
   (ispecsMax,
3816 54e8f65d Jose A. Lopes
    Map.fromList
3817 54e8f65d Jose A. Lopes
    [(ConstantUtils.ispecMemSize, Types.iSpecMemorySize Types.defMaxISpec),
3818 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecCpuCount, Types.iSpecCpuCount Types.defMaxISpec),
3819 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecDiskCount, Types.iSpecDiskCount Types.defMaxISpec),
3820 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecDiskSize, Types.iSpecDiskSize Types.defMaxISpec),
3821 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecNicCount, Types.iSpecNicCount Types.defMaxISpec),
3822 54e8f65d Jose A. Lopes
     (ConstantUtils.ispecSpindleUse, Types.iSpecSpindleUse Types.defMaxISpec)])]
3823 54e8f65d Jose A. Lopes
3824 07e30af5 Jose A. Lopes
ipolicyDefaults :: Map String PyValueEx
3825 07e30af5 Jose A. Lopes
ipolicyDefaults =
3826 07e30af5 Jose A. Lopes
  Map.fromList
3827 07e30af5 Jose A. Lopes
  [ (ispecsMinmax,        PyValueEx [ispecsMinmaxDefaults])
3828 07e30af5 Jose A. Lopes
  , (ispecsStd,           PyValueEx (Map.fromList
3829 07e30af5 Jose A. Lopes
                                     [ (ispecMemSize,    128)
3830 07e30af5 Jose A. Lopes
                                     , (ispecCpuCount,   1)
3831 07e30af5 Jose A. Lopes
                                     , (ispecDiskCount,  1)
3832 07e30af5 Jose A. Lopes
                                     , (ispecDiskSize,   1024)
3833 07e30af5 Jose A. Lopes
                                     , (ispecNicCount,   1)
3834 07e30af5 Jose A. Lopes
                                     , (ispecSpindleUse, 1)
3835 07e30af5 Jose A. Lopes
                                     ] :: Map String Int))
3836 07e30af5 Jose A. Lopes
  , (ipolicyDts,          PyValueEx (ConstantUtils.toList diskTemplates))
3837 07e30af5 Jose A. Lopes
  , (ipolicyVcpuRatio,    PyValueEx (4.0 :: Double))
3838 07e30af5 Jose A. Lopes
  , (ipolicySpindleRatio, PyValueEx (32.0 :: Double))
3839 07e30af5 Jose A. Lopes
  ]
3840 07e30af5 Jose A. Lopes
3841 d22b306d Jose A. Lopes
masterPoolSizeDefault :: Int
3842 d22b306d Jose A. Lopes
masterPoolSizeDefault = 10
3843 d22b306d Jose A. Lopes
3844 d22b306d Jose A. Lopes
-- * Exclusive storage
3845 d22b306d Jose A. Lopes
3846 d22b306d Jose A. Lopes
-- | Error margin used to compare physical disks
3847 d22b306d Jose A. Lopes
partMargin :: Double
3848 d22b306d Jose A. Lopes
partMargin = 0.01
3849 d22b306d Jose A. Lopes
3850 d22b306d Jose A. Lopes
-- | Space reserved when creating instance disks
3851 d22b306d Jose A. Lopes
partReserved :: Double
3852 d22b306d Jose A. Lopes
partReserved = 0.02
3853 d22b306d Jose A. Lopes
3854 cdac0552 Jose A. Lopes
-- * Confd
3855 cdac0552 Jose A. Lopes
3856 cdac0552 Jose A. Lopes
confdProtocolVersion :: Int
3857 cdac0552 Jose A. Lopes
confdProtocolVersion = ConstantUtils.confdProtocolVersion
3858 cdac0552 Jose A. Lopes
3859 cdac0552 Jose A. Lopes
-- Confd request type
3860 cdac0552 Jose A. Lopes
3861 cdac0552 Jose A. Lopes
confdReqPing :: Int
3862 cdac0552 Jose A. Lopes
confdReqPing = Types.confdRequestTypeToRaw ReqPing
3863 cdac0552 Jose A. Lopes
3864 cdac0552 Jose A. Lopes
confdReqNodeRoleByname :: Int
3865 cdac0552 Jose A. Lopes
confdReqNodeRoleByname = Types.confdRequestTypeToRaw ReqNodeRoleByName
3866 cdac0552 Jose A. Lopes
3867 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp :: Int
3868 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp = Types.confdRequestTypeToRaw ReqNodePipByInstPip
3869 cdac0552 Jose A. Lopes
3870 cdac0552 Jose A. Lopes
confdReqClusterMaster :: Int
3871 cdac0552 Jose A. Lopes
confdReqClusterMaster = Types.confdRequestTypeToRaw ReqClusterMaster
3872 cdac0552 Jose A. Lopes
3873 cdac0552 Jose A. Lopes
confdReqNodePipList :: Int
3874 cdac0552 Jose A. Lopes
confdReqNodePipList = Types.confdRequestTypeToRaw ReqNodePipList
3875 cdac0552 Jose A. Lopes
3876 cdac0552 Jose A. Lopes
confdReqMcPipList :: Int
3877 cdac0552 Jose A. Lopes
confdReqMcPipList = Types.confdRequestTypeToRaw ReqMcPipList
3878 cdac0552 Jose A. Lopes
3879 cdac0552 Jose A. Lopes
confdReqInstancesIpsList :: Int
3880 cdac0552 Jose A. Lopes
confdReqInstancesIpsList = Types.confdRequestTypeToRaw ReqInstIpsList
3881 cdac0552 Jose A. Lopes
3882 cdac0552 Jose A. Lopes
confdReqNodeDrbd :: Int
3883 cdac0552 Jose A. Lopes
confdReqNodeDrbd = Types.confdRequestTypeToRaw ReqNodeDrbd
3884 cdac0552 Jose A. Lopes
3885 cdac0552 Jose A. Lopes
confdReqNodeInstances :: Int
3886 cdac0552 Jose A. Lopes
confdReqNodeInstances = Types.confdRequestTypeToRaw ReqNodeInstances
3887 cdac0552 Jose A. Lopes
3888 cdac0552 Jose A. Lopes
confdReqs :: FrozenSet Int
3889 cdac0552 Jose A. Lopes
confdReqs =
3890 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet .
3891 cdac0552 Jose A. Lopes
  map Types.confdRequestTypeToRaw $
3892 cdac0552 Jose A. Lopes
  [minBound..] \\ [ReqNodeInstances]
3893 cdac0552 Jose A. Lopes
3894 cdac0552 Jose A. Lopes
-- * Confd request type
3895 cdac0552 Jose A. Lopes
3896 cdac0552 Jose A. Lopes
confdReqfieldName :: Int
3897 cdac0552 Jose A. Lopes
confdReqfieldName = Types.confdReqFieldToRaw ReqFieldName
3898 cdac0552 Jose A. Lopes
3899 cdac0552 Jose A. Lopes
confdReqfieldIp :: Int
3900 cdac0552 Jose A. Lopes
confdReqfieldIp = Types.confdReqFieldToRaw ReqFieldIp
3901 cdac0552 Jose A. Lopes
3902 cdac0552 Jose A. Lopes
confdReqfieldMnodePip :: Int
3903 cdac0552 Jose A. Lopes
confdReqfieldMnodePip = Types.confdReqFieldToRaw ReqFieldMNodePip
3904 cdac0552 Jose A. Lopes
3905 cdac0552 Jose A. Lopes
-- * Confd repl status
3906 cdac0552 Jose A. Lopes
3907 cdac0552 Jose A. Lopes
confdReplStatusOk :: Int
3908 cdac0552 Jose A. Lopes
confdReplStatusOk = Types.confdReplyStatusToRaw ReplyStatusOk
3909 cdac0552 Jose A. Lopes
3910 cdac0552 Jose A. Lopes
confdReplStatusError :: Int
3911 cdac0552 Jose A. Lopes
confdReplStatusError = Types.confdReplyStatusToRaw ReplyStatusError
3912 cdac0552 Jose A. Lopes
3913 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented :: Int
3914 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented = Types.confdReplyStatusToRaw ReplyStatusNotImpl
3915 cdac0552 Jose A. Lopes
3916 cdac0552 Jose A. Lopes
confdReplStatuses :: FrozenSet Int
3917 cdac0552 Jose A. Lopes
confdReplStatuses =
3918 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.confdReplyStatusToRaw [minBound..]
3919 cdac0552 Jose A. Lopes
3920 cdac0552 Jose A. Lopes
-- * Confd node role
3921 cdac0552 Jose A. Lopes
3922 cdac0552 Jose A. Lopes
confdNodeRoleMaster :: Int
3923 cdac0552 Jose A. Lopes
confdNodeRoleMaster = Types.confdNodeRoleToRaw NodeRoleMaster
3924 cdac0552 Jose A. Lopes
3925 cdac0552 Jose A. Lopes
confdNodeRoleCandidate :: Int
3926 cdac0552 Jose A. Lopes
confdNodeRoleCandidate = Types.confdNodeRoleToRaw NodeRoleCandidate
3927 cdac0552 Jose A. Lopes
3928 cdac0552 Jose A. Lopes
confdNodeRoleOffline :: Int
3929 cdac0552 Jose A. Lopes
confdNodeRoleOffline = Types.confdNodeRoleToRaw NodeRoleOffline
3930 cdac0552 Jose A. Lopes
3931 cdac0552 Jose A. Lopes
confdNodeRoleDrained :: Int
3932 cdac0552 Jose A. Lopes
confdNodeRoleDrained = Types.confdNodeRoleToRaw NodeRoleDrained
3933 cdac0552 Jose A. Lopes
3934 cdac0552 Jose A. Lopes
confdNodeRoleRegular :: Int
3935 cdac0552 Jose A. Lopes
confdNodeRoleRegular = Types.confdNodeRoleToRaw NodeRoleRegular
3936 cdac0552 Jose A. Lopes
3937 61e32567 Jose A. Lopes
-- * A few common errors for confd
3938 61e32567 Jose A. Lopes
3939 cdac0552 Jose A. Lopes
confdErrorUnknownEntry :: Int
3940 cdac0552 Jose A. Lopes
confdErrorUnknownEntry = Types.confdErrorTypeToRaw ConfdErrorUnknownEntry
3941 61e32567 Jose A. Lopes
3942 61e32567 Jose A. Lopes
confdErrorInternal :: Int
3943 cdac0552 Jose A. Lopes
confdErrorInternal = Types.confdErrorTypeToRaw ConfdErrorInternal
3944 61e32567 Jose A. Lopes
3945 cdac0552 Jose A. Lopes
confdErrorArgument :: Int
3946 cdac0552 Jose A. Lopes
confdErrorArgument = Types.confdErrorTypeToRaw ConfdErrorArgument
3947 61e32567 Jose A. Lopes
3948 cdac0552 Jose A. Lopes
-- * Confd request query fields
3949 dd95d461 Jose A. Lopes
3950 dd95d461 Jose A. Lopes
confdReqqLink :: String
3951 dd95d461 Jose A. Lopes
confdReqqLink = ConstantUtils.confdReqqLink
3952 dd95d461 Jose A. Lopes
3953 dd95d461 Jose A. Lopes
confdReqqIp :: String
3954 dd95d461 Jose A. Lopes
confdReqqIp = ConstantUtils.confdReqqIp
3955 dd95d461 Jose A. Lopes
3956 dd95d461 Jose A. Lopes
confdReqqIplist :: String
3957 dd95d461 Jose A. Lopes
confdReqqIplist = ConstantUtils.confdReqqIplist
3958 dd95d461 Jose A. Lopes
3959 dd95d461 Jose A. Lopes
confdReqqFields :: String
3960 dd95d461 Jose A. Lopes
confdReqqFields = ConstantUtils.confdReqqFields
3961 dd95d461 Jose A. Lopes
3962 61e32567 Jose A. Lopes
-- | Each request is "salted" by the current timestamp.
3963 61e32567 Jose A. Lopes
--
3964 61e32567 Jose A. Lopes
-- This constant decides how many seconds of skew to accept.
3965 61e32567 Jose A. Lopes
--
3966 61e32567 Jose A. Lopes
-- TODO: make this a default and allow the value to be more
3967 61e32567 Jose A. Lopes
-- configurable
3968 61e32567 Jose A. Lopes
confdMaxClockSkew :: Int
3969 61e32567 Jose A. Lopes
confdMaxClockSkew = 2 * nodeMaxClockSkew
3970 61e32567 Jose A. Lopes
3971 61e32567 Jose A. Lopes
-- | When we haven't reloaded the config for more than this amount of
3972 61e32567 Jose A. Lopes
-- seconds, we force a test to see if inotify is betraying us. Using a
3973 61e32567 Jose A. Lopes
-- prime number to ensure we get less chance of 'same wakeup' with
3974 61e32567 Jose A. Lopes
-- other processes.
3975 61e32567 Jose A. Lopes
confdConfigReloadTimeout :: Int
3976 61e32567 Jose A. Lopes
confdConfigReloadTimeout = 17
3977 61e32567 Jose A. Lopes
3978 61e32567 Jose A. Lopes
-- | If we receive more than one update in this amount of
3979 61e32567 Jose A. Lopes
-- microseconds, we move to polling every RATELIMIT seconds, rather
3980 61e32567 Jose A. Lopes
-- than relying on inotify, to be able to serve more requests.
3981 61e32567 Jose A. Lopes
confdConfigReloadRatelimit :: Int
3982 61e32567 Jose A. Lopes
confdConfigReloadRatelimit = 250000
3983 61e32567 Jose A. Lopes
3984 61e32567 Jose A. Lopes
-- | Magic number prepended to all confd queries.
3985 61e32567 Jose A. Lopes
--
3986 61e32567 Jose A. Lopes
-- This allows us to distinguish different types of confd protocols
3987 61e32567 Jose A. Lopes
-- and handle them. For example by changing this we can move the whole
3988 61e32567 Jose A. Lopes
-- payload to be compressed, or move away from json.
3989 61e32567 Jose A. Lopes
confdMagicFourcc :: String
3990 61e32567 Jose A. Lopes
confdMagicFourcc = "plj0"
3991 61e32567 Jose A. Lopes
3992 61e32567 Jose A. Lopes
-- | By default a confd request is sent to the minimum between this
3993 61e32567 Jose A. Lopes
-- number and all MCs. 6 was chosen because even in the case of a
3994 61e32567 Jose A. Lopes
-- disastrous 50% response rate, we should have enough answers to be
3995 61e32567 Jose A. Lopes
-- able to compare more than one.
3996 61e32567 Jose A. Lopes
confdDefaultReqCoverage :: Int
3997 61e32567 Jose A. Lopes
confdDefaultReqCoverage = 6
3998 61e32567 Jose A. Lopes
3999 61e32567 Jose A. Lopes
-- | Timeout in seconds to expire pending query request in the confd
4000 61e32567 Jose A. Lopes
-- client library. We don't actually expect any answer more than 10
4001 61e32567 Jose A. Lopes
-- seconds after we sent a request.
4002 61e32567 Jose A. Lopes
confdClientExpireTimeout :: Int
4003 61e32567 Jose A. Lopes
confdClientExpireTimeout = 10
4004 61e32567 Jose A. Lopes
4005 2f314077 Jose A. Lopes
-- | Maximum UDP datagram size.
4006 2f314077 Jose A. Lopes
--
4007 2f314077 Jose A. Lopes
-- On IPv4: 64K - 20 (ip header size) - 8 (udp header size) = 65507
4008 2f314077 Jose A. Lopes
-- On IPv6: 64K - 40 (ip6 header size) - 8 (udp header size) = 65487
4009 2f314077 Jose A. Lopes
--   (assuming we can't use jumbo frames)
4010 2f314077 Jose A. Lopes
-- We just set this to 60K, which should be enough
4011 2f314077 Jose A. Lopes
maxUdpDataSize :: Int
4012 2f314077 Jose A. Lopes
maxUdpDataSize = 61440
4013 2f314077 Jose A. Lopes
4014 6b0d45b7 Jose A. Lopes
-- * User-id pool minimum/maximum acceptable user-ids
4015 6b0d45b7 Jose A. Lopes
4016 6b0d45b7 Jose A. Lopes
uidpoolUidMin :: Int
4017 6b0d45b7 Jose A. Lopes
uidpoolUidMin = 0
4018 6b0d45b7 Jose A. Lopes
4019 6b0d45b7 Jose A. Lopes
-- | Assuming 32 bit user-ids
4020 6b0d45b7 Jose A. Lopes
uidpoolUidMax :: Integer
4021 6b0d45b7 Jose A. Lopes
uidpoolUidMax = 2 ^ 32 - 1
4022 6b0d45b7 Jose A. Lopes
4023 b9b5acc3 Jose A. Lopes
-- | Name or path of the pgrep command
4024 b9b5acc3 Jose A. Lopes
pgrep :: String
4025 b9b5acc3 Jose A. Lopes
pgrep = "pgrep"
4026 b9b5acc3 Jose A. Lopes
4027 b9b5acc3 Jose A. Lopes
-- | Name of the node group that gets created at cluster init or
4028 b9b5acc3 Jose A. Lopes
-- upgrade
4029 b9b5acc3 Jose A. Lopes
initialNodeGroupName :: String
4030 b9b5acc3 Jose A. Lopes
initialNodeGroupName = "default"
4031 b9b5acc3 Jose A. Lopes
4032 f361a6ee Jose A. Lopes
-- * Possible values for NodeGroup.alloc_policy
4033 f361a6ee Jose A. Lopes
4034 f361a6ee Jose A. Lopes
allocPolicyLastResort :: String
4035 58c09b0e Jose A. Lopes
allocPolicyLastResort = Types.allocPolicyToRaw AllocLastResort
4036 f361a6ee Jose A. Lopes
4037 f361a6ee Jose A. Lopes
allocPolicyPreferred :: String
4038 58c09b0e Jose A. Lopes
allocPolicyPreferred = Types.allocPolicyToRaw AllocPreferred
4039 f361a6ee Jose A. Lopes
4040 f361a6ee Jose A. Lopes
allocPolicyUnallocable :: String
4041 58c09b0e Jose A. Lopes
allocPolicyUnallocable = Types.allocPolicyToRaw AllocUnallocable
4042 f361a6ee Jose A. Lopes
4043 f361a6ee Jose A. Lopes
validAllocPolicies :: [String]
4044 58c09b0e Jose A. Lopes
validAllocPolicies = map Types.allocPolicyToRaw [minBound..]
4045 f361a6ee Jose A. Lopes
4046 f361a6ee Jose A. Lopes
-- | Temporary external/shared storage parameters
4047 f361a6ee Jose A. Lopes
blockdevDriverManual :: String
4048 5867e439 Jose A. Lopes
blockdevDriverManual = Types.blockDriverToRaw BlockDrvManual
4049 f361a6ee Jose A. Lopes
4050 3b170ad4 Jose A. Lopes
-- | 'qemu-img' path, required for 'ovfconverter'
4051 3b170ad4 Jose A. Lopes
qemuimgPath :: String
4052 3b170ad4 Jose A. Lopes
qemuimgPath = AutoConf.qemuimgPath
4053 3b170ad4 Jose A. Lopes
4054 3b170ad4 Jose A. Lopes
-- | Whether htools was enabled at compilation time
4055 3b170ad4 Jose A. Lopes
--
4056 3b170ad4 Jose A. Lopes
-- FIXME: this should be moved next to the other enable constants,
4057 3b170ad4 Jose A. Lopes
-- such as, 'enableConfd', and renamed to 'enableHtools'.
4058 3b170ad4 Jose A. Lopes
htools :: Bool
4059 3b170ad4 Jose A. Lopes
htools = AutoConf.htools
4060 3b170ad4 Jose A. Lopes
4061 33ee4861 Jose A. Lopes
-- | The hail iallocator
4062 33ee4861 Jose A. Lopes
iallocHail :: String
4063 33ee4861 Jose A. Lopes
iallocHail = "hail"
4064 33ee4861 Jose A. Lopes
4065 33ee4861 Jose A. Lopes
-- * Fake opcodes for functions that have hooks attached to them via
4066 33ee4861 Jose A. Lopes
-- backend.RunLocalHooks
4067 33ee4861 Jose A. Lopes
4068 33ee4861 Jose A. Lopes
fakeOpMasterTurndown :: String
4069 33ee4861 Jose A. Lopes
fakeOpMasterTurndown = "OP_CLUSTER_IP_TURNDOWN"
4070 33ee4861 Jose A. Lopes
4071 33ee4861 Jose A. Lopes
fakeOpMasterTurnup :: String
4072 33ee4861 Jose A. Lopes
fakeOpMasterTurnup = "OP_CLUSTER_IP_TURNUP"
4073 33ee4861 Jose A. Lopes
4074 33ee4861 Jose A. Lopes
-- * SSH key types
4075 33ee4861 Jose A. Lopes
4076 33ee4861 Jose A. Lopes
sshkDsa :: String
4077 33ee4861 Jose A. Lopes
sshkDsa = "dsa"
4078 33ee4861 Jose A. Lopes
4079 33ee4861 Jose A. Lopes
sshkRsa :: String
4080 33ee4861 Jose A. Lopes
sshkRsa = "rsa"
4081 33ee4861 Jose A. Lopes
4082 33ee4861 Jose A. Lopes
sshkAll :: FrozenSet String
4083 33ee4861 Jose A. Lopes
sshkAll = ConstantUtils.mkSet [sshkRsa, sshkDsa]
4084 33ee4861 Jose A. Lopes
4085 33ee4861 Jose A. Lopes
-- * SSH authorized key types
4086 33ee4861 Jose A. Lopes
4087 33ee4861 Jose A. Lopes
sshakDss :: String
4088 33ee4861 Jose A. Lopes
sshakDss = "ssh-dss"
4089 33ee4861 Jose A. Lopes
4090 33ee4861 Jose A. Lopes
sshakRsa :: String
4091 33ee4861 Jose A. Lopes
sshakRsa = "ssh-rsa"
4092 33ee4861 Jose A. Lopes
4093 33ee4861 Jose A. Lopes
sshakAll :: FrozenSet String
4094 33ee4861 Jose A. Lopes
sshakAll = ConstantUtils.mkSet [sshakDss, sshakRsa]
4095 33ee4861 Jose A. Lopes
4096 33ee4861 Jose A. Lopes
-- * SSH setup
4097 33ee4861 Jose A. Lopes
4098 33ee4861 Jose A. Lopes
sshsClusterName :: String
4099 33ee4861 Jose A. Lopes
sshsClusterName = "cluster_name"
4100 33ee4861 Jose A. Lopes
4101 33ee4861 Jose A. Lopes
sshsSshHostKey :: String
4102 33ee4861 Jose A. Lopes
sshsSshHostKey = "ssh_host_key"
4103 33ee4861 Jose A. Lopes
4104 33ee4861 Jose A. Lopes
sshsSshRootKey :: String
4105 33ee4861 Jose A. Lopes
sshsSshRootKey = "ssh_root_key"
4106 33ee4861 Jose A. Lopes
4107 33ee4861 Jose A. Lopes
sshsNodeDaemonCertificate :: String
4108 33ee4861 Jose A. Lopes
sshsNodeDaemonCertificate = "node_daemon_certificate"
4109 33ee4861 Jose A. Lopes
4110 84ad6b78 Jose A. Lopes
-- * Key files for SSH daemon
4111 84ad6b78 Jose A. Lopes
4112 84ad6b78 Jose A. Lopes
sshHostDsaPriv :: String
4113 84ad6b78 Jose A. Lopes
sshHostDsaPriv = sshConfigDir ++ "/ssh_host_dsa_key"
4114 84ad6b78 Jose A. Lopes
4115 84ad6b78 Jose A. Lopes
sshHostDsaPub :: String
4116 84ad6b78 Jose A. Lopes
sshHostDsaPub = sshHostDsaPriv ++ ".pub"
4117 84ad6b78 Jose A. Lopes
4118 84ad6b78 Jose A. Lopes
sshHostRsaPriv :: String
4119 84ad6b78 Jose A. Lopes
sshHostRsaPriv = sshConfigDir ++ "/ssh_host_rsa_key"
4120 84ad6b78 Jose A. Lopes
4121 84ad6b78 Jose A. Lopes
sshHostRsaPub :: String
4122 84ad6b78 Jose A. Lopes
sshHostRsaPub = sshHostRsaPriv ++ ".pub"
4123 84ad6b78 Jose A. Lopes
4124 44b1b622 Jose A. Lopes
sshDaemonKeyfiles :: Map String (String, String)
4125 44b1b622 Jose A. Lopes
sshDaemonKeyfiles =
4126 44b1b622 Jose A. Lopes
  Map.fromList [ (sshkRsa, (sshHostRsaPriv, sshHostRsaPub))
4127 44b1b622 Jose A. Lopes
               , (sshkDsa, (sshHostDsaPriv, sshHostDsaPub))
4128 44b1b622 Jose A. Lopes
               ]
4129 44b1b622 Jose A. Lopes
4130 b6e2ff42 Jose A. Lopes
-- * Node daemon setup
4131 b6e2ff42 Jose A. Lopes
4132 b6e2ff42 Jose A. Lopes
ndsClusterName :: String
4133 b6e2ff42 Jose A. Lopes
ndsClusterName = "cluster_name"
4134 b6e2ff42 Jose A. Lopes
4135 b6e2ff42 Jose A. Lopes
ndsNodeDaemonCertificate :: String
4136 b6e2ff42 Jose A. Lopes
ndsNodeDaemonCertificate = "node_daemon_certificate"
4137 b6e2ff42 Jose A. Lopes
4138 b6e2ff42 Jose A. Lopes
ndsSsconf :: String
4139 b6e2ff42 Jose A. Lopes
ndsSsconf = "ssconf"
4140 b6e2ff42 Jose A. Lopes
4141 b6e2ff42 Jose A. Lopes
ndsStartNodeDaemon :: String
4142 b6e2ff42 Jose A. Lopes
ndsStartNodeDaemon = "start_node_daemon"
4143 b6e2ff42 Jose A. Lopes
4144 81ae485c Jose A. Lopes
-- * The source reasons for the execution of an OpCode
4145 81ae485c Jose A. Lopes
4146 81ae485c Jose A. Lopes
opcodeReasonSrcClient :: String
4147 81ae485c Jose A. Lopes
opcodeReasonSrcClient = "gnt:client"
4148 81ae485c Jose A. Lopes
4149 81ae485c Jose A. Lopes
opcodeReasonSrcNoded :: String
4150 81ae485c Jose A. Lopes
opcodeReasonSrcNoded = "gnt:daemon:noded"
4151 81ae485c Jose A. Lopes
4152 81ae485c Jose A. Lopes
opcodeReasonSrcOpcode :: String
4153 81ae485c Jose A. Lopes
opcodeReasonSrcOpcode = "gnt:opcode"
4154 81ae485c Jose A. Lopes
4155 81ae485c Jose A. Lopes
opcodeReasonSrcRlib2 :: String
4156 81ae485c Jose A. Lopes
opcodeReasonSrcRlib2 = "gnt:library:rlib2"
4157 81ae485c Jose A. Lopes
4158 81ae485c Jose A. Lopes
opcodeReasonSrcUser :: String
4159 81ae485c Jose A. Lopes
opcodeReasonSrcUser = "gnt:user"
4160 81ae485c Jose A. Lopes
4161 81ae485c Jose A. Lopes
opcodeReasonSources :: FrozenSet String
4162 81ae485c Jose A. Lopes
opcodeReasonSources =
4163 81ae485c Jose A. Lopes
  ConstantUtils.mkSet [opcodeReasonSrcClient,
4164 81ae485c Jose A. Lopes
                       opcodeReasonSrcNoded,
4165 81ae485c Jose A. Lopes
                       opcodeReasonSrcOpcode,
4166 81ae485c Jose A. Lopes
                       opcodeReasonSrcRlib2,
4167 81ae485c Jose A. Lopes
                       opcodeReasonSrcUser]
4168 81ae485c Jose A. Lopes
4169 06fd57e5 Jose A. Lopes
-- | Path generating random UUID
4170 06fd57e5 Jose A. Lopes
randomUuidFile :: String
4171 06fd57e5 Jose A. Lopes
randomUuidFile = ConstantUtils.randomUuidFile
4172 06fd57e5 Jose A. Lopes
4173 f361a6ee Jose A. Lopes
-- * Auto-repair tag prefixes
4174 f361a6ee Jose A. Lopes
4175 f361a6ee Jose A. Lopes
autoRepairTagPrefix :: String
4176 f361a6ee Jose A. Lopes
autoRepairTagPrefix = "ganeti:watcher:autorepair:"
4177 f361a6ee Jose A. Lopes
4178 f361a6ee Jose A. Lopes
autoRepairTagEnabled :: String
4179 f361a6ee Jose A. Lopes
autoRepairTagEnabled = autoRepairTagPrefix
4180 f361a6ee Jose A. Lopes
4181 f361a6ee Jose A. Lopes
autoRepairTagPending :: String
4182 f361a6ee Jose A. Lopes
autoRepairTagPending = autoRepairTagPrefix ++ "pending:"
4183 f361a6ee Jose A. Lopes
4184 f361a6ee Jose A. Lopes
autoRepairTagResult :: String
4185 f361a6ee Jose A. Lopes
autoRepairTagResult = autoRepairTagPrefix ++ "result:"
4186 f361a6ee Jose A. Lopes
4187 f361a6ee Jose A. Lopes
autoRepairTagSuspended :: String
4188 f361a6ee Jose A. Lopes
autoRepairTagSuspended = autoRepairTagPrefix ++ "suspend:"
4189 f361a6ee Jose A. Lopes
4190 f361a6ee Jose A. Lopes
-- * Auto-repair levels
4191 f361a6ee Jose A. Lopes
4192 f361a6ee Jose A. Lopes
autoRepairFailover :: String
4193 becfd918 Jose A. Lopes
autoRepairFailover = Types.autoRepairTypeToRaw ArFailover
4194 f361a6ee Jose A. Lopes
4195 f361a6ee Jose A. Lopes
autoRepairFixStorage :: String
4196 becfd918 Jose A. Lopes
autoRepairFixStorage = Types.autoRepairTypeToRaw ArFixStorage
4197 f361a6ee Jose A. Lopes
4198 f361a6ee Jose A. Lopes
autoRepairMigrate :: String
4199 becfd918 Jose A. Lopes
autoRepairMigrate = Types.autoRepairTypeToRaw ArMigrate
4200 f361a6ee Jose A. Lopes
4201 f361a6ee Jose A. Lopes
autoRepairReinstall :: String
4202 becfd918 Jose A. Lopes
autoRepairReinstall = Types.autoRepairTypeToRaw ArReinstall
4203 f361a6ee Jose A. Lopes
4204 f361a6ee Jose A. Lopes
autoRepairAllTypes :: FrozenSet String
4205 f361a6ee Jose A. Lopes
autoRepairAllTypes =
4206 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairFailover,
4207 43a9e860 Jose A. Lopes
                       autoRepairFixStorage,
4208 43a9e860 Jose A. Lopes
                       autoRepairMigrate,
4209 43a9e860 Jose A. Lopes
                       autoRepairReinstall]
4210 f361a6ee Jose A. Lopes
4211 f361a6ee Jose A. Lopes
-- * Auto-repair results
4212 f361a6ee Jose A. Lopes
4213 f361a6ee Jose A. Lopes
autoRepairEnoperm :: String
4214 becfd918 Jose A. Lopes
autoRepairEnoperm = Types.autoRepairResultToRaw ArEnoperm
4215 f361a6ee Jose A. Lopes
4216 f361a6ee Jose A. Lopes
autoRepairFailure :: String
4217 becfd918 Jose A. Lopes
autoRepairFailure = Types.autoRepairResultToRaw ArFailure
4218 f361a6ee Jose A. Lopes
4219 f361a6ee Jose A. Lopes
autoRepairSuccess :: String
4220 becfd918 Jose A. Lopes
autoRepairSuccess = Types.autoRepairResultToRaw ArSuccess
4221 f361a6ee Jose A. Lopes
4222 f361a6ee Jose A. Lopes
autoRepairAllResults :: FrozenSet String
4223 f361a6ee Jose A. Lopes
autoRepairAllResults =
4224 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairEnoperm, autoRepairFailure, autoRepairSuccess]
4225 f361a6ee Jose A. Lopes
4226 f361a6ee Jose A. Lopes
-- | The version identifier for builtin data collectors
4227 f361a6ee Jose A. Lopes
builtinDataCollectorVersion :: String
4228 f361a6ee Jose A. Lopes
builtinDataCollectorVersion = "B"
4229 2924f169 Jose A. Lopes
4230 2924f169 Jose A. Lopes
-- | The reason trail opcode parameter name
4231 2924f169 Jose A. Lopes
opcodeReason :: String
4232 2924f169 Jose A. Lopes
opcodeReason = "reason"
4233 2924f169 Jose A. Lopes
4234 2924f169 Jose A. Lopes
diskstatsFile :: String
4235 2924f169 Jose A. Lopes
diskstatsFile = "/proc/diskstats"
4236 2924f169 Jose A. Lopes
4237 74129b52 Jose A. Lopes
-- *  CPU load collector
4238 74129b52 Jose A. Lopes
4239 2924f169 Jose A. Lopes
statFile :: String
4240 2924f169 Jose A. Lopes
statFile = "/proc/stat"
4241 2924f169 Jose A. Lopes
4242 74129b52 Jose A. Lopes
cpuavgloadBufferSize :: Int
4243 74129b52 Jose A. Lopes
cpuavgloadBufferSize = 150
4244 74129b52 Jose A. Lopes
4245 74129b52 Jose A. Lopes
cpuavgloadWindowSize :: Int
4246 74129b52 Jose A. Lopes
cpuavgloadWindowSize = 600
4247 74129b52 Jose A. Lopes
4248 cb23d0ca Jose A. Lopes
-- * Monitoring daemon
4249 cb23d0ca Jose A. Lopes
4250 2924f169 Jose A. Lopes
-- | Mond's variable for periodical data collection
4251 2924f169 Jose A. Lopes
mondTimeInterval :: Int
4252 2924f169 Jose A. Lopes
mondTimeInterval = 5
4253 9b9e088c Raffa Santi
4254 cb23d0ca Jose A. Lopes
-- | Mond's latest API version
4255 cb23d0ca Jose A. Lopes
mondLatestApiVersion :: Int
4256 cb23d0ca Jose A. Lopes
mondLatestApiVersion = 1
4257 cb23d0ca Jose A. Lopes
4258 9b9e088c Raffa Santi
-- * Disk access modes
4259 9b9e088c Raffa Santi
4260 9b9e088c Raffa Santi
diskUserspace :: String
4261 9b9e088c Raffa Santi
diskUserspace = Types.diskAccessModeToRaw DiskUserspace
4262 9b9e088c Raffa Santi
4263 9b9e088c Raffa Santi
diskKernelspace :: String
4264 9b9e088c Raffa Santi
diskKernelspace = Types.diskAccessModeToRaw DiskKernelspace
4265 9b9e088c Raffa Santi
4266 9b9e088c Raffa Santi
diskValidAccessModes :: FrozenSet String
4267 9b9e088c Raffa Santi
diskValidAccessModes =
4268 9b9e088c Raffa Santi
  ConstantUtils.mkSet $ map Types.diskAccessModeToRaw [minBound..]
4269 55f0626b Klaus Aehlig
4270 55f0626b Klaus Aehlig
-- | Timeout for queue draining in upgrades
4271 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout :: Int
4272 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout = 36 * 60 * 60 -- 1.5 days
4273 55f0626b Klaus Aehlig
4274 55f0626b Klaus Aehlig
-- | Intervall at which the queue is polled during upgrades
4275 55f0626b Klaus Aehlig
upgradeQueuePollInterval :: Int
4276 55f0626b Klaus Aehlig
upgradeQueuePollInterval  = 10
4277 9569d877 Dimitris Aragiorgis
4278 9569d877 Dimitris Aragiorgis
-- * Hotplug Actions
4279 9569d877 Dimitris Aragiorgis
4280 9569d877 Dimitris Aragiorgis
hotplugActionAdd :: String
4281 9569d877 Dimitris Aragiorgis
hotplugActionAdd = Types.hotplugActionToRaw HAAdd
4282 9569d877 Dimitris Aragiorgis
4283 9569d877 Dimitris Aragiorgis
hotplugActionRemove :: String
4284 9569d877 Dimitris Aragiorgis
hotplugActionRemove = Types.hotplugActionToRaw HARemove
4285 9569d877 Dimitris Aragiorgis
4286 9569d877 Dimitris Aragiorgis
hotplugActionModify :: String
4287 9569d877 Dimitris Aragiorgis
hotplugActionModify = Types.hotplugActionToRaw HAMod
4288 9569d877 Dimitris Aragiorgis
4289 9569d877 Dimitris Aragiorgis
hotplugAllActions :: FrozenSet String
4290 9569d877 Dimitris Aragiorgis
hotplugAllActions =
4291 9569d877 Dimitris Aragiorgis
  ConstantUtils.mkSet $ map Types.hotplugActionToRaw [minBound..]
4292 9569d877 Dimitris Aragiorgis
4293 9569d877 Dimitris Aragiorgis
-- * Hotplug Device Targets
4294 9569d877 Dimitris Aragiorgis
4295 9569d877 Dimitris Aragiorgis
hotplugTargetNic :: String
4296 9569d877 Dimitris Aragiorgis
hotplugTargetNic = Types.hotplugTargetToRaw HTNic
4297 9569d877 Dimitris Aragiorgis
4298 9569d877 Dimitris Aragiorgis
hotplugTargetDisk :: String
4299 9569d877 Dimitris Aragiorgis
hotplugTargetDisk = Types.hotplugTargetToRaw HTDisk
4300 9569d877 Dimitris Aragiorgis
4301 9569d877 Dimitris Aragiorgis
hotplugAllTargets :: FrozenSet String
4302 9569d877 Dimitris Aragiorgis
hotplugAllTargets =
4303 9569d877 Dimitris Aragiorgis
  ConstantUtils.mkSet $ map Types.hotplugTargetToRaw [minBound..]
4304 b3ae67d7 Dimitris Aragiorgis
4305 4c5cb91e Jose A. Lopes
-- | Timeout for disk removal (seconds)
4306 b3ae67d7 Dimitris Aragiorgis
diskRemoveRetryTimeout :: Int
4307 b3ae67d7 Dimitris Aragiorgis
diskRemoveRetryTimeout = 30
4308 b3ae67d7 Dimitris Aragiorgis
4309 4c5cb91e Jose A. Lopes
-- | Interval between disk removal retries (seconds)
4310 b3ae67d7 Dimitris Aragiorgis
diskRemoveRetryInterval :: Int
4311 b3ae67d7 Dimitris Aragiorgis
diskRemoveRetryInterval  = 3
4312 b5a3b24a Jose A. Lopes
4313 b5a3b24a Jose A. Lopes
-- * UUID regex
4314 b5a3b24a Jose A. Lopes
4315 b5a3b24a Jose A. Lopes
uuidRegex :: String
4316 b5a3b24a Jose A. Lopes
uuidRegex = "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
4317 fbb05686 Jose A. Lopes
4318 fbb05686 Jose A. Lopes
-- * Luxi constants
4319 fbb05686 Jose A. Lopes
4320 fbb05686 Jose A. Lopes
luxiKeyMethod :: String
4321 fbb05686 Jose A. Lopes
luxiKeyMethod = "method"
4322 fbb05686 Jose A. Lopes
4323 fbb05686 Jose A. Lopes
luxiKeyArgs :: String
4324 fbb05686 Jose A. Lopes
luxiKeyArgs = "args"
4325 fbb05686 Jose A. Lopes
4326 fbb05686 Jose A. Lopes
luxiKeySuccess :: String
4327 fbb05686 Jose A. Lopes
luxiKeySuccess = "success"
4328 fbb05686 Jose A. Lopes
4329 fbb05686 Jose A. Lopes
luxiKeyResult :: String
4330 fbb05686 Jose A. Lopes
luxiKeyResult = "result"
4331 fbb05686 Jose A. Lopes
4332 fbb05686 Jose A. Lopes
luxiKeyVersion :: String
4333 fbb05686 Jose A. Lopes
luxiKeyVersion = "version"
4334 fbb05686 Jose A. Lopes
4335 fbb05686 Jose A. Lopes
luxiReqSubmitJob :: String
4336 fbb05686 Jose A. Lopes
luxiReqSubmitJob = "SubmitJob"
4337 fbb05686 Jose A. Lopes
4338 fbb05686 Jose A. Lopes
luxiReqSubmitJobToDrainedQueue :: String
4339 fbb05686 Jose A. Lopes
luxiReqSubmitJobToDrainedQueue = "SubmitJobToDrainedQueue"
4340 fbb05686 Jose A. Lopes
4341 fbb05686 Jose A. Lopes
luxiReqSubmitManyJobs :: String
4342 fbb05686 Jose A. Lopes
luxiReqSubmitManyJobs = "SubmitManyJobs"
4343 fbb05686 Jose A. Lopes
4344 fbb05686 Jose A. Lopes
luxiReqWaitForJobChange :: String
4345 fbb05686 Jose A. Lopes
luxiReqWaitForJobChange = "WaitForJobChange"
4346 fbb05686 Jose A. Lopes
4347 fbb05686 Jose A. Lopes
luxiReqCancelJob :: String
4348 fbb05686 Jose A. Lopes
luxiReqCancelJob = "CancelJob"
4349 fbb05686 Jose A. Lopes
4350 fbb05686 Jose A. Lopes
luxiReqArchiveJob :: String
4351 fbb05686 Jose A. Lopes
luxiReqArchiveJob = "ArchiveJob"
4352 fbb05686 Jose A. Lopes
4353 fbb05686 Jose A. Lopes
luxiReqChangeJobPriority :: String
4354 fbb05686 Jose A. Lopes
luxiReqChangeJobPriority = "ChangeJobPriority"
4355 fbb05686 Jose A. Lopes
4356 fbb05686 Jose A. Lopes
luxiReqAutoArchiveJobs :: String
4357 fbb05686 Jose A. Lopes
luxiReqAutoArchiveJobs = "AutoArchiveJobs"
4358 fbb05686 Jose A. Lopes
4359 fbb05686 Jose A. Lopes
luxiReqQuery :: String
4360 fbb05686 Jose A. Lopes
luxiReqQuery = "Query"
4361 fbb05686 Jose A. Lopes
4362 fbb05686 Jose A. Lopes
luxiReqQueryFields :: String
4363 fbb05686 Jose A. Lopes
luxiReqQueryFields = "QueryFields"
4364 fbb05686 Jose A. Lopes
4365 fbb05686 Jose A. Lopes
luxiReqQueryJobs :: String
4366 fbb05686 Jose A. Lopes
luxiReqQueryJobs = "QueryJobs"
4367 fbb05686 Jose A. Lopes
4368 fbb05686 Jose A. Lopes
luxiReqQueryInstances :: String
4369 fbb05686 Jose A. Lopes
luxiReqQueryInstances = "QueryInstances"
4370 fbb05686 Jose A. Lopes
4371 fbb05686 Jose A. Lopes
luxiReqQueryNodes :: String
4372 fbb05686 Jose A. Lopes
luxiReqQueryNodes = "QueryNodes"
4373 fbb05686 Jose A. Lopes
4374 fbb05686 Jose A. Lopes
luxiReqQueryGroups :: String
4375 fbb05686 Jose A. Lopes
luxiReqQueryGroups = "QueryGroups"
4376 fbb05686 Jose A. Lopes
4377 fbb05686 Jose A. Lopes
luxiReqQueryNetworks :: String
4378 fbb05686 Jose A. Lopes
luxiReqQueryNetworks = "QueryNetworks"
4379 fbb05686 Jose A. Lopes
4380 fbb05686 Jose A. Lopes
luxiReqQueryExports :: String
4381 fbb05686 Jose A. Lopes
luxiReqQueryExports = "QueryExports"
4382 fbb05686 Jose A. Lopes
4383 fbb05686 Jose A. Lopes
luxiReqQueryConfigValues :: String
4384 fbb05686 Jose A. Lopes
luxiReqQueryConfigValues = "QueryConfigValues"
4385 fbb05686 Jose A. Lopes
4386 fbb05686 Jose A. Lopes
luxiReqQueryClusterInfo :: String
4387 fbb05686 Jose A. Lopes
luxiReqQueryClusterInfo = "QueryClusterInfo"
4388 fbb05686 Jose A. Lopes
4389 fbb05686 Jose A. Lopes
luxiReqQueryTags :: String
4390 fbb05686 Jose A. Lopes
luxiReqQueryTags = "QueryTags"
4391 fbb05686 Jose A. Lopes
4392 fbb05686 Jose A. Lopes
luxiReqSetDrainFlag :: String
4393 fbb05686 Jose A. Lopes
luxiReqSetDrainFlag = "SetDrainFlag"
4394 fbb05686 Jose A. Lopes
4395 fbb05686 Jose A. Lopes
luxiReqSetWatcherPause :: String
4396 fbb05686 Jose A. Lopes
luxiReqSetWatcherPause = "SetWatcherPause"
4397 fbb05686 Jose A. Lopes
4398 fbb05686 Jose A. Lopes
luxiReqAll :: FrozenSet String
4399 fbb05686 Jose A. Lopes
luxiReqAll =
4400 fbb05686 Jose A. Lopes
  ConstantUtils.mkSet
4401 fbb05686 Jose A. Lopes
  [ luxiReqArchiveJob
4402 fbb05686 Jose A. Lopes
  , luxiReqAutoArchiveJobs
4403 fbb05686 Jose A. Lopes
  , luxiReqCancelJob
4404 fbb05686 Jose A. Lopes
  , luxiReqChangeJobPriority
4405 fbb05686 Jose A. Lopes
  , luxiReqQuery
4406 fbb05686 Jose A. Lopes
  , luxiReqQueryClusterInfo
4407 fbb05686 Jose A. Lopes
  , luxiReqQueryConfigValues
4408 fbb05686 Jose A. Lopes
  , luxiReqQueryExports
4409 fbb05686 Jose A. Lopes
  , luxiReqQueryFields
4410 fbb05686 Jose A. Lopes
  , luxiReqQueryGroups
4411 fbb05686 Jose A. Lopes
  , luxiReqQueryInstances
4412 fbb05686 Jose A. Lopes
  , luxiReqQueryJobs
4413 fbb05686 Jose A. Lopes
  , luxiReqQueryNodes
4414 fbb05686 Jose A. Lopes
  , luxiReqQueryNetworks
4415 fbb05686 Jose A. Lopes
  , luxiReqQueryTags
4416 fbb05686 Jose A. Lopes
  , luxiReqSetDrainFlag
4417 fbb05686 Jose A. Lopes
  , luxiReqSetWatcherPause
4418 fbb05686 Jose A. Lopes
  , luxiReqSubmitJob
4419 fbb05686 Jose A. Lopes
  , luxiReqSubmitJobToDrainedQueue
4420 fbb05686 Jose A. Lopes
  , luxiReqSubmitManyJobs
4421 fbb05686 Jose A. Lopes
  , luxiReqWaitForJobChange
4422 fbb05686 Jose A. Lopes
  ]
4423 fbb05686 Jose A. Lopes
4424 fbb05686 Jose A. Lopes
luxiDefCtmo :: Int
4425 fbb05686 Jose A. Lopes
luxiDefCtmo = 10
4426 fbb05686 Jose A. Lopes
4427 fbb05686 Jose A. Lopes
luxiDefRwto :: Int
4428 fbb05686 Jose A. Lopes
luxiDefRwto = 60
4429 fbb05686 Jose A. Lopes
4430 fbb05686 Jose A. Lopes
-- | 'WaitForJobChange' timeout
4431 fbb05686 Jose A. Lopes
luxiWfjcTimeout :: Int
4432 fbb05686 Jose A. Lopes
luxiWfjcTimeout = (luxiDefRwto - 1) `div` 2
4433 67620dff Jose A. Lopes
4434 67620dff Jose A. Lopes
-- * Query language constants
4435 67620dff Jose A. Lopes
4436 67620dff Jose A. Lopes
-- ** Logic operators with one or more operands, each of which is a
4437 67620dff Jose A. Lopes
-- filter on its own
4438 67620dff Jose A. Lopes
4439 67620dff Jose A. Lopes
qlangOpAnd :: String
4440 67620dff Jose A. Lopes
qlangOpAnd = "&"
4441 67620dff Jose A. Lopes
4442 67620dff Jose A. Lopes
qlangOpOr :: String
4443 67620dff Jose A. Lopes
qlangOpOr = "|"
4444 67620dff Jose A. Lopes
4445 67620dff Jose A. Lopes
-- ** Unary operators with exactly one operand
4446 67620dff Jose A. Lopes
4447 67620dff Jose A. Lopes
qlangOpNot :: String
4448 67620dff Jose A. Lopes
qlangOpNot = "!"
4449 67620dff Jose A. Lopes
4450 67620dff Jose A. Lopes
qlangOpTrue :: String
4451 67620dff Jose A. Lopes
qlangOpTrue = "?"
4452 67620dff Jose A. Lopes
4453 67620dff Jose A. Lopes
-- ** Binary operators with exactly two operands, the field name and
4454 67620dff Jose A. Lopes
-- an operator-specific value
4455 67620dff Jose A. Lopes
4456 67620dff Jose A. Lopes
qlangOpContains :: String
4457 67620dff Jose A. Lopes
qlangOpContains = "=[]"
4458 67620dff Jose A. Lopes
4459 67620dff Jose A. Lopes
qlangOpEqual :: String
4460 67620dff Jose A. Lopes
qlangOpEqual = "="
4461 67620dff Jose A. Lopes
4462 67620dff Jose A. Lopes
qlangOpGe :: String
4463 67620dff Jose A. Lopes
qlangOpGe = ">="
4464 67620dff Jose A. Lopes
4465 67620dff Jose A. Lopes
qlangOpGt :: String
4466 67620dff Jose A. Lopes
qlangOpGt = ">"
4467 67620dff Jose A. Lopes
4468 67620dff Jose A. Lopes
qlangOpLe :: String
4469 67620dff Jose A. Lopes
qlangOpLe = "<="
4470 67620dff Jose A. Lopes
4471 67620dff Jose A. Lopes
qlangOpLt :: String
4472 67620dff Jose A. Lopes
qlangOpLt = "<"
4473 67620dff Jose A. Lopes
4474 67620dff Jose A. Lopes
qlangOpNotEqual :: String
4475 67620dff Jose A. Lopes
qlangOpNotEqual = "!="
4476 67620dff Jose A. Lopes
4477 67620dff Jose A. Lopes
qlangOpRegexp :: String
4478 67620dff Jose A. Lopes
qlangOpRegexp = "=~"
4479 67620dff Jose A. Lopes
4480 67620dff Jose A. Lopes
-- | Characters used for detecting user-written filters (see
4481 67620dff Jose A. Lopes
-- L{_CheckFilter})
4482 67620dff Jose A. Lopes
4483 67620dff Jose A. Lopes
qlangFilterDetectionChars :: FrozenSet String
4484 67620dff Jose A. Lopes
qlangFilterDetectionChars =
4485 67620dff Jose A. Lopes
  ConstantUtils.mkSet ["!", " ", "\"", "\'",
4486 67620dff Jose A. Lopes
                       ")", "(", "\x0b", "\n",
4487 67620dff Jose A. Lopes
                       "\r", "\x0c", "/", "<",
4488 67620dff Jose A. Lopes
                       "\t", ">", "=", "\\", "~"]
4489 67620dff Jose A. Lopes
4490 67620dff Jose A. Lopes
-- | Characters used to detect globbing filters
4491 67620dff Jose A. Lopes
qlangGlobDetectionChars :: FrozenSet String
4492 67620dff Jose A. Lopes
qlangGlobDetectionChars = ConstantUtils.mkSet ["*", "?"]
4493 88ac4075 Jose A. Lopes
4494 88ac4075 Jose A. Lopes
-- * Error related constants
4495 88ac4075 Jose A. Lopes
--
4496 88ac4075 Jose A. Lopes
-- 'OpPrereqError' failure types
4497 88ac4075 Jose A. Lopes
4498 88ac4075 Jose A. Lopes
-- | Environment error (e.g. node disk error)
4499 88ac4075 Jose A. Lopes
errorsEcodeEnviron :: String
4500 88ac4075 Jose A. Lopes
errorsEcodeEnviron = "environment_error"
4501 88ac4075 Jose A. Lopes
4502 88ac4075 Jose A. Lopes
-- | Entity already exists
4503 88ac4075 Jose A. Lopes
errorsEcodeExists :: String
4504 88ac4075 Jose A. Lopes
errorsEcodeExists = "already_exists"
4505 88ac4075 Jose A. Lopes
4506 88ac4075 Jose A. Lopes
-- | Internal cluster error
4507 88ac4075 Jose A. Lopes
errorsEcodeFault :: String
4508 88ac4075 Jose A. Lopes
errorsEcodeFault = "internal_error"
4509 88ac4075 Jose A. Lopes
4510 88ac4075 Jose A. Lopes
-- | Wrong arguments (at syntax level)
4511 88ac4075 Jose A. Lopes
errorsEcodeInval :: String
4512 88ac4075 Jose A. Lopes
errorsEcodeInval = "wrong_input"
4513 88ac4075 Jose A. Lopes
4514 88ac4075 Jose A. Lopes
-- | Entity not found
4515 88ac4075 Jose A. Lopes
errorsEcodeNoent :: String
4516 88ac4075 Jose A. Lopes
errorsEcodeNoent = "unknown_entity"
4517 88ac4075 Jose A. Lopes
4518 88ac4075 Jose A. Lopes
-- | Not enough resources (iallocator failure, disk space, memory, etc)
4519 88ac4075 Jose A. Lopes
errorsEcodeNores :: String
4520 88ac4075 Jose A. Lopes
errorsEcodeNores = "insufficient_resources"
4521 88ac4075 Jose A. Lopes
4522 88ac4075 Jose A. Lopes
-- | Resource not unique (e.g. MAC or IP duplication)
4523 88ac4075 Jose A. Lopes
errorsEcodeNotunique :: String
4524 88ac4075 Jose A. Lopes
errorsEcodeNotunique = "resource_not_unique"
4525 88ac4075 Jose A. Lopes
4526 88ac4075 Jose A. Lopes
-- | Resolver errors
4527 88ac4075 Jose A. Lopes
errorsEcodeResolver :: String
4528 88ac4075 Jose A. Lopes
errorsEcodeResolver = "resolver_error"
4529 88ac4075 Jose A. Lopes
4530 88ac4075 Jose A. Lopes
-- | Wrong entity state
4531 88ac4075 Jose A. Lopes
errorsEcodeState :: String
4532 88ac4075 Jose A. Lopes
errorsEcodeState = "wrong_state"
4533 88ac4075 Jose A. Lopes
4534 88ac4075 Jose A. Lopes
-- | Temporarily out of resources; operation can be tried again
4535 88ac4075 Jose A. Lopes
errorsEcodeTempNores :: String
4536 88ac4075 Jose A. Lopes
errorsEcodeTempNores = "temp_insufficient_resources"
4537 88ac4075 Jose A. Lopes
4538 88ac4075 Jose A. Lopes
errorsEcodeAll :: FrozenSet String
4539 88ac4075 Jose A. Lopes
errorsEcodeAll =
4540 88ac4075 Jose A. Lopes
  ConstantUtils.mkSet [ errorsEcodeNores
4541 88ac4075 Jose A. Lopes
                      , errorsEcodeExists
4542 88ac4075 Jose A. Lopes
                      , errorsEcodeState
4543 88ac4075 Jose A. Lopes
                      , errorsEcodeNotunique
4544 88ac4075 Jose A. Lopes
                      , errorsEcodeTempNores
4545 88ac4075 Jose A. Lopes
                      , errorsEcodeNoent
4546 88ac4075 Jose A. Lopes
                      , errorsEcodeFault
4547 88ac4075 Jose A. Lopes
                      , errorsEcodeResolver
4548 88ac4075 Jose A. Lopes
                      , errorsEcodeInval
4549 88ac4075 Jose A. Lopes
                      , errorsEcodeEnviron
4550 88ac4075 Jose A. Lopes
                      ]
4551 5523732b Jose A. Lopes
4552 5523732b Jose A. Lopes
-- * Jstore related constants
4553 5523732b Jose A. Lopes
4554 5523732b Jose A. Lopes
jstoreJobsPerArchiveDirectory :: Int
4555 5523732b Jose A. Lopes
jstoreJobsPerArchiveDirectory = 10000