Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ 9158a1dd

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