Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / HsConstants.hs @ 75463b9a

History | View | Annotate | Download (73.3 kB)

1 1b2adaa6 Jose A. Lopes
{-| HsConstants contains the Haskell constants
2 1b2adaa6 Jose A. Lopes
3 1b2adaa6 Jose A. Lopes
This is a transitional module complementary to 'Ganeti.Constants'.  It
4 1b2adaa6 Jose A. Lopes
is intended to contain the Haskell constants that are meant to be
5 1b2adaa6 Jose A. Lopes
generated in Python.
6 1b2adaa6 Jose A. Lopes
7 c93041a5 Jose A. Lopes
Do not write any definitions in this file other than constants.  Do
8 c93041a5 Jose A. Lopes
not even write helper functions.  The definitions in this module are
9 c93041a5 Jose A. Lopes
automatically stripped to build the Makefile.am target
10 c93041a5 Jose A. Lopes
'ListConstants.hs'.  If there are helper functions in this module,
11 c93041a5 Jose A. Lopes
they will also be dragged and it will cause compilation to fail.
12 c93041a5 Jose A. Lopes
Therefore, all helper functions should go to a separate module and
13 c93041a5 Jose A. Lopes
imported.
14 c93041a5 Jose A. Lopes
15 1b2adaa6 Jose A. Lopes
-}
16 1b2adaa6 Jose A. Lopes
17 1b2adaa6 Jose A. Lopes
{-
18 1b2adaa6 Jose A. Lopes
19 1b2adaa6 Jose A. Lopes
Copyright (C) 2013 Google Inc.
20 1b2adaa6 Jose A. Lopes
21 1b2adaa6 Jose A. Lopes
This program is free software; you can redistribute it and/or modify
22 1b2adaa6 Jose A. Lopes
it under the terms of the GNU General Public License as published by
23 1b2adaa6 Jose A. Lopes
the Free Software Foundation; either version 2 of the License, or
24 1b2adaa6 Jose A. Lopes
(at your option) any later version.
25 1b2adaa6 Jose A. Lopes
26 1b2adaa6 Jose A. Lopes
This program is distributed in the hope that it will be useful, but
27 1b2adaa6 Jose A. Lopes
WITHOUT ANY WARRANTY; without even the implied warranty of
28 1b2adaa6 Jose A. Lopes
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
29 1b2adaa6 Jose A. Lopes
General Public License for more details.
30 1b2adaa6 Jose A. Lopes
31 1b2adaa6 Jose A. Lopes
You should have received a copy of the GNU General Public License
32 1b2adaa6 Jose A. Lopes
along with this program; if not, write to the Free Software
33 1b2adaa6 Jose A. Lopes
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
34 1b2adaa6 Jose A. Lopes
02110-1301, USA.
35 1b2adaa6 Jose A. Lopes
36 1b2adaa6 Jose A. Lopes
-}
37 1b2adaa6 Jose A. Lopes
module Ganeti.HsConstants where
38 1b2adaa6 Jose A. Lopes
39 9be1ff8c Jose A. Lopes
import Control.Arrow ((***))
40 cdac0552 Jose A. Lopes
import Data.List ((\\))
41 6dc0cb59 Jose A. Lopes
import Data.Map (Map)
42 ecf43dcb Jose A. Lopes
import qualified Data.Map as Map (fromList, keys, insert)
43 6dc0cb59 Jose A. Lopes
44 26eca119 Jose A. Lopes
import AutoConf
45 5d4e1402 Jose A. Lopes
import Ganeti.ConstantUtils (PythonChar(..), FrozenSet, Protocol(..),
46 5d4e1402 Jose A. Lopes
                             buildVersion)
47 df726590 Jose A. Lopes
import qualified Ganeti.ConstantUtils as ConstantUtils
48 1c31b263 Jose A. Lopes
import Ganeti.Runtime (GanetiDaemon(..), MiscGroup(..), GanetiGroup(..),
49 1c31b263 Jose A. Lopes
                       ExtraLogReason(..))
50 8397ffde Jose A. Lopes
import Ganeti.HTools.Types (AutoRepairResult(..), AutoRepairType(..))
51 8397ffde Jose A. Lopes
import qualified Ganeti.HTools.Types as Types
52 df726590 Jose A. Lopes
import Ganeti.Logging (SyslogUsage(..))
53 df726590 Jose A. Lopes
import qualified Ganeti.Logging as Logging (syslogUsageToRaw)
54 1c31b263 Jose A. Lopes
import qualified Ganeti.Runtime as Runtime
55 85c48fbb Jose A. Lopes
import Ganeti.Types
56 85c48fbb Jose A. Lopes
import qualified Ganeti.Types as Types
57 cdac0552 Jose A. Lopes
import Ganeti.Confd.Types (ConfdRequestType(..), ConfdReqField(..),
58 cdac0552 Jose A. Lopes
                           ConfdReplyStatus(..), ConfdNodeRole(..),
59 cdac0552 Jose A. Lopes
                           ConfdErrorType(..))
60 cdac0552 Jose A. Lopes
import qualified Ganeti.Confd.Types as Types
61 85c48fbb Jose A. Lopes
62 c03224f6 Jose A. Lopes
{-# ANN module "HLint: ignore Use camelCase" #-}
63 c03224f6 Jose A. Lopes
64 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('autotools/build-bash-completion')
65 1c9e817d Jose A. Lopes
66 1c9e817d Jose A. Lopes
htoolsProgs :: [String]
67 1c9e817d Jose A. Lopes
htoolsProgs = AutoConf.htoolsProgs
68 1c9e817d Jose A. Lopes
69 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/constants.py')
70 3b170ad4 Jose A. Lopes
71 3b170ad4 Jose A. Lopes
drbdBarriers :: String
72 3b170ad4 Jose A. Lopes
drbdBarriers = AutoConf.drbdBarriers
73 3b170ad4 Jose A. Lopes
74 3b170ad4 Jose A. Lopes
drbdNoMetaFlush :: Bool
75 3b170ad4 Jose A. Lopes
drbdNoMetaFlush = AutoConf.drbdNoMetaFlush
76 3b170ad4 Jose A. Lopes
77 3b170ad4 Jose A. Lopes
lvmStripecount :: Int
78 3b170ad4 Jose A. Lopes
lvmStripecount = AutoConf.lvmStripecount
79 3b170ad4 Jose A. Lopes
80 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/pathutils.py')
81 1c9e817d Jose A. Lopes
82 1c9e817d Jose A. Lopes
-- ** Build-time constants
83 1c9e817d Jose A. Lopes
84 1c9e817d Jose A. Lopes
exportDir :: String
85 1c9e817d Jose A. Lopes
exportDir = AutoConf.exportDir
86 1c9e817d Jose A. Lopes
87 1c9e817d Jose A. Lopes
osSearchPath :: [String]
88 1c9e817d Jose A. Lopes
osSearchPath = AutoConf.osSearchPath
89 1c9e817d Jose A. Lopes
90 1c9e817d Jose A. Lopes
esSearchPath :: [String]
91 1c9e817d Jose A. Lopes
esSearchPath = AutoConf.esSearchPath
92 1c9e817d Jose A. Lopes
93 1c9e817d Jose A. Lopes
sshConfigDir :: String
94 1c9e817d Jose A. Lopes
sshConfigDir = AutoConf.sshConfigDir
95 1c9e817d Jose A. Lopes
96 1c9e817d Jose A. Lopes
xenConfigDir :: String
97 1c9e817d Jose A. Lopes
xenConfigDir = AutoConf.xenConfigDir
98 1c9e817d Jose A. Lopes
99 1c9e817d Jose A. Lopes
sysconfdir :: String
100 1c9e817d Jose A. Lopes
sysconfdir = AutoConf.sysconfdir
101 1c9e817d Jose A. Lopes
102 1c9e817d Jose A. Lopes
toolsdir :: String
103 1c9e817d Jose A. Lopes
toolsdir = AutoConf.toolsdir
104 1c9e817d Jose A. Lopes
105 1c9e817d Jose A. Lopes
localstatedir :: String
106 1c9e817d Jose A. Lopes
localstatedir = AutoConf.localstatedir
107 1c9e817d Jose A. Lopes
108 1c9e817d Jose A. Lopes
-- ** Paths which don't change for a virtual cluster
109 1c9e817d Jose A. Lopes
110 1c9e817d Jose A. Lopes
pkglibdir :: String
111 1c9e817d Jose A. Lopes
pkglibdir = AutoConf.pkglibdir
112 1c9e817d Jose A. Lopes
113 9bfcf2e9 Klaus Aehlig
sharedir :: String
114 9bfcf2e9 Klaus Aehlig
sharedir = AutoConf.sharedir
115 9bfcf2e9 Klaus Aehlig
116 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('lib/build/sphinx_ext.py')
117 1c9e817d Jose A. Lopes
118 1c9e817d Jose A. Lopes
manPages :: Map String Int
119 1c9e817d Jose A. Lopes
manPages = Map.fromList AutoConf.manPages
120 1c9e817d Jose A. Lopes
121 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for QA cluster only ('qa/qa_cluster.py')
122 1c9e817d Jose A. Lopes
123 1c9e817d Jose A. Lopes
versionedsharedir :: String
124 1c9e817d Jose A. Lopes
versionedsharedir = AutoConf.versionedsharedir
125 1c9e817d Jose A. Lopes
126 1c9e817d Jose A. Lopes
-- * 'autoconf' constants for Python only ('tests/py/docs_unittest.py')
127 1c9e817d Jose A. Lopes
128 1c9e817d Jose A. Lopes
gntScripts :: [String]
129 1c9e817d Jose A. Lopes
gntScripts = AutoConf.gntScripts
130 1c9e817d Jose A. Lopes
131 3b170ad4 Jose A. Lopes
-- * Various versions
132 3b170ad4 Jose A. Lopes
133 3b170ad4 Jose A. Lopes
releaseVersion :: String
134 3b170ad4 Jose A. Lopes
releaseVersion = AutoConf.packageVersion
135 3b170ad4 Jose A. Lopes
136 8c44d5b3 Klaus Aehlig
versionMajor :: Int
137 8c44d5b3 Klaus Aehlig
versionMajor = AutoConf.versionMajor
138 8c44d5b3 Klaus Aehlig
139 8c44d5b3 Klaus Aehlig
versionMinor :: Int
140 8c44d5b3 Klaus Aehlig
versionMinor = AutoConf.versionMinor
141 8c44d5b3 Klaus Aehlig
142 8c44d5b3 Klaus Aehlig
versionRevision :: Int
143 8c44d5b3 Klaus Aehlig
versionRevision = AutoConf.versionRevision
144 8c44d5b3 Klaus Aehlig
145 9b20010b Klaus Aehlig
dirVersion :: String
146 9b20010b Klaus Aehlig
dirVersion = AutoConf.dirVersion
147 9b20010b Klaus Aehlig
148 c87997d2 Jose A. Lopes
osApiV10 :: Int
149 c87997d2 Jose A. Lopes
osApiV10 = 10
150 c87997d2 Jose A. Lopes
151 c87997d2 Jose A. Lopes
osApiV15 :: Int
152 c87997d2 Jose A. Lopes
osApiV15 = 15
153 c87997d2 Jose A. Lopes
154 c87997d2 Jose A. Lopes
osApiV20 :: Int
155 c87997d2 Jose A. Lopes
osApiV20 = 20
156 c87997d2 Jose A. Lopes
157 c87997d2 Jose A. Lopes
osApiVersions :: FrozenSet Int
158 c87997d2 Jose A. Lopes
osApiVersions = ConstantUtils.mkSet [osApiV10, osApiV15, osApiV20]
159 c87997d2 Jose A. Lopes
160 14795b58 Jose A. Lopes
exportVersion :: Int
161 14795b58 Jose A. Lopes
exportVersion = 0
162 14795b58 Jose A. Lopes
163 14795b58 Jose A. Lopes
rapiVersion :: Int
164 14795b58 Jose A. Lopes
rapiVersion = 2
165 14795b58 Jose A. Lopes
166 3b170ad4 Jose A. Lopes
configMajor :: Int
167 3b170ad4 Jose A. Lopes
configMajor = AutoConf.versionMajor
168 3b170ad4 Jose A. Lopes
169 3b170ad4 Jose A. Lopes
configMinor :: Int
170 3b170ad4 Jose A. Lopes
configMinor = AutoConf.versionMinor
171 3b170ad4 Jose A. Lopes
172 3b170ad4 Jose A. Lopes
-- | The configuration is supposed to remain stable across
173 3b170ad4 Jose A. Lopes
-- revisions. Therefore, the revision number is cleared to '0'.
174 3b170ad4 Jose A. Lopes
configRevision :: Int
175 3b170ad4 Jose A. Lopes
configRevision = 0
176 3b170ad4 Jose A. Lopes
177 3b170ad4 Jose A. Lopes
configVersion :: Int
178 3b170ad4 Jose A. Lopes
configVersion = buildVersion configMajor configMinor configRevision
179 3b170ad4 Jose A. Lopes
180 3b170ad4 Jose A. Lopes
-- | Similarly to the configuration (see 'configRevision'), the
181 3b170ad4 Jose A. Lopes
-- protocols are supposed to remain stable across revisions.
182 3b170ad4 Jose A. Lopes
protocolVersion :: Int
183 3b170ad4 Jose A. Lopes
protocolVersion = buildVersion configMajor configMinor configRevision
184 3b170ad4 Jose A. Lopes
185 c890f66a Jose A. Lopes
-- * User separation
186 cdac0552 Jose A. Lopes
187 c890f66a Jose A. Lopes
daemonsGroup :: String
188 c890f66a Jose A. Lopes
daemonsGroup = Runtime.daemonGroup (ExtraGroup DaemonsGroup)
189 85c48fbb Jose A. Lopes
190 c890f66a Jose A. Lopes
adminGroup :: String
191 c890f66a Jose A. Lopes
adminGroup = Runtime.daemonGroup (ExtraGroup AdminGroup)
192 85c48fbb Jose A. Lopes
193 c890f66a Jose A. Lopes
masterdUser :: String
194 c890f66a Jose A. Lopes
masterdUser = Runtime.daemonUser GanetiMasterd
195 85c48fbb Jose A. Lopes
196 c890f66a Jose A. Lopes
masterdGroup :: String
197 c890f66a Jose A. Lopes
masterdGroup = Runtime.daemonGroup (DaemonGroup GanetiMasterd)
198 85c48fbb Jose A. Lopes
199 c890f66a Jose A. Lopes
rapiUser :: String
200 c890f66a Jose A. Lopes
rapiUser = Runtime.daemonUser GanetiRapi
201 85c48fbb Jose A. Lopes
202 c890f66a Jose A. Lopes
rapiGroup :: String
203 c890f66a Jose A. Lopes
rapiGroup = Runtime.daemonGroup (DaemonGroup GanetiRapi)
204 85c48fbb Jose A. Lopes
205 c890f66a Jose A. Lopes
confdUser :: String
206 c890f66a Jose A. Lopes
confdUser = Runtime.daemonUser GanetiConfd
207 85c48fbb Jose A. Lopes
208 c890f66a Jose A. Lopes
confdGroup :: String
209 c890f66a Jose A. Lopes
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
210 85c48fbb Jose A. Lopes
211 c890f66a Jose A. Lopes
luxidUser :: String
212 c890f66a Jose A. Lopes
luxidUser = Runtime.daemonUser GanetiLuxid
213 85c48fbb Jose A. Lopes
214 c890f66a Jose A. Lopes
luxidGroup :: String
215 c890f66a Jose A. Lopes
luxidGroup = Runtime.daemonGroup (DaemonGroup GanetiLuxid)
216 85c48fbb Jose A. Lopes
217 c890f66a Jose A. Lopes
nodedUser :: String
218 c890f66a Jose A. Lopes
nodedUser = Runtime.daemonUser GanetiNoded
219 85c48fbb Jose A. Lopes
220 c890f66a Jose A. Lopes
nodedGroup :: String
221 c890f66a Jose A. Lopes
nodedGroup = Runtime.daemonGroup (DaemonGroup GanetiNoded)
222 85c48fbb Jose A. Lopes
223 c890f66a Jose A. Lopes
mondUser :: String
224 c890f66a Jose A. Lopes
mondUser = Runtime.daemonUser GanetiMond
225 85c48fbb Jose A. Lopes
226 c890f66a Jose A. Lopes
mondGroup :: String
227 c890f66a Jose A. Lopes
mondGroup = Runtime.daemonGroup (DaemonGroup GanetiMond)
228 85c48fbb Jose A. Lopes
229 c890f66a Jose A. Lopes
sshLoginUser :: String
230 c890f66a Jose A. Lopes
sshLoginUser = AutoConf.sshLoginUser
231 85c48fbb Jose A. Lopes
232 c890f66a Jose A. Lopes
sshConsoleUser :: String
233 c890f66a Jose A. Lopes
sshConsoleUser = AutoConf.sshConsoleUser
234 85c48fbb Jose A. Lopes
235 e0cd6f5d Jose A. Lopes
-- * Cpu pinning separators and constants
236 e0cd6f5d Jose A. Lopes
237 e0cd6f5d Jose A. Lopes
cpuPinningSep :: String
238 e0cd6f5d Jose A. Lopes
cpuPinningSep = ":"
239 e0cd6f5d Jose A. Lopes
240 e0cd6f5d Jose A. Lopes
cpuPinningAll :: String
241 e0cd6f5d Jose A. Lopes
cpuPinningAll = "all"
242 e0cd6f5d Jose A. Lopes
243 e0cd6f5d Jose A. Lopes
-- | Internal representation of "all"
244 e0cd6f5d Jose A. Lopes
cpuPinningAllVal :: Int
245 e0cd6f5d Jose A. Lopes
cpuPinningAllVal = -1
246 e0cd6f5d Jose A. Lopes
247 e0cd6f5d Jose A. Lopes
-- | One "all" entry in a CPU list means CPU pinning is off
248 e0cd6f5d Jose A. Lopes
cpuPinningOff :: [Int]
249 e0cd6f5d Jose A. Lopes
cpuPinningOff = [cpuPinningAllVal]
250 e0cd6f5d Jose A. Lopes
251 e0cd6f5d Jose A. Lopes
-- | A Xen-specific implementation detail is that there is no way to
252 e0cd6f5d Jose A. Lopes
-- actually say "use any cpu for pinning" in a Xen configuration file,
253 e0cd6f5d Jose A. Lopes
-- as opposed to the command line, where you can say
254 e0cd6f5d Jose A. Lopes
-- @
255 e0cd6f5d Jose A. Lopes
-- xm vcpu-pin <domain> <vcpu> all
256 e0cd6f5d Jose A. Lopes
-- @
257 e0cd6f5d Jose A. Lopes
--
258 e0cd6f5d Jose A. Lopes
-- The workaround used in Xen is "0-63" (see source code function
259 e0cd6f5d Jose A. Lopes
-- "xm_vcpu_pin" in @<xen-source>/tools/python/xen/xm/main.py@).
260 e0cd6f5d Jose A. Lopes
--
261 e0cd6f5d Jose A. Lopes
-- To support future changes, the following constant is treated as a
262 e0cd6f5d Jose A. Lopes
-- blackbox string that simply means "use any cpu for pinning under
263 e0cd6f5d Jose A. Lopes
-- xen".
264 e0cd6f5d Jose A. Lopes
cpuPinningAllXen :: String
265 e0cd6f5d Jose A. Lopes
cpuPinningAllXen = "0-63"
266 e0cd6f5d Jose A. Lopes
267 e0cd6f5d Jose A. Lopes
-- | A KVM-specific implementation detail - the following value is
268 e0cd6f5d Jose A. Lopes
-- used to set CPU affinity to all processors (--0 through --31), per
269 e0cd6f5d Jose A. Lopes
-- taskset man page.
270 e0cd6f5d Jose A. Lopes
--
271 e0cd6f5d Jose A. Lopes
-- FIXME: This only works for machines with up to 32 CPU cores
272 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm :: Int
273 e0cd6f5d Jose A. Lopes
cpuPinningAllKvm = 0xFFFFFFFF
274 e0cd6f5d Jose A. Lopes
275 74129b52 Jose A. Lopes
-- * Wipe
276 74129b52 Jose A. Lopes
277 74129b52 Jose A. Lopes
ddCmd :: String
278 74129b52 Jose A. Lopes
ddCmd = "dd"
279 74129b52 Jose A. Lopes
280 74129b52 Jose A. Lopes
-- | 1GB
281 74129b52 Jose A. Lopes
maxWipeChunk :: Int
282 74129b52 Jose A. Lopes
maxWipeChunk = 1024
283 74129b52 Jose A. Lopes
284 74129b52 Jose A. Lopes
minWipeChunkPercent :: Int
285 74129b52 Jose A. Lopes
minWipeChunkPercent = 10
286 74129b52 Jose A. Lopes
287 74129b52 Jose A. Lopes
-- * Directories
288 74129b52 Jose A. Lopes
289 74129b52 Jose A. Lopes
runDirsMode :: Int
290 74129b52 Jose A. Lopes
runDirsMode = 0o775
291 74129b52 Jose A. Lopes
292 74129b52 Jose A. Lopes
secureDirMode :: Int
293 74129b52 Jose A. Lopes
secureDirMode = 0o700
294 74129b52 Jose A. Lopes
295 74129b52 Jose A. Lopes
secureFileMode :: Int
296 74129b52 Jose A. Lopes
secureFileMode = 0o600
297 74129b52 Jose A. Lopes
298 74129b52 Jose A. Lopes
adoptableBlockdevRoot :: String
299 74129b52 Jose A. Lopes
adoptableBlockdevRoot = "/dev/disk/"
300 74129b52 Jose A. Lopes
301 3b170ad4 Jose A. Lopes
-- * 'autoconf' enable/disable
302 3b170ad4 Jose A. Lopes
303 3b170ad4 Jose A. Lopes
enableConfd :: Bool
304 3b170ad4 Jose A. Lopes
enableConfd = AutoConf.enableConfd
305 3b170ad4 Jose A. Lopes
306 3b170ad4 Jose A. Lopes
enableMond :: Bool
307 3b170ad4 Jose A. Lopes
enableMond = AutoConf.enableMond
308 3b170ad4 Jose A. Lopes
309 3b170ad4 Jose A. Lopes
enableRestrictedCommands :: Bool
310 3b170ad4 Jose A. Lopes
enableRestrictedCommands = AutoConf.enableRestrictedCommands
311 3b170ad4 Jose A. Lopes
312 3b170ad4 Jose A. Lopes
enableSplitQuery :: Bool
313 3b170ad4 Jose A. Lopes
enableSplitQuery = AutoConf.enableSplitQuery
314 3b170ad4 Jose A. Lopes
315 c890f66a Jose A. Lopes
-- * SSH constants
316 85c48fbb Jose A. Lopes
317 c890f66a Jose A. Lopes
ssh :: String
318 c890f66a Jose A. Lopes
ssh = "ssh"
319 85c48fbb Jose A. Lopes
320 c890f66a Jose A. Lopes
scp :: String
321 c890f66a Jose A. Lopes
scp = "scp"
322 85c48fbb Jose A. Lopes
323 c890f66a Jose A. Lopes
-- * Daemons
324 85c48fbb Jose A. Lopes
325 c890f66a Jose A. Lopes
confd :: String
326 c890f66a Jose A. Lopes
confd = Runtime.daemonName GanetiConfd
327 85c48fbb Jose A. Lopes
328 c890f66a Jose A. Lopes
masterd :: String
329 c890f66a Jose A. Lopes
masterd = Runtime.daemonName GanetiMasterd
330 85c48fbb Jose A. Lopes
331 c890f66a Jose A. Lopes
mond :: String
332 c890f66a Jose A. Lopes
mond = Runtime.daemonName GanetiMond
333 85c48fbb Jose A. Lopes
334 c890f66a Jose A. Lopes
noded :: String
335 c890f66a Jose A. Lopes
noded = Runtime.daemonName GanetiNoded
336 85c48fbb Jose A. Lopes
337 c890f66a Jose A. Lopes
luxid :: String
338 c890f66a Jose A. Lopes
luxid = Runtime.daemonName GanetiLuxid
339 85c48fbb Jose A. Lopes
340 c890f66a Jose A. Lopes
rapi :: String
341 c890f66a Jose A. Lopes
rapi = Runtime.daemonName GanetiRapi
342 85c48fbb Jose A. Lopes
343 c890f66a Jose A. Lopes
daemons :: FrozenSet String
344 c890f66a Jose A. Lopes
daemons =
345 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [confd,
346 c890f66a Jose A. Lopes
                       luxid,
347 c890f66a Jose A. Lopes
                       masterd,
348 c890f66a Jose A. Lopes
                       mond,
349 c890f66a Jose A. Lopes
                       noded,
350 c890f66a Jose A. Lopes
                       rapi]
351 85c48fbb Jose A. Lopes
352 c890f66a Jose A. Lopes
defaultConfdPort :: Int
353 c890f66a Jose A. Lopes
defaultConfdPort = 1814
354 85c48fbb Jose A. Lopes
355 c890f66a Jose A. Lopes
defaultMondPort :: Int
356 c890f66a Jose A. Lopes
defaultMondPort = 1815
357 85c48fbb Jose A. Lopes
358 c890f66a Jose A. Lopes
defaultNodedPort :: Int
359 c890f66a Jose A. Lopes
defaultNodedPort = 1811
360 85c48fbb Jose A. Lopes
361 c890f66a Jose A. Lopes
defaultRapiPort :: Int
362 c890f66a Jose A. Lopes
defaultRapiPort = 5080
363 85c48fbb Jose A. Lopes
364 c890f66a Jose A. Lopes
daemonsPorts :: Map String (Protocol, Int)
365 c890f66a Jose A. Lopes
daemonsPorts =
366 c890f66a Jose A. Lopes
  Map.fromList [(confd, (Udp, defaultConfdPort)),
367 c890f66a Jose A. Lopes
                (mond, (Tcp, defaultMondPort)),
368 c890f66a Jose A. Lopes
                (noded, (Tcp, defaultNodedPort)),
369 c890f66a Jose A. Lopes
                (rapi, (Tcp, defaultRapiPort)),
370 c890f66a Jose A. Lopes
                (ssh, (Tcp, 22))]
371 85c48fbb Jose A. Lopes
372 74129b52 Jose A. Lopes
firstDrbdPort :: Int
373 74129b52 Jose A. Lopes
firstDrbdPort = 11000
374 74129b52 Jose A. Lopes
375 74129b52 Jose A. Lopes
lastDrbdPort :: Int
376 74129b52 Jose A. Lopes
lastDrbdPort = 14999
377 74129b52 Jose A. Lopes
378 c890f66a Jose A. Lopes
daemonsLogbase :: Map String String
379 c890f66a Jose A. Lopes
daemonsLogbase =
380 c890f66a Jose A. Lopes
  Map.fromList
381 c890f66a Jose A. Lopes
  [ (Runtime.daemonName d, Runtime.daemonLogBase d) | d <- [minBound..] ]
382 85c48fbb Jose A. Lopes
383 c890f66a Jose A. Lopes
extraLogreasonAccess :: String
384 c890f66a Jose A. Lopes
extraLogreasonAccess = Runtime.daemonsExtraLogbase GanetiMond AccessLog
385 85c48fbb Jose A. Lopes
386 c890f66a Jose A. Lopes
extraLogreasonError :: String
387 c890f66a Jose A. Lopes
extraLogreasonError = Runtime.daemonsExtraLogbase GanetiMond ErrorLog
388 85c48fbb Jose A. Lopes
389 c890f66a Jose A. Lopes
devConsole :: String
390 c890f66a Jose A. Lopes
devConsole = ConstantUtils.devConsole
391 85c48fbb Jose A. Lopes
392 0412a686 Jose A. Lopes
procMounts :: String
393 0412a686 Jose A. Lopes
procMounts = "/proc/mounts"
394 0412a686 Jose A. Lopes
395 5d4e1402 Jose A. Lopes
-- * Luxi (Local UniX Interface) related constants
396 5d4e1402 Jose A. Lopes
397 5d4e1402 Jose A. Lopes
luxiEom :: PythonChar
398 5d4e1402 Jose A. Lopes
luxiEom = PythonChar '\x03'
399 5d4e1402 Jose A. Lopes
400 5d4e1402 Jose A. Lopes
-- | Environment variable for the luxi override socket
401 5d4e1402 Jose A. Lopes
luxiOverride :: String
402 5d4e1402 Jose A. Lopes
luxiOverride = "FORCE_LUXI_SOCKET"
403 5d4e1402 Jose A. Lopes
404 5d4e1402 Jose A. Lopes
luxiOverrideMaster :: String
405 5d4e1402 Jose A. Lopes
luxiOverrideMaster = "master"
406 5d4e1402 Jose A. Lopes
407 5d4e1402 Jose A. Lopes
luxiOverrideQuery :: String
408 5d4e1402 Jose A. Lopes
luxiOverrideQuery = "query"
409 5d4e1402 Jose A. Lopes
410 5d4e1402 Jose A. Lopes
luxiVersion :: Int
411 5d4e1402 Jose A. Lopes
luxiVersion = configVersion
412 5d4e1402 Jose A. Lopes
413 c890f66a Jose A. Lopes
-- * Syslog
414 85c48fbb Jose A. Lopes
415 c890f66a Jose A. Lopes
syslogUsage :: String
416 c890f66a Jose A. Lopes
syslogUsage = AutoConf.syslogUsage
417 85c48fbb Jose A. Lopes
418 c890f66a Jose A. Lopes
syslogNo :: String
419 c890f66a Jose A. Lopes
syslogNo = Logging.syslogUsageToRaw SyslogNo
420 85c48fbb Jose A. Lopes
421 c890f66a Jose A. Lopes
syslogYes :: String
422 c890f66a Jose A. Lopes
syslogYes = Logging.syslogUsageToRaw SyslogYes
423 85c48fbb Jose A. Lopes
424 c890f66a Jose A. Lopes
syslogOnly :: String
425 c890f66a Jose A. Lopes
syslogOnly = Logging.syslogUsageToRaw SyslogOnly
426 85c48fbb Jose A. Lopes
427 c890f66a Jose A. Lopes
syslogSocket :: String
428 c890f66a Jose A. Lopes
syslogSocket = "/dev/log"
429 85c48fbb Jose A. Lopes
430 0412a686 Jose A. Lopes
exportConfFile :: String
431 0412a686 Jose A. Lopes
exportConfFile = "config.ini"
432 0412a686 Jose A. Lopes
433 c890f66a Jose A. Lopes
-- * Xen
434 85c48fbb Jose A. Lopes
435 c890f66a Jose A. Lopes
xenBootloader :: String
436 c890f66a Jose A. Lopes
xenBootloader = AutoConf.xenBootloader
437 85c48fbb Jose A. Lopes
438 c890f66a Jose A. Lopes
xenCmdXl :: String
439 c890f66a Jose A. Lopes
xenCmdXl = "xl"
440 85c48fbb Jose A. Lopes
441 c890f66a Jose A. Lopes
xenCmdXm :: String
442 c890f66a Jose A. Lopes
xenCmdXm = "xm"
443 85c48fbb Jose A. Lopes
444 c890f66a Jose A. Lopes
xenInitrd :: String
445 c890f66a Jose A. Lopes
xenInitrd = AutoConf.xenInitrd
446 85c48fbb Jose A. Lopes
447 c890f66a Jose A. Lopes
xenKernel :: String
448 c890f66a Jose A. Lopes
xenKernel = AutoConf.xenKernel
449 85c48fbb Jose A. Lopes
450 c890f66a Jose A. Lopes
-- FIXME: perhaps rename to 'validXenCommands' for consistency with
451 c890f66a Jose A. Lopes
-- other constants
452 c890f66a Jose A. Lopes
knownXenCommands :: FrozenSet String
453 c890f66a Jose A. Lopes
knownXenCommands = ConstantUtils.mkSet [xenCmdXl, xenCmdXm]
454 85c48fbb Jose A. Lopes
455 3b170ad4 Jose A. Lopes
-- * KVM and socat
456 3b170ad4 Jose A. Lopes
457 3b170ad4 Jose A. Lopes
kvmPath :: String
458 3b170ad4 Jose A. Lopes
kvmPath = AutoConf.kvmPath
459 3b170ad4 Jose A. Lopes
460 3b170ad4 Jose A. Lopes
kvmKernel :: String
461 3b170ad4 Jose A. Lopes
kvmKernel = AutoConf.kvmKernel
462 3b170ad4 Jose A. Lopes
463 3b170ad4 Jose A. Lopes
socatEscapeCode :: String
464 3b170ad4 Jose A. Lopes
socatEscapeCode = "0x1d"
465 3b170ad4 Jose A. Lopes
466 3b170ad4 Jose A. Lopes
socatPath :: String
467 3b170ad4 Jose A. Lopes
socatPath = AutoConf.socatPath
468 3b170ad4 Jose A. Lopes
469 3b170ad4 Jose A. Lopes
socatUseCompress :: Bool
470 3b170ad4 Jose A. Lopes
socatUseCompress = AutoConf.socatUseCompress
471 3b170ad4 Jose A. Lopes
472 3b170ad4 Jose A. Lopes
socatUseEscape :: Bool
473 3b170ad4 Jose A. Lopes
socatUseEscape = AutoConf.socatUseEscape
474 3b170ad4 Jose A. Lopes
475 3f5fd161 Jose A. Lopes
-- * Console types
476 3f5fd161 Jose A. Lopes
477 3f5fd161 Jose A. Lopes
-- | Display a message for console access
478 3f5fd161 Jose A. Lopes
consMessage :: String
479 3f5fd161 Jose A. Lopes
consMessage = "msg"
480 3f5fd161 Jose A. Lopes
481 3f5fd161 Jose A. Lopes
-- | Console as SPICE server
482 3f5fd161 Jose A. Lopes
consSpice :: String
483 3f5fd161 Jose A. Lopes
consSpice = "spice"
484 3f5fd161 Jose A. Lopes
485 3f5fd161 Jose A. Lopes
-- | Console as SSH command
486 3f5fd161 Jose A. Lopes
consSsh :: String
487 3f5fd161 Jose A. Lopes
consSsh = "ssh"
488 3f5fd161 Jose A. Lopes
489 3f5fd161 Jose A. Lopes
-- | Console as VNC server
490 3f5fd161 Jose A. Lopes
consVnc :: String
491 3f5fd161 Jose A. Lopes
consVnc = "vnc"
492 3f5fd161 Jose A. Lopes
493 3f5fd161 Jose A. Lopes
consAll :: FrozenSet String
494 3f5fd161 Jose A. Lopes
consAll = ConstantUtils.mkSet [consMessage, consSpice, consSsh, consVnc]
495 3f5fd161 Jose A. Lopes
496 3f5fd161 Jose A. Lopes
-- | RSA key bit length
497 3f5fd161 Jose A. Lopes
--
498 3f5fd161 Jose A. Lopes
-- For RSA keys more bits are better, but they also make operations
499 3f5fd161 Jose A. Lopes
-- more expensive. NIST SP 800-131 recommends a minimum of 2048 bits
500 3f5fd161 Jose A. Lopes
-- from the year 2010 on.
501 3f5fd161 Jose A. Lopes
rsaKeyBits :: Int
502 3f5fd161 Jose A. Lopes
rsaKeyBits = 2048
503 3f5fd161 Jose A. Lopes
504 3f5fd161 Jose A. Lopes
-- | Ciphers allowed for SSL connections.
505 3f5fd161 Jose A. Lopes
--
506 3f5fd161 Jose A. Lopes
-- For the format, see ciphers(1). A better way to disable ciphers
507 3f5fd161 Jose A. Lopes
-- would be to use the exclamation mark (!), but socat versions below
508 3f5fd161 Jose A. Lopes
-- 1.5 can't parse exclamation marks in options properly. When
509 3f5fd161 Jose A. Lopes
-- modifying the ciphers, ensure not to accidentially add something
510 3f5fd161 Jose A. Lopes
-- after it's been removed. Use the "openssl" utility to check the
511 3f5fd161 Jose A. Lopes
-- allowed ciphers, e.g.  "openssl ciphers -v HIGH:-DES".
512 3f5fd161 Jose A. Lopes
opensslCiphers :: String
513 3f5fd161 Jose A. Lopes
opensslCiphers = "HIGH:-DES:-3DES:-EXPORT:-ADH"
514 3f5fd161 Jose A. Lopes
515 3f5fd161 Jose A. Lopes
-- * X509
516 3f5fd161 Jose A. Lopes
517 3f5fd161 Jose A. Lopes
-- | commonName (CN) used in certificates
518 3f5fd161 Jose A. Lopes
x509CertCn :: String
519 3f5fd161 Jose A. Lopes
x509CertCn = "ganeti.example.com"
520 3f5fd161 Jose A. Lopes
521 3f5fd161 Jose A. Lopes
-- | Default validity of certificates in days
522 3f5fd161 Jose A. Lopes
x509CertDefaultValidity :: Int
523 3f5fd161 Jose A. Lopes
x509CertDefaultValidity = 365 * 5
524 3f5fd161 Jose A. Lopes
525 3f5fd161 Jose A. Lopes
x509CertSignatureHeader :: String
526 3f5fd161 Jose A. Lopes
x509CertSignatureHeader = "X-Ganeti-Signature"
527 3f5fd161 Jose A. Lopes
528 3f5fd161 Jose A. Lopes
-- | Digest used to sign certificates ("openssl x509" uses SHA1 by default)
529 3f5fd161 Jose A. Lopes
x509CertSignDigest :: String
530 3f5fd161 Jose A. Lopes
x509CertSignDigest = "SHA1"
531 3f5fd161 Jose A. Lopes
532 3f5fd161 Jose A. Lopes
-- * Import/export daemon mode
533 3f5fd161 Jose A. Lopes
534 3f5fd161 Jose A. Lopes
iemExport :: String
535 3f5fd161 Jose A. Lopes
iemExport = "export"
536 3f5fd161 Jose A. Lopes
537 3f5fd161 Jose A. Lopes
iemImport :: String
538 3f5fd161 Jose A. Lopes
iemImport = "import"
539 3f5fd161 Jose A. Lopes
540 3f5fd161 Jose A. Lopes
-- * Import/export transport compression
541 3f5fd161 Jose A. Lopes
542 3f5fd161 Jose A. Lopes
iecGzip :: String
543 3f5fd161 Jose A. Lopes
iecGzip = "gzip"
544 3f5fd161 Jose A. Lopes
545 3f5fd161 Jose A. Lopes
iecNone :: String
546 3f5fd161 Jose A. Lopes
iecNone = "none"
547 3f5fd161 Jose A. Lopes
548 3f5fd161 Jose A. Lopes
iecAll :: [String]
549 3f5fd161 Jose A. Lopes
iecAll = [iecGzip, iecNone]
550 3f5fd161 Jose A. Lopes
551 3f5fd161 Jose A. Lopes
ieCustomSize :: String
552 3f5fd161 Jose A. Lopes
ieCustomSize = "fd"
553 3f5fd161 Jose A. Lopes
554 3f5fd161 Jose A. Lopes
-- * Import/export I/O
555 3f5fd161 Jose A. Lopes
556 3f5fd161 Jose A. Lopes
-- | Direct file I/O, equivalent to a shell's I/O redirection using
557 3f5fd161 Jose A. Lopes
-- '<' or '>'
558 3f5fd161 Jose A. Lopes
ieioFile :: String
559 3f5fd161 Jose A. Lopes
ieioFile = "file"
560 3f5fd161 Jose A. Lopes
561 3f5fd161 Jose A. Lopes
-- | Raw block device I/O using "dd"
562 3f5fd161 Jose A. Lopes
ieioRawDisk :: String
563 3f5fd161 Jose A. Lopes
ieioRawDisk = "raw"
564 3f5fd161 Jose A. Lopes
565 3f5fd161 Jose A. Lopes
-- | OS definition import/export script
566 3f5fd161 Jose A. Lopes
ieioScript :: String
567 3f5fd161 Jose A. Lopes
ieioScript = "script"
568 3f5fd161 Jose A. Lopes
569 3f5fd161 Jose A. Lopes
-- * Hooks
570 3f5fd161 Jose A. Lopes
571 3f5fd161 Jose A. Lopes
hooksNameCfgupdate :: String
572 3f5fd161 Jose A. Lopes
hooksNameCfgupdate = "config-update"
573 3f5fd161 Jose A. Lopes
574 3f5fd161 Jose A. Lopes
hooksNameWatcher :: String
575 3f5fd161 Jose A. Lopes
hooksNameWatcher = "watcher"
576 3f5fd161 Jose A. Lopes
577 3f5fd161 Jose A. Lopes
hooksPath :: String
578 3f5fd161 Jose A. Lopes
hooksPath = "/sbin:/bin:/usr/sbin:/usr/bin"
579 3f5fd161 Jose A. Lopes
580 3f5fd161 Jose A. Lopes
hooksPhasePost :: String
581 3f5fd161 Jose A. Lopes
hooksPhasePost = "post"
582 3f5fd161 Jose A. Lopes
583 3f5fd161 Jose A. Lopes
hooksPhasePre :: String
584 3f5fd161 Jose A. Lopes
hooksPhasePre = "pre"
585 3f5fd161 Jose A. Lopes
586 3f5fd161 Jose A. Lopes
hooksVersion :: Int
587 3f5fd161 Jose A. Lopes
hooksVersion = 2
588 3f5fd161 Jose A. Lopes
589 3f5fd161 Jose A. Lopes
-- * Hooks subject type (what object type does the LU deal with)
590 3f5fd161 Jose A. Lopes
591 3f5fd161 Jose A. Lopes
htypeCluster :: String
592 3f5fd161 Jose A. Lopes
htypeCluster = "CLUSTER"
593 3f5fd161 Jose A. Lopes
594 3f5fd161 Jose A. Lopes
htypeGroup :: String
595 3f5fd161 Jose A. Lopes
htypeGroup = "GROUP"
596 3f5fd161 Jose A. Lopes
597 3f5fd161 Jose A. Lopes
htypeInstance :: String
598 3f5fd161 Jose A. Lopes
htypeInstance = "INSTANCE"
599 3f5fd161 Jose A. Lopes
600 3f5fd161 Jose A. Lopes
htypeNetwork :: String
601 3f5fd161 Jose A. Lopes
htypeNetwork = "NETWORK"
602 3f5fd161 Jose A. Lopes
603 3f5fd161 Jose A. Lopes
htypeNode :: String
604 3f5fd161 Jose A. Lopes
htypeNode = "NODE"
605 3f5fd161 Jose A. Lopes
606 3f5fd161 Jose A. Lopes
-- * Hkr
607 3f5fd161 Jose A. Lopes
608 3f5fd161 Jose A. Lopes
hkrSkip :: Int
609 3f5fd161 Jose A. Lopes
hkrSkip = 0
610 3f5fd161 Jose A. Lopes
611 3f5fd161 Jose A. Lopes
hkrFail :: Int
612 3f5fd161 Jose A. Lopes
hkrFail = 1
613 3f5fd161 Jose A. Lopes
614 3f5fd161 Jose A. Lopes
hkrSuccess :: Int
615 3f5fd161 Jose A. Lopes
hkrSuccess = 2
616 3f5fd161 Jose A. Lopes
617 c890f66a Jose A. Lopes
-- * Storage types
618 85c48fbb Jose A. Lopes
619 c890f66a Jose A. Lopes
stBlock :: String
620 c890f66a Jose A. Lopes
stBlock = Types.storageTypeToRaw StorageBlock
621 85c48fbb Jose A. Lopes
622 c890f66a Jose A. Lopes
stDiskless :: String
623 c890f66a Jose A. Lopes
stDiskless = Types.storageTypeToRaw StorageDiskless
624 85c48fbb Jose A. Lopes
625 c890f66a Jose A. Lopes
stExt :: String
626 c890f66a Jose A. Lopes
stExt = Types.storageTypeToRaw StorageExt
627 85c48fbb Jose A. Lopes
628 c890f66a Jose A. Lopes
stFile :: String
629 c890f66a Jose A. Lopes
stFile = Types.storageTypeToRaw StorageFile
630 85c48fbb Jose A. Lopes
631 c890f66a Jose A. Lopes
stLvmPv :: String
632 c890f66a Jose A. Lopes
stLvmPv = Types.storageTypeToRaw StorageLvmPv
633 85c48fbb Jose A. Lopes
634 c890f66a Jose A. Lopes
stLvmVg :: String
635 c890f66a Jose A. Lopes
stLvmVg = Types.storageTypeToRaw StorageLvmVg
636 85c48fbb Jose A. Lopes
637 c890f66a Jose A. Lopes
stRados :: String
638 c890f66a Jose A. Lopes
stRados = Types.storageTypeToRaw StorageRados
639 85c48fbb Jose A. Lopes
640 c890f66a Jose A. Lopes
storageTypes :: FrozenSet String
641 c890f66a Jose A. Lopes
storageTypes = ConstantUtils.mkSet $ map Types.storageTypeToRaw [minBound..]
642 85c48fbb Jose A. Lopes
643 9be1ff8c Jose A. Lopes
-- | The set of storage types for which storage reporting is available
644 9be1ff8c Jose A. Lopes
--
645 9be1ff8c Jose A. Lopes
-- FIXME: Remove this, once storage reporting is available for all
646 9be1ff8c Jose A. Lopes
-- types.
647 9be1ff8c Jose A. Lopes
stsReport :: FrozenSet String
648 9be1ff8c Jose A. Lopes
stsReport = ConstantUtils.mkSet [stFile, stLvmPv, stLvmVg]
649 9be1ff8c Jose A. Lopes
650 c890f66a Jose A. Lopes
-- * Storage fields
651 c890f66a Jose A. Lopes
-- ** First two are valid in LU context only, not passed to backend
652 85c48fbb Jose A. Lopes
653 c890f66a Jose A. Lopes
sfNode :: String
654 c890f66a Jose A. Lopes
sfNode = "node"
655 85c48fbb Jose A. Lopes
656 c890f66a Jose A. Lopes
sfType :: String
657 c890f66a Jose A. Lopes
sfType = "type"
658 85c48fbb Jose A. Lopes
659 c890f66a Jose A. Lopes
-- ** and the rest are valid in backend
660 85c48fbb Jose A. Lopes
661 c890f66a Jose A. Lopes
sfAllocatable :: String
662 c890f66a Jose A. Lopes
sfAllocatable = Types.storageFieldToRaw SFAllocatable
663 85c48fbb Jose A. Lopes
664 c890f66a Jose A. Lopes
sfFree :: String
665 c890f66a Jose A. Lopes
sfFree = Types.storageFieldToRaw SFFree
666 85c48fbb Jose A. Lopes
667 c890f66a Jose A. Lopes
sfName :: String
668 c890f66a Jose A. Lopes
sfName = Types.storageFieldToRaw SFName
669 85c48fbb Jose A. Lopes
670 c890f66a Jose A. Lopes
sfSize :: String
671 c890f66a Jose A. Lopes
sfSize = Types.storageFieldToRaw SFSize
672 85c48fbb Jose A. Lopes
673 c890f66a Jose A. Lopes
sfUsed :: String
674 c890f66a Jose A. Lopes
sfUsed = Types.storageFieldToRaw SFUsed
675 85c48fbb Jose A. Lopes
676 9be1ff8c Jose A. Lopes
validStorageFields :: FrozenSet String
677 9be1ff8c Jose A. Lopes
validStorageFields =
678 9be1ff8c Jose A. Lopes
  ConstantUtils.mkSet $ map Types.storageFieldToRaw [minBound..] ++
679 9be1ff8c Jose A. Lopes
                        [sfNode, sfType]
680 9be1ff8c Jose A. Lopes
681 9be1ff8c Jose A. Lopes
modifiableStorageFields :: Map String (FrozenSet String)
682 9be1ff8c Jose A. Lopes
modifiableStorageFields =
683 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmPv,
684 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [sfAllocatable])]
685 9be1ff8c Jose A. Lopes
686 9be1ff8c Jose A. Lopes
-- * Storage operations
687 9be1ff8c Jose A. Lopes
688 9be1ff8c Jose A. Lopes
soFixConsistency :: String
689 9be1ff8c Jose A. Lopes
soFixConsistency = "fix-consistency"
690 9be1ff8c Jose A. Lopes
691 9be1ff8c Jose A. Lopes
validStorageOperations :: Map String (FrozenSet String)
692 9be1ff8c Jose A. Lopes
validStorageOperations =
693 9be1ff8c Jose A. Lopes
  Map.fromList [(Types.storageTypeToRaw StorageLvmVg,
694 9be1ff8c Jose A. Lopes
                 ConstantUtils.mkSet [soFixConsistency])]
695 9be1ff8c Jose A. Lopes
696 9be1ff8c Jose A. Lopes
-- * Volume fields
697 9be1ff8c Jose A. Lopes
698 9be1ff8c Jose A. Lopes
vfDev :: String
699 9be1ff8c Jose A. Lopes
vfDev = "dev"
700 9be1ff8c Jose A. Lopes
701 9be1ff8c Jose A. Lopes
vfInstance :: String
702 9be1ff8c Jose A. Lopes
vfInstance = "instance"
703 9be1ff8c Jose A. Lopes
704 9be1ff8c Jose A. Lopes
vfName :: String
705 9be1ff8c Jose A. Lopes
vfName = "name"
706 9be1ff8c Jose A. Lopes
707 9be1ff8c Jose A. Lopes
vfNode :: String
708 9be1ff8c Jose A. Lopes
vfNode = "node"
709 9be1ff8c Jose A. Lopes
710 9be1ff8c Jose A. Lopes
vfPhys :: String
711 9be1ff8c Jose A. Lopes
vfPhys = "phys"
712 9be1ff8c Jose A. Lopes
713 9be1ff8c Jose A. Lopes
vfSize :: String
714 9be1ff8c Jose A. Lopes
vfSize = "size"
715 9be1ff8c Jose A. Lopes
716 9be1ff8c Jose A. Lopes
vfVg :: String
717 9be1ff8c Jose A. Lopes
vfVg = "vg"
718 9be1ff8c Jose A. Lopes
719 59bcd180 Jose A. Lopes
-- * Local disk status
720 59bcd180 Jose A. Lopes
721 59bcd180 Jose A. Lopes
ldsFaulty :: Int
722 59bcd180 Jose A. Lopes
ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
723 59bcd180 Jose A. Lopes
724 59bcd180 Jose A. Lopes
ldsOkay :: Int
725 59bcd180 Jose A. Lopes
ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
726 59bcd180 Jose A. Lopes
727 59bcd180 Jose A. Lopes
ldsUnknown :: Int
728 59bcd180 Jose A. Lopes
ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
729 59bcd180 Jose A. Lopes
730 59bcd180 Jose A. Lopes
ldsNames :: Map Int String
731 59bcd180 Jose A. Lopes
ldsNames =
732 59bcd180 Jose A. Lopes
  Map.fromList [ (Types.localDiskStatusToRaw ds,
733 59bcd180 Jose A. Lopes
                  localDiskStatusName ds) | ds <- [minBound..] ]
734 59bcd180 Jose A. Lopes
735 c890f66a Jose A. Lopes
-- * Disk template types
736 85c48fbb Jose A. Lopes
737 c890f66a Jose A. Lopes
dtDiskless :: String
738 c890f66a Jose A. Lopes
dtDiskless = Types.diskTemplateToRaw DTDiskless
739 85c48fbb Jose A. Lopes
740 c890f66a Jose A. Lopes
dtFile :: String
741 c890f66a Jose A. Lopes
dtFile = Types.diskTemplateToRaw DTFile
742 85c48fbb Jose A. Lopes
743 c890f66a Jose A. Lopes
dtSharedFile :: String
744 c890f66a Jose A. Lopes
dtSharedFile = Types.diskTemplateToRaw DTSharedFile
745 85c48fbb Jose A. Lopes
746 c890f66a Jose A. Lopes
dtPlain :: String
747 c890f66a Jose A. Lopes
dtPlain = Types.diskTemplateToRaw DTPlain
748 85c48fbb Jose A. Lopes
749 c890f66a Jose A. Lopes
dtBlock :: String
750 c890f66a Jose A. Lopes
dtBlock = Types.diskTemplateToRaw DTBlock
751 85c48fbb Jose A. Lopes
752 c890f66a Jose A. Lopes
dtDrbd8 :: String
753 c890f66a Jose A. Lopes
dtDrbd8 = Types.diskTemplateToRaw DTDrbd8
754 85c48fbb Jose A. Lopes
755 c890f66a Jose A. Lopes
dtRbd :: String
756 c890f66a Jose A. Lopes
dtRbd = Types.diskTemplateToRaw DTRbd
757 85c48fbb Jose A. Lopes
758 c890f66a Jose A. Lopes
dtExt :: String
759 c890f66a Jose A. Lopes
dtExt = Types.diskTemplateToRaw DTExt
760 85c48fbb Jose A. Lopes
761 c890f66a Jose A. Lopes
-- | This is used to order determine the default disk template when
762 c890f66a Jose A. Lopes
-- the list of enabled disk templates is inferred from the current
763 c890f66a Jose A. Lopes
-- state of the cluster.  This only happens on an upgrade from a
764 c890f66a Jose A. Lopes
-- version of Ganeti that did not support the 'enabled_disk_templates'
765 c890f66a Jose A. Lopes
-- so far.
766 c890f66a Jose A. Lopes
diskTemplatePreference :: [String]
767 c890f66a Jose A. Lopes
diskTemplatePreference =
768 c890f66a Jose A. Lopes
  map Types.diskTemplateToRaw
769 c890f66a Jose A. Lopes
  [DTBlock, DTDiskless, DTDrbd8, DTExt, DTFile, DTPlain, DTRbd, DTSharedFile]
770 85c48fbb Jose A. Lopes
771 c890f66a Jose A. Lopes
diskTemplates :: FrozenSet String
772 c890f66a Jose A. Lopes
diskTemplates = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [minBound..]
773 85c48fbb Jose A. Lopes
774 c890f66a Jose A. Lopes
-- | Disk templates that are enabled by default
775 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates :: [String]
776 c890f66a Jose A. Lopes
defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
777 85c48fbb Jose A. Lopes
778 9be1ff8c Jose A. Lopes
-- | Mapping of disk templates to storage types
779 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType :: Map String String
780 9be1ff8c Jose A. Lopes
mapDiskTemplateStorageType =
781 9be1ff8c Jose A. Lopes
  Map.fromList $
782 9be1ff8c Jose A. Lopes
  map (Types.diskTemplateToRaw *** Types.storageTypeToRaw)
783 9be1ff8c Jose A. Lopes
  [(DTBlock, StorageBlock),
784 9be1ff8c Jose A. Lopes
   (DTDrbd8, StorageLvmVg),
785 9be1ff8c Jose A. Lopes
   (DTExt, StorageExt),
786 9be1ff8c Jose A. Lopes
   (DTSharedFile, StorageFile),
787 9be1ff8c Jose A. Lopes
   (DTFile, StorageFile),
788 9be1ff8c Jose A. Lopes
   (DTDiskless, StorageDiskless),
789 9be1ff8c Jose A. Lopes
   (DTPlain, StorageLvmVg),
790 9be1ff8c Jose A. Lopes
   (DTRbd, StorageRados)]
791 9be1ff8c Jose A. Lopes
792 4c1275f9 Jose A. Lopes
-- | The set of network-mirrored disk templates
793 4c1275f9 Jose A. Lopes
dtsIntMirror :: FrozenSet String
794 4c1275f9 Jose A. Lopes
dtsIntMirror = ConstantUtils.mkSet [dtDrbd8]
795 4c1275f9 Jose A. Lopes
796 4c1275f9 Jose A. Lopes
-- | 'DTDiskless' is 'trivially' externally mirrored
797 4c1275f9 Jose A. Lopes
dtsExtMirror :: FrozenSet String
798 4c1275f9 Jose A. Lopes
dtsExtMirror =
799 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
800 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTDiskless, DTBlock, DTExt, DTSharedFile, DTRbd]
801 4c1275f9 Jose A. Lopes
802 4c1275f9 Jose A. Lopes
-- | The set of non-lvm-based disk templates
803 4c1275f9 Jose A. Lopes
dtsNotLvm :: FrozenSet String
804 4c1275f9 Jose A. Lopes
dtsNotLvm =
805 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
806 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
807 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDiskless, DTBlock, DTExt, DTFile, DTRbd]
808 4c1275f9 Jose A. Lopes
809 4c1275f9 Jose A. Lopes
-- | The set of disk templates which can be grown
810 4c1275f9 Jose A. Lopes
dtsGrowable :: FrozenSet String
811 4c1275f9 Jose A. Lopes
dtsGrowable =
812 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
813 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw
814 4c1275f9 Jose A. Lopes
  [DTSharedFile, DTDrbd8, DTPlain, DTExt, DTFile, DTRbd]
815 4c1275f9 Jose A. Lopes
816 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow adoption
817 4c1275f9 Jose A. Lopes
dtsMayAdopt :: FrozenSet String
818 4c1275f9 Jose A. Lopes
dtsMayAdopt =
819 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTBlock, DTPlain]
820 4c1275f9 Jose A. Lopes
821 4c1275f9 Jose A. Lopes
-- | The set of disk templates that *must* use adoption
822 4c1275f9 Jose A. Lopes
dtsMustAdopt :: FrozenSet String
823 4c1275f9 Jose A. Lopes
dtsMustAdopt = ConstantUtils.mkSet [Types.diskTemplateToRaw DTBlock]
824 4c1275f9 Jose A. Lopes
825 4c1275f9 Jose A. Lopes
-- | The set of disk templates that allow migrations
826 4c1275f9 Jose A. Lopes
dtsMirrored :: FrozenSet String
827 4c1275f9 Jose A. Lopes
dtsMirrored = dtsIntMirror `ConstantUtils.union` dtsExtMirror
828 4c1275f9 Jose A. Lopes
829 4c1275f9 Jose A. Lopes
-- | The set of file based disk templates
830 4c1275f9 Jose A. Lopes
dtsFilebased :: FrozenSet String
831 4c1275f9 Jose A. Lopes
dtsFilebased =
832 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTSharedFile, DTFile]
833 4c1275f9 Jose A. Lopes
834 4c1275f9 Jose A. Lopes
-- | The set of disk templates that can be moved by copying
835 4c1275f9 Jose A. Lopes
--
836 4c1275f9 Jose A. Lopes
-- Note: a requirement is that they're not accessed externally or
837 4c1275f9 Jose A. Lopes
-- shared between nodes; in particular, sharedfile is not suitable.
838 4c1275f9 Jose A. Lopes
dtsCopyable :: FrozenSet String
839 4c1275f9 Jose A. Lopes
dtsCopyable =
840 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTFile]
841 4c1275f9 Jose A. Lopes
842 4c1275f9 Jose A. Lopes
-- | The set of disk templates that are supported by exclusive_storage
843 4c1275f9 Jose A. Lopes
dtsExclStorage :: FrozenSet String
844 4c1275f9 Jose A. Lopes
dtsExclStorage = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain]
845 4c1275f9 Jose A. Lopes
846 4c1275f9 Jose A. Lopes
-- | Templates for which we don't perform checks on free space
847 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck :: FrozenSet String
848 4c1275f9 Jose A. Lopes
dtsNoFreeSpaceCheck =
849 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
850 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTExt, DTSharedFile, DTFile, DTRbd]
851 4c1275f9 Jose A. Lopes
852 4c1275f9 Jose A. Lopes
dtsBlock :: FrozenSet String
853 4c1275f9 Jose A. Lopes
dtsBlock =
854 4c1275f9 Jose A. Lopes
  ConstantUtils.mkSet $
855 4c1275f9 Jose A. Lopes
  map Types.diskTemplateToRaw [DTPlain, DTDrbd8, DTBlock, DTRbd, DTExt]
856 4c1275f9 Jose A. Lopes
857 c5539592 Jose A. Lopes
-- * Drbd
858 c5539592 Jose A. Lopes
859 c5539592 Jose A. Lopes
drbdHmacAlg :: String
860 c5539592 Jose A. Lopes
drbdHmacAlg = "md5"
861 c5539592 Jose A. Lopes
862 c5539592 Jose A. Lopes
drbdDefaultNetProtocol :: String
863 c5539592 Jose A. Lopes
drbdDefaultNetProtocol = "C"
864 c5539592 Jose A. Lopes
865 c5539592 Jose A. Lopes
drbdMigrationNetProtocol :: String
866 c5539592 Jose A. Lopes
drbdMigrationNetProtocol = "C"
867 c5539592 Jose A. Lopes
868 c5539592 Jose A. Lopes
drbdStatusFile :: String
869 c5539592 Jose A. Lopes
drbdStatusFile = "/proc/drbd"
870 c5539592 Jose A. Lopes
871 c5539592 Jose A. Lopes
-- | Size of DRBD meta block device
872 c5539592 Jose A. Lopes
drbdMetaSize :: Int
873 c5539592 Jose A. Lopes
drbdMetaSize = 128
874 c5539592 Jose A. Lopes
875 c5539592 Jose A. Lopes
-- * Drbd barrier types
876 c5539592 Jose A. Lopes
877 c5539592 Jose A. Lopes
drbdBDiskBarriers :: String
878 c5539592 Jose A. Lopes
drbdBDiskBarriers = "b"
879 c5539592 Jose A. Lopes
880 c5539592 Jose A. Lopes
drbdBDiskDrain :: String
881 c5539592 Jose A. Lopes
drbdBDiskDrain = "d"
882 c5539592 Jose A. Lopes
883 c5539592 Jose A. Lopes
drbdBDiskFlush :: String
884 c5539592 Jose A. Lopes
drbdBDiskFlush = "f"
885 c5539592 Jose A. Lopes
886 c5539592 Jose A. Lopes
drbdBNone :: String
887 c5539592 Jose A. Lopes
drbdBNone = "n"
888 c5539592 Jose A. Lopes
889 c5539592 Jose A. Lopes
-- | Rbd tool command
890 c5539592 Jose A. Lopes
rbdCmd :: String
891 c5539592 Jose A. Lopes
rbdCmd = "rbd"
892 c5539592 Jose A. Lopes
893 c890f66a Jose A. Lopes
-- * File backend driver
894 85c48fbb Jose A. Lopes
895 c890f66a Jose A. Lopes
fdBlktap :: String
896 c890f66a Jose A. Lopes
fdBlktap = Types.fileDriverToRaw FileBlktap
897 85c48fbb Jose A. Lopes
898 c890f66a Jose A. Lopes
fdLoop :: String
899 c890f66a Jose A. Lopes
fdLoop = Types.fileDriverToRaw FileLoop
900 85c48fbb Jose A. Lopes
901 ad6f2bf3 Jose A. Lopes
fileDriver :: FrozenSet String
902 ad6f2bf3 Jose A. Lopes
fileDriver =
903 ad6f2bf3 Jose A. Lopes
  ConstantUtils.mkSet $
904 ad6f2bf3 Jose A. Lopes
  map Types.fileDriverToRaw [minBound..]
905 ad6f2bf3 Jose A. Lopes
906 59bcd180 Jose A. Lopes
-- | The set of drbd-like disk types
907 59bcd180 Jose A. Lopes
ldsDrbd :: FrozenSet String
908 59bcd180 Jose A. Lopes
ldsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
909 59bcd180 Jose A. Lopes
910 c890f66a Jose A. Lopes
-- * Disk access mode
911 85c48fbb Jose A. Lopes
912 c890f66a Jose A. Lopes
diskRdonly :: String
913 c890f66a Jose A. Lopes
diskRdonly = Types.diskModeToRaw DiskRdOnly
914 85c48fbb Jose A. Lopes
915 c890f66a Jose A. Lopes
diskRdwr :: String
916 c890f66a Jose A. Lopes
diskRdwr = Types.diskModeToRaw DiskRdWr
917 85c48fbb Jose A. Lopes
918 c890f66a Jose A. Lopes
diskAccessSet :: FrozenSet String
919 c890f66a Jose A. Lopes
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
920 85c48fbb Jose A. Lopes
921 a5450d2a Jose A. Lopes
-- * Disk replacement mode
922 a5450d2a Jose A. Lopes
923 a5450d2a Jose A. Lopes
replaceDiskAuto :: String
924 a5450d2a Jose A. Lopes
replaceDiskAuto = Types.replaceDisksModeToRaw ReplaceAuto
925 a5450d2a Jose A. Lopes
926 a5450d2a Jose A. Lopes
replaceDiskChg :: String
927 a5450d2a Jose A. Lopes
replaceDiskChg = Types.replaceDisksModeToRaw ReplaceNewSecondary
928 a5450d2a Jose A. Lopes
929 a5450d2a Jose A. Lopes
replaceDiskPri :: String
930 a5450d2a Jose A. Lopes
replaceDiskPri = Types.replaceDisksModeToRaw ReplaceOnPrimary
931 a5450d2a Jose A. Lopes
932 a5450d2a Jose A. Lopes
replaceDiskSec :: String
933 a5450d2a Jose A. Lopes
replaceDiskSec = Types.replaceDisksModeToRaw ReplaceOnSecondary
934 a5450d2a Jose A. Lopes
935 a5450d2a Jose A. Lopes
replaceModes :: FrozenSet String
936 a5450d2a Jose A. Lopes
replaceModes =
937 a5450d2a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.replaceDisksModeToRaw [minBound..]
938 a5450d2a Jose A. Lopes
939 c890f66a Jose A. Lopes
-- * Instance export mode
940 85c48fbb Jose A. Lopes
941 c890f66a Jose A. Lopes
exportModeLocal :: String
942 c890f66a Jose A. Lopes
exportModeLocal = Types.exportModeToRaw ExportModeLocal
943 85c48fbb Jose A. Lopes
944 c890f66a Jose A. Lopes
exportModeRemote :: String
945 c890f66a Jose A. Lopes
exportModeRemote = Types.exportModeToRaw ExportModeRemote
946 85c48fbb Jose A. Lopes
947 c890f66a Jose A. Lopes
exportModes :: FrozenSet String
948 c890f66a Jose A. Lopes
exportModes = ConstantUtils.mkSet $ map Types.exportModeToRaw [minBound..]
949 85c48fbb Jose A. Lopes
950 c890f66a Jose A. Lopes
-- * Instance creation modes
951 85c48fbb Jose A. Lopes
952 c890f66a Jose A. Lopes
instanceCreate :: String
953 c890f66a Jose A. Lopes
instanceCreate = Types.instCreateModeToRaw InstCreate
954 85c48fbb Jose A. Lopes
955 c890f66a Jose A. Lopes
instanceImport :: String
956 c890f66a Jose A. Lopes
instanceImport = Types.instCreateModeToRaw InstImport
957 85c48fbb Jose A. Lopes
958 c890f66a Jose A. Lopes
instanceRemoteImport :: String
959 c890f66a Jose A. Lopes
instanceRemoteImport = Types.instCreateModeToRaw InstRemoteImport
960 85c48fbb Jose A. Lopes
961 c890f66a Jose A. Lopes
instanceCreateModes :: FrozenSet String
962 c890f66a Jose A. Lopes
instanceCreateModes =
963 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.instCreateModeToRaw [minBound..]
964 9413ef24 Jose A. Lopes
965 6e18cc0d Jose A. Lopes
-- * Remote import/export handshake message and version
966 6e18cc0d Jose A. Lopes
967 6e18cc0d Jose A. Lopes
rieHandshake :: String
968 6e18cc0d Jose A. Lopes
rieHandshake = "Hi, I'm Ganeti"
969 6e18cc0d Jose A. Lopes
970 6e18cc0d Jose A. Lopes
rieVersion :: Int
971 6e18cc0d Jose A. Lopes
rieVersion = 0
972 6e18cc0d Jose A. Lopes
973 6e18cc0d Jose A. Lopes
-- | Remote import/export certificate validity in seconds
974 6e18cc0d Jose A. Lopes
rieCertValidity :: Int
975 6e18cc0d Jose A. Lopes
rieCertValidity = 24 * 60 * 60
976 6e18cc0d Jose A. Lopes
977 6e18cc0d Jose A. Lopes
-- | Export only: how long to wait per connection attempt (seconds)
978 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout :: Int
979 6e18cc0d Jose A. Lopes
rieConnectAttemptTimeout = 20
980 6e18cc0d Jose A. Lopes
981 6e18cc0d Jose A. Lopes
-- | Export only: number of attempts to connect
982 6e18cc0d Jose A. Lopes
rieConnectRetries :: Int
983 6e18cc0d Jose A. Lopes
rieConnectRetries = 10
984 6e18cc0d Jose A. Lopes
985 6e18cc0d Jose A. Lopes
-- | Overall timeout for establishing connection
986 6e18cc0d Jose A. Lopes
rieConnectTimeout :: Int
987 6e18cc0d Jose A. Lopes
rieConnectTimeout = 180
988 6e18cc0d Jose A. Lopes
989 6e18cc0d Jose A. Lopes
-- | Give child process up to 5 seconds to exit after sending a signal
990 6e18cc0d Jose A. Lopes
childLingerTimeout :: Double
991 6e18cc0d Jose A. Lopes
childLingerTimeout = 5.0
992 6e18cc0d Jose A. Lopes
993 343dcda8 Jose A. Lopes
-- * Import/export config options
994 343dcda8 Jose A. Lopes
995 343dcda8 Jose A. Lopes
inisectBep :: String
996 343dcda8 Jose A. Lopes
inisectBep = "backend"
997 343dcda8 Jose A. Lopes
998 343dcda8 Jose A. Lopes
inisectExp :: String
999 343dcda8 Jose A. Lopes
inisectExp = "export"
1000 343dcda8 Jose A. Lopes
1001 343dcda8 Jose A. Lopes
inisectHyp :: String
1002 343dcda8 Jose A. Lopes
inisectHyp = "hypervisor"
1003 343dcda8 Jose A. Lopes
1004 343dcda8 Jose A. Lopes
inisectIns :: String
1005 343dcda8 Jose A. Lopes
inisectIns = "instance"
1006 343dcda8 Jose A. Lopes
1007 343dcda8 Jose A. Lopes
inisectOsp :: String
1008 343dcda8 Jose A. Lopes
inisectOsp = "os"
1009 343dcda8 Jose A. Lopes
1010 c890f66a Jose A. Lopes
-- * Dynamic device modification
1011 9413ef24 Jose A. Lopes
1012 c890f66a Jose A. Lopes
ddmAdd :: String
1013 c890f66a Jose A. Lopes
ddmAdd = Types.ddmFullToRaw DdmFullAdd
1014 1b2adaa6 Jose A. Lopes
1015 c890f66a Jose A. Lopes
ddmModify :: String
1016 c890f66a Jose A. Lopes
ddmModify = Types.ddmFullToRaw DdmFullModify
1017 1b2adaa6 Jose A. Lopes
1018 c890f66a Jose A. Lopes
ddmRemove :: String
1019 c890f66a Jose A. Lopes
ddmRemove = Types.ddmFullToRaw DdmFullRemove
1020 9413ef24 Jose A. Lopes
1021 c890f66a Jose A. Lopes
ddmsValues :: FrozenSet String
1022 c890f66a Jose A. Lopes
ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
1023 5867e439 Jose A. Lopes
1024 c890f66a Jose A. Lopes
ddmsValuesWithModify :: FrozenSet String
1025 c890f66a Jose A. Lopes
ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
1026 5867e439 Jose A. Lopes
1027 c890f66a Jose A. Lopes
-- * Common exit codes
1028 5867e439 Jose A. Lopes
1029 c890f66a Jose A. Lopes
exitSuccess :: Int
1030 c890f66a Jose A. Lopes
exitSuccess = 0
1031 5867e439 Jose A. Lopes
1032 c890f66a Jose A. Lopes
exitFailure :: Int
1033 c890f66a Jose A. Lopes
exitFailure = ConstantUtils.exitFailure
1034 5867e439 Jose A. Lopes
1035 c890f66a Jose A. Lopes
exitNotcluster :: Int
1036 c890f66a Jose A. Lopes
exitNotcluster = 5
1037 5867e439 Jose A. Lopes
1038 c890f66a Jose A. Lopes
exitNotmaster :: Int
1039 c890f66a Jose A. Lopes
exitNotmaster = 11
1040 5867e439 Jose A. Lopes
1041 c890f66a Jose A. Lopes
exitNodesetupError :: Int
1042 c890f66a Jose A. Lopes
exitNodesetupError = 12
1043 26eca119 Jose A. Lopes
1044 c890f66a Jose A. Lopes
-- | Need user confirmation
1045 c890f66a Jose A. Lopes
exitConfirmation :: Int
1046 c890f66a Jose A. Lopes
exitConfirmation = 13
1047 85c48fbb Jose A. Lopes
1048 c890f66a Jose A. Lopes
-- | Exit code for query operations with unknown fields
1049 c890f66a Jose A. Lopes
exitUnknownField :: Int
1050 c890f66a Jose A. Lopes
exitUnknownField = 14
1051 85c48fbb Jose A. Lopes
1052 c890f66a Jose A. Lopes
-- * Tags
1053 85c48fbb Jose A. Lopes
1054 c890f66a Jose A. Lopes
tagCluster :: String
1055 c890f66a Jose A. Lopes
tagCluster = Types.tagKindToRaw TagKindCluster
1056 85c48fbb Jose A. Lopes
1057 c890f66a Jose A. Lopes
tagInstance :: String
1058 c890f66a Jose A. Lopes
tagInstance = Types.tagKindToRaw TagKindInstance
1059 85c48fbb Jose A. Lopes
1060 c890f66a Jose A. Lopes
tagNetwork :: String
1061 c890f66a Jose A. Lopes
tagNetwork = Types.tagKindToRaw TagKindNetwork
1062 85c48fbb Jose A. Lopes
1063 c890f66a Jose A. Lopes
tagNode :: String
1064 c890f66a Jose A. Lopes
tagNode = Types.tagKindToRaw TagKindNode
1065 85c48fbb Jose A. Lopes
1066 c890f66a Jose A. Lopes
tagNodegroup :: String
1067 c890f66a Jose A. Lopes
tagNodegroup = Types.tagKindToRaw TagKindGroup
1068 85c48fbb Jose A. Lopes
1069 c890f66a Jose A. Lopes
validTagTypes :: FrozenSet String
1070 c890f66a Jose A. Lopes
validTagTypes = ConstantUtils.mkSet $ map Types.tagKindToRaw [minBound..]
1071 85c48fbb Jose A. Lopes
1072 c890f66a Jose A. Lopes
maxTagLen :: Int
1073 c890f66a Jose A. Lopes
maxTagLen = 128
1074 85c48fbb Jose A. Lopes
1075 c890f66a Jose A. Lopes
maxTagsPerObj :: Int
1076 c890f66a Jose A. Lopes
maxTagsPerObj = 4096
1077 85c48fbb Jose A. Lopes
1078 b7b8ff87 Jose A. Lopes
-- * Others
1079 b7b8ff87 Jose A. Lopes
1080 b7b8ff87 Jose A. Lopes
defaultBridge :: String
1081 b7b8ff87 Jose A. Lopes
defaultBridge = "xen-br0"
1082 b7b8ff87 Jose A. Lopes
1083 b7b8ff87 Jose A. Lopes
defaultOvs :: String
1084 b7b8ff87 Jose A. Lopes
defaultOvs = "switch1"
1085 b7b8ff87 Jose A. Lopes
1086 b7b8ff87 Jose A. Lopes
-- | 60 MiB, expressed in KiB
1087 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed :: Int
1088 b7b8ff87 Jose A. Lopes
classicDrbdSyncSpeed = 60 * 1024
1089 b7b8ff87 Jose A. Lopes
1090 b7b8ff87 Jose A. Lopes
ip4AddressAny :: String
1091 b7b8ff87 Jose A. Lopes
ip4AddressAny = "0.0.0.0"
1092 b7b8ff87 Jose A. Lopes
1093 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost :: String
1094 b7b8ff87 Jose A. Lopes
ip4AddressLocalhost = "127.0.0.1"
1095 b7b8ff87 Jose A. Lopes
1096 b7b8ff87 Jose A. Lopes
ip6AddressAny :: String
1097 b7b8ff87 Jose A. Lopes
ip6AddressAny = "::"
1098 b7b8ff87 Jose A. Lopes
1099 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost :: String
1100 b7b8ff87 Jose A. Lopes
ip6AddressLocalhost = "::1"
1101 b7b8ff87 Jose A. Lopes
1102 b7b8ff87 Jose A. Lopes
ip4Version :: Int
1103 b7b8ff87 Jose A. Lopes
ip4Version = 4
1104 b7b8ff87 Jose A. Lopes
1105 b7b8ff87 Jose A. Lopes
ip6Version :: Int
1106 b7b8ff87 Jose A. Lopes
ip6Version = 6
1107 b7b8ff87 Jose A. Lopes
1108 b7b8ff87 Jose A. Lopes
validIpVersions :: FrozenSet Int
1109 b7b8ff87 Jose A. Lopes
validIpVersions = ConstantUtils.mkSet [ip4Version, ip6Version]
1110 b7b8ff87 Jose A. Lopes
1111 b7b8ff87 Jose A. Lopes
tcpPingTimeout :: Int
1112 b7b8ff87 Jose A. Lopes
tcpPingTimeout = 10
1113 b7b8ff87 Jose A. Lopes
1114 b7b8ff87 Jose A. Lopes
defaultVg :: String
1115 b7b8ff87 Jose A. Lopes
defaultVg = "xenvg"
1116 b7b8ff87 Jose A. Lopes
1117 b7b8ff87 Jose A. Lopes
defaultDrbdHelper :: String
1118 b7b8ff87 Jose A. Lopes
defaultDrbdHelper = "/bin/true"
1119 b7b8ff87 Jose A. Lopes
1120 b7b8ff87 Jose A. Lopes
minVgSize :: Int
1121 b7b8ff87 Jose A. Lopes
minVgSize = 20480
1122 b7b8ff87 Jose A. Lopes
1123 b7b8ff87 Jose A. Lopes
defaultMacPrefix :: String
1124 b7b8ff87 Jose A. Lopes
defaultMacPrefix = "aa:00:00"
1125 b7b8ff87 Jose A. Lopes
1126 b7b8ff87 Jose A. Lopes
-- | Default maximum instance wait time, in seconds.
1127 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout :: Int
1128 b7b8ff87 Jose A. Lopes
defaultShutdownTimeout = 120
1129 b7b8ff87 Jose A. Lopes
1130 61e32567 Jose A. Lopes
-- | Node clock skew in seconds
1131 61e32567 Jose A. Lopes
nodeMaxClockSkew :: Int
1132 61e32567 Jose A. Lopes
nodeMaxClockSkew = 150
1133 61e32567 Jose A. Lopes
1134 52d4f735 Jose A. Lopes
-- | Time for an intra-cluster disk transfer to wait for a connection
1135 52d4f735 Jose A. Lopes
diskTransferConnectTimeout :: Int
1136 52d4f735 Jose A. Lopes
diskTransferConnectTimeout = 60
1137 52d4f735 Jose A. Lopes
1138 3b170ad4 Jose A. Lopes
-- | Disk index separator
1139 3b170ad4 Jose A. Lopes
diskSeparator :: String
1140 3b170ad4 Jose A. Lopes
diskSeparator = AutoConf.diskSeparator
1141 3b170ad4 Jose A. Lopes
1142 cf96e711 Jose A. Lopes
ipCommandPath :: String
1143 cf96e711 Jose A. Lopes
ipCommandPath = AutoConf.ipPath
1144 cf96e711 Jose A. Lopes
1145 d7754dad Jose A. Lopes
-- | Key for job IDs in opcode result
1146 d7754dad Jose A. Lopes
jobIdsKey :: String
1147 d7754dad Jose A. Lopes
jobIdsKey = "jobs"
1148 d7754dad Jose A. Lopes
1149 d7754dad Jose A. Lopes
-- * Runparts results
1150 d7754dad Jose A. Lopes
1151 d7754dad Jose A. Lopes
runpartsErr :: Int
1152 d7754dad Jose A. Lopes
runpartsErr = 2
1153 d7754dad Jose A. Lopes
1154 d7754dad Jose A. Lopes
runpartsRun :: Int
1155 d7754dad Jose A. Lopes
runpartsRun = 1
1156 d7754dad Jose A. Lopes
1157 d7754dad Jose A. Lopes
runpartsSkip :: Int
1158 d7754dad Jose A. Lopes
runpartsSkip = 0
1159 d7754dad Jose A. Lopes
1160 d7754dad Jose A. Lopes
runpartsStatus :: [Int]
1161 d7754dad Jose A. Lopes
runpartsStatus = [runpartsErr, runpartsRun, runpartsSkip]
1162 d7754dad Jose A. Lopes
1163 d7754dad Jose A. Lopes
-- * RPC
1164 d7754dad Jose A. Lopes
1165 d7754dad Jose A. Lopes
rpcEncodingNone :: Int
1166 d7754dad Jose A. Lopes
rpcEncodingNone = 0
1167 d7754dad Jose A. Lopes
1168 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 :: Int
1169 d7754dad Jose A. Lopes
rpcEncodingZlibBase64 = 1
1170 d7754dad Jose A. Lopes
1171 c03224f6 Jose A. Lopes
-- * Timeout table
1172 c03224f6 Jose A. Lopes
--
1173 c03224f6 Jose A. Lopes
-- Various time constants for the timeout table
1174 c03224f6 Jose A. Lopes
1175 c03224f6 Jose A. Lopes
rpcTmoUrgent :: Int
1176 c03224f6 Jose A. Lopes
rpcTmoUrgent = Types.rpcTimeoutToRaw Urgent
1177 c03224f6 Jose A. Lopes
1178 c03224f6 Jose A. Lopes
rpcTmoFast :: Int
1179 c03224f6 Jose A. Lopes
rpcTmoFast = Types.rpcTimeoutToRaw Fast
1180 c03224f6 Jose A. Lopes
1181 c03224f6 Jose A. Lopes
rpcTmoNormal :: Int
1182 c03224f6 Jose A. Lopes
rpcTmoNormal = Types.rpcTimeoutToRaw Normal
1183 c03224f6 Jose A. Lopes
1184 c03224f6 Jose A. Lopes
rpcTmoSlow :: Int
1185 c03224f6 Jose A. Lopes
rpcTmoSlow = Types.rpcTimeoutToRaw Slow
1186 c03224f6 Jose A. Lopes
1187 c03224f6 Jose A. Lopes
-- | 'rpcTmo_4hrs' contains an underscore to circumvent a limitation
1188 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1189 c03224f6 Jose A. Lopes
-- Python name.
1190 c03224f6 Jose A. Lopes
rpcTmo_4hrs :: Int
1191 c03224f6 Jose A. Lopes
rpcTmo_4hrs = Types.rpcTimeoutToRaw FourHours
1192 c03224f6 Jose A. Lopes
1193 c03224f6 Jose A. Lopes
-- | 'rpcTmo_1day' contains an underscore to circumvent a limitation
1194 c03224f6 Jose A. Lopes
-- in the 'Ganeti.THH.deCamelCase' function and generate the correct
1195 c03224f6 Jose A. Lopes
-- Python name.
1196 c03224f6 Jose A. Lopes
rpcTmo_1day :: Int
1197 c03224f6 Jose A. Lopes
rpcTmo_1day = Types.rpcTimeoutToRaw OneDay
1198 c03224f6 Jose A. Lopes
1199 c03224f6 Jose A. Lopes
-- | Timeout for connecting to nodes (seconds)
1200 c03224f6 Jose A. Lopes
rpcConnectTimeout :: Int
1201 c03224f6 Jose A. Lopes
rpcConnectTimeout = 5
1202 c03224f6 Jose A. Lopes
1203 e8d4d41e Jose A. Lopes
-- OS
1204 e8d4d41e Jose A. Lopes
1205 e8d4d41e Jose A. Lopes
osScriptCreate :: String
1206 e8d4d41e Jose A. Lopes
osScriptCreate = "create"
1207 e8d4d41e Jose A. Lopes
1208 e8d4d41e Jose A. Lopes
osScriptExport :: String
1209 e8d4d41e Jose A. Lopes
osScriptExport = "export"
1210 e8d4d41e Jose A. Lopes
1211 e8d4d41e Jose A. Lopes
osScriptImport :: String
1212 e8d4d41e Jose A. Lopes
osScriptImport = "import"
1213 e8d4d41e Jose A. Lopes
1214 e8d4d41e Jose A. Lopes
osScriptRename :: String
1215 e8d4d41e Jose A. Lopes
osScriptRename = "rename"
1216 e8d4d41e Jose A. Lopes
1217 e8d4d41e Jose A. Lopes
osScriptVerify :: String
1218 e8d4d41e Jose A. Lopes
osScriptVerify = "verify"
1219 e8d4d41e Jose A. Lopes
1220 e8d4d41e Jose A. Lopes
osScripts :: [String]
1221 e8d4d41e Jose A. Lopes
osScripts = [osScriptCreate, osScriptExport, osScriptImport, osScriptRename,
1222 e8d4d41e Jose A. Lopes
             osScriptVerify]
1223 e8d4d41e Jose A. Lopes
1224 e8d4d41e Jose A. Lopes
osApiFile :: String
1225 e8d4d41e Jose A. Lopes
osApiFile = "ganeti_api_version"
1226 e8d4d41e Jose A. Lopes
1227 e8d4d41e Jose A. Lopes
osVariantsFile :: String
1228 e8d4d41e Jose A. Lopes
osVariantsFile = "variants.list"
1229 e8d4d41e Jose A. Lopes
1230 e8d4d41e Jose A. Lopes
osParametersFile :: String
1231 e8d4d41e Jose A. Lopes
osParametersFile = "parameters.list"
1232 e8d4d41e Jose A. Lopes
1233 e8d4d41e Jose A. Lopes
osValidateParameters :: String
1234 e8d4d41e Jose A. Lopes
osValidateParameters = "parameters"
1235 e8d4d41e Jose A. Lopes
1236 e8d4d41e Jose A. Lopes
osValidateCalls :: FrozenSet String
1237 e8d4d41e Jose A. Lopes
osValidateCalls = ConstantUtils.mkSet [osValidateParameters]
1238 e8d4d41e Jose A. Lopes
1239 e8d4d41e Jose A. Lopes
-- | External Storage (ES) related constants
1240 e8d4d41e Jose A. Lopes
1241 e8d4d41e Jose A. Lopes
esActionAttach :: String
1242 e8d4d41e Jose A. Lopes
esActionAttach = "attach"
1243 e8d4d41e Jose A. Lopes
1244 e8d4d41e Jose A. Lopes
esActionCreate :: String
1245 e8d4d41e Jose A. Lopes
esActionCreate = "create"
1246 e8d4d41e Jose A. Lopes
1247 e8d4d41e Jose A. Lopes
esActionDetach :: String
1248 e8d4d41e Jose A. Lopes
esActionDetach = "detach"
1249 e8d4d41e Jose A. Lopes
1250 e8d4d41e Jose A. Lopes
esActionGrow :: String
1251 e8d4d41e Jose A. Lopes
esActionGrow = "grow"
1252 e8d4d41e Jose A. Lopes
1253 e8d4d41e Jose A. Lopes
esActionRemove :: String
1254 e8d4d41e Jose A. Lopes
esActionRemove = "remove"
1255 e8d4d41e Jose A. Lopes
1256 e8d4d41e Jose A. Lopes
esActionSetinfo :: String
1257 e8d4d41e Jose A. Lopes
esActionSetinfo = "setinfo"
1258 e8d4d41e Jose A. Lopes
1259 e8d4d41e Jose A. Lopes
esActionVerify :: String
1260 e8d4d41e Jose A. Lopes
esActionVerify = "verify"
1261 e8d4d41e Jose A. Lopes
1262 e8d4d41e Jose A. Lopes
esScriptCreate :: String
1263 e8d4d41e Jose A. Lopes
esScriptCreate = esActionCreate
1264 e8d4d41e Jose A. Lopes
1265 e8d4d41e Jose A. Lopes
esScriptRemove :: String
1266 e8d4d41e Jose A. Lopes
esScriptRemove = esActionRemove
1267 e8d4d41e Jose A. Lopes
1268 e8d4d41e Jose A. Lopes
esScriptGrow :: String
1269 e8d4d41e Jose A. Lopes
esScriptGrow = esActionGrow
1270 e8d4d41e Jose A. Lopes
1271 e8d4d41e Jose A. Lopes
esScriptAttach :: String
1272 e8d4d41e Jose A. Lopes
esScriptAttach = esActionAttach
1273 e8d4d41e Jose A. Lopes
1274 e8d4d41e Jose A. Lopes
esScriptDetach :: String
1275 e8d4d41e Jose A. Lopes
esScriptDetach = esActionDetach
1276 e8d4d41e Jose A. Lopes
1277 e8d4d41e Jose A. Lopes
esScriptSetinfo :: String
1278 e8d4d41e Jose A. Lopes
esScriptSetinfo = esActionSetinfo
1279 e8d4d41e Jose A. Lopes
1280 e8d4d41e Jose A. Lopes
esScriptVerify :: String
1281 e8d4d41e Jose A. Lopes
esScriptVerify = esActionVerify
1282 e8d4d41e Jose A. Lopes
1283 e8d4d41e Jose A. Lopes
esScripts :: FrozenSet String
1284 e8d4d41e Jose A. Lopes
esScripts =
1285 e8d4d41e Jose A. Lopes
  ConstantUtils.mkSet [esScriptAttach,
1286 e8d4d41e Jose A. Lopes
                       esScriptCreate,
1287 e8d4d41e Jose A. Lopes
                       esScriptDetach,
1288 e8d4d41e Jose A. Lopes
                       esScriptGrow,
1289 e8d4d41e Jose A. Lopes
                       esScriptRemove,
1290 e8d4d41e Jose A. Lopes
                       esScriptSetinfo,
1291 e8d4d41e Jose A. Lopes
                       esScriptVerify]
1292 e8d4d41e Jose A. Lopes
1293 e8d4d41e Jose A. Lopes
esParametersFile :: String
1294 e8d4d41e Jose A. Lopes
esParametersFile = "parameters.list"
1295 e8d4d41e Jose A. Lopes
1296 ae8e7986 Jose A. Lopes
-- * Reboot types
1297 ae8e7986 Jose A. Lopes
1298 ae8e7986 Jose A. Lopes
instanceRebootSoft :: String
1299 ae8e7986 Jose A. Lopes
instanceRebootSoft = Types.rebootTypeToRaw RebootSoft
1300 ae8e7986 Jose A. Lopes
1301 ae8e7986 Jose A. Lopes
instanceRebootHard :: String
1302 ae8e7986 Jose A. Lopes
instanceRebootHard = Types.rebootTypeToRaw RebootHard
1303 ae8e7986 Jose A. Lopes
1304 ae8e7986 Jose A. Lopes
instanceRebootFull :: String
1305 ae8e7986 Jose A. Lopes
instanceRebootFull = Types.rebootTypeToRaw RebootFull
1306 ae8e7986 Jose A. Lopes
1307 ae8e7986 Jose A. Lopes
rebootTypes :: FrozenSet String
1308 ae8e7986 Jose A. Lopes
rebootTypes = ConstantUtils.mkSet $ map Types.rebootTypeToRaw [minBound..]
1309 ae8e7986 Jose A. Lopes
1310 3c2abb61 Jose A. Lopes
-- * Instance reboot behaviors
1311 3c2abb61 Jose A. Lopes
1312 3c2abb61 Jose A. Lopes
instanceRebootAllowed :: String
1313 3c2abb61 Jose A. Lopes
instanceRebootAllowed = "reboot"
1314 3c2abb61 Jose A. Lopes
1315 3c2abb61 Jose A. Lopes
instanceRebootExit :: String
1316 3c2abb61 Jose A. Lopes
instanceRebootExit = "exit"
1317 3c2abb61 Jose A. Lopes
1318 3c2abb61 Jose A. Lopes
rebootBehaviors :: [String]
1319 3c2abb61 Jose A. Lopes
rebootBehaviors = [instanceRebootAllowed, instanceRebootExit]
1320 3c2abb61 Jose A. Lopes
1321 a91d6b30 Jose A. Lopes
-- * VTypes
1322 a91d6b30 Jose A. Lopes
1323 a91d6b30 Jose A. Lopes
vtypeBool :: VType
1324 a91d6b30 Jose A. Lopes
vtypeBool = VTypeBool
1325 a91d6b30 Jose A. Lopes
1326 a91d6b30 Jose A. Lopes
vtypeInt :: VType
1327 a91d6b30 Jose A. Lopes
vtypeInt = VTypeInt
1328 a91d6b30 Jose A. Lopes
1329 a91d6b30 Jose A. Lopes
vtypeMaybeString :: VType
1330 a91d6b30 Jose A. Lopes
vtypeMaybeString = VTypeMaybeString
1331 a91d6b30 Jose A. Lopes
1332 a91d6b30 Jose A. Lopes
-- | Size in MiBs
1333 a91d6b30 Jose A. Lopes
vtypeSize :: VType
1334 a91d6b30 Jose A. Lopes
vtypeSize = VTypeSize
1335 a91d6b30 Jose A. Lopes
1336 a91d6b30 Jose A. Lopes
vtypeString :: VType
1337 a91d6b30 Jose A. Lopes
vtypeString = VTypeString
1338 a91d6b30 Jose A. Lopes
1339 a91d6b30 Jose A. Lopes
enforceableTypes :: FrozenSet VType
1340 a91d6b30 Jose A. Lopes
enforceableTypes = ConstantUtils.mkSet [minBound..]
1341 8397ffde Jose A. Lopes
1342 5c8f186c Jose A. Lopes
-- | Constant representing that the user does not specify any IP version
1343 5c8f186c Jose A. Lopes
ifaceNoIpVersionSpecified :: Int
1344 5c8f186c Jose A. Lopes
ifaceNoIpVersionSpecified = 0
1345 5c8f186c Jose A. Lopes
1346 5c8f186c Jose A. Lopes
validSerialSpeeds :: [Int]
1347 5c8f186c Jose A. Lopes
validSerialSpeeds =
1348 5c8f186c Jose A. Lopes
  [75,
1349 5c8f186c Jose A. Lopes
   110,
1350 5c8f186c Jose A. Lopes
   300,
1351 5c8f186c Jose A. Lopes
   600,
1352 5c8f186c Jose A. Lopes
   1200,
1353 5c8f186c Jose A. Lopes
   1800,
1354 5c8f186c Jose A. Lopes
   2400,
1355 5c8f186c Jose A. Lopes
   4800,
1356 5c8f186c Jose A. Lopes
   9600,
1357 5c8f186c Jose A. Lopes
   14400,
1358 5c8f186c Jose A. Lopes
   19200,
1359 5c8f186c Jose A. Lopes
   28800,
1360 5c8f186c Jose A. Lopes
   38400,
1361 5c8f186c Jose A. Lopes
   57600,
1362 5c8f186c Jose A. Lopes
   115200,
1363 5c8f186c Jose A. Lopes
   230400,
1364 5c8f186c Jose A. Lopes
   345600,
1365 5c8f186c Jose A. Lopes
   460800]
1366 5c8f186c Jose A. Lopes
1367 5c8f186c Jose A. Lopes
-- * HV parameter names (global namespace)
1368 5c8f186c Jose A. Lopes
1369 5c8f186c Jose A. Lopes
hvAcpi :: String
1370 5c8f186c Jose A. Lopes
hvAcpi = "acpi"
1371 5c8f186c Jose A. Lopes
1372 5c8f186c Jose A. Lopes
hvBlockdevPrefix :: String
1373 5c8f186c Jose A. Lopes
hvBlockdevPrefix = "blockdev_prefix"
1374 5c8f186c Jose A. Lopes
1375 5c8f186c Jose A. Lopes
hvBootloaderArgs :: String
1376 5c8f186c Jose A. Lopes
hvBootloaderArgs = "bootloader_args"
1377 5c8f186c Jose A. Lopes
1378 5c8f186c Jose A. Lopes
hvBootloaderPath :: String
1379 5c8f186c Jose A. Lopes
hvBootloaderPath = "bootloader_path"
1380 5c8f186c Jose A. Lopes
1381 5c8f186c Jose A. Lopes
hvBootOrder :: String
1382 5c8f186c Jose A. Lopes
hvBootOrder = "boot_order"
1383 5c8f186c Jose A. Lopes
1384 5c8f186c Jose A. Lopes
hvCdromImagePath :: String
1385 5c8f186c Jose A. Lopes
hvCdromImagePath = "cdrom_image_path"
1386 5c8f186c Jose A. Lopes
1387 5c8f186c Jose A. Lopes
hvCpuCap :: String
1388 5c8f186c Jose A. Lopes
hvCpuCap = "cpu_cap"
1389 5c8f186c Jose A. Lopes
1390 5c8f186c Jose A. Lopes
hvCpuCores :: String
1391 5c8f186c Jose A. Lopes
hvCpuCores = "cpu_cores"
1392 5c8f186c Jose A. Lopes
1393 5c8f186c Jose A. Lopes
hvCpuMask :: String
1394 5c8f186c Jose A. Lopes
hvCpuMask = "cpu_mask"
1395 5c8f186c Jose A. Lopes
1396 5c8f186c Jose A. Lopes
hvCpuSockets :: String
1397 5c8f186c Jose A. Lopes
hvCpuSockets = "cpu_sockets"
1398 5c8f186c Jose A. Lopes
1399 5c8f186c Jose A. Lopes
hvCpuThreads :: String
1400 5c8f186c Jose A. Lopes
hvCpuThreads = "cpu_threads"
1401 5c8f186c Jose A. Lopes
1402 5c8f186c Jose A. Lopes
hvCpuType :: String
1403 5c8f186c Jose A. Lopes
hvCpuType = "cpu_type"
1404 5c8f186c Jose A. Lopes
1405 5c8f186c Jose A. Lopes
hvCpuWeight :: String
1406 5c8f186c Jose A. Lopes
hvCpuWeight = "cpu_weight"
1407 5c8f186c Jose A. Lopes
1408 5c8f186c Jose A. Lopes
hvDeviceModel :: String
1409 5c8f186c Jose A. Lopes
hvDeviceModel = "device_model"
1410 5c8f186c Jose A. Lopes
1411 5c8f186c Jose A. Lopes
hvDiskCache :: String
1412 5c8f186c Jose A. Lopes
hvDiskCache = "disk_cache"
1413 5c8f186c Jose A. Lopes
1414 5c8f186c Jose A. Lopes
hvDiskType :: String
1415 5c8f186c Jose A. Lopes
hvDiskType = "disk_type"
1416 5c8f186c Jose A. Lopes
1417 5c8f186c Jose A. Lopes
hvInitrdPath :: String
1418 5c8f186c Jose A. Lopes
hvInitrdPath = "initrd_path"
1419 5c8f186c Jose A. Lopes
1420 5c8f186c Jose A. Lopes
hvInitScript :: String
1421 5c8f186c Jose A. Lopes
hvInitScript = "init_script"
1422 5c8f186c Jose A. Lopes
1423 5c8f186c Jose A. Lopes
hvKernelArgs :: String
1424 5c8f186c Jose A. Lopes
hvKernelArgs = "kernel_args"
1425 5c8f186c Jose A. Lopes
1426 5c8f186c Jose A. Lopes
hvKernelPath :: String
1427 5c8f186c Jose A. Lopes
hvKernelPath = "kernel_path"
1428 5c8f186c Jose A. Lopes
1429 5c8f186c Jose A. Lopes
hvKeymap :: String
1430 5c8f186c Jose A. Lopes
hvKeymap = "keymap"
1431 5c8f186c Jose A. Lopes
1432 5c8f186c Jose A. Lopes
hvKvmCdrom2ImagePath :: String
1433 5c8f186c Jose A. Lopes
hvKvmCdrom2ImagePath = "cdrom2_image_path"
1434 5c8f186c Jose A. Lopes
1435 5c8f186c Jose A. Lopes
hvKvmCdromDiskType :: String
1436 5c8f186c Jose A. Lopes
hvKvmCdromDiskType = "cdrom_disk_type"
1437 5c8f186c Jose A. Lopes
1438 5c8f186c Jose A. Lopes
hvKvmExtra :: String
1439 5c8f186c Jose A. Lopes
hvKvmExtra = "kvm_extra"
1440 5c8f186c Jose A. Lopes
1441 5c8f186c Jose A. Lopes
hvKvmFlag :: String
1442 5c8f186c Jose A. Lopes
hvKvmFlag = "kvm_flag"
1443 5c8f186c Jose A. Lopes
1444 5c8f186c Jose A. Lopes
hvKvmFloppyImagePath :: String
1445 5c8f186c Jose A. Lopes
hvKvmFloppyImagePath = "floppy_image_path"
1446 5c8f186c Jose A. Lopes
1447 5c8f186c Jose A. Lopes
hvKvmMachineVersion :: String
1448 5c8f186c Jose A. Lopes
hvKvmMachineVersion = "machine_version"
1449 5c8f186c Jose A. Lopes
1450 5c8f186c Jose A. Lopes
hvKvmPath :: String
1451 5c8f186c Jose A. Lopes
hvKvmPath = "kvm_path"
1452 5c8f186c Jose A. Lopes
1453 5c8f186c Jose A. Lopes
hvKvmSpiceAudioCompr :: String
1454 5c8f186c Jose A. Lopes
hvKvmSpiceAudioCompr = "spice_playback_compression"
1455 5c8f186c Jose A. Lopes
1456 5c8f186c Jose A. Lopes
hvKvmSpiceBind :: String
1457 5c8f186c Jose A. Lopes
hvKvmSpiceBind = "spice_bind"
1458 5c8f186c Jose A. Lopes
1459 5c8f186c Jose A. Lopes
hvKvmSpiceIpVersion :: String
1460 5c8f186c Jose A. Lopes
hvKvmSpiceIpVersion = "spice_ip_version"
1461 5c8f186c Jose A. Lopes
1462 5c8f186c Jose A. Lopes
hvKvmSpiceJpegImgCompr :: String
1463 5c8f186c Jose A. Lopes
hvKvmSpiceJpegImgCompr = "spice_jpeg_wan_compression"
1464 5c8f186c Jose A. Lopes
1465 5c8f186c Jose A. Lopes
hvKvmSpiceLosslessImgCompr :: String
1466 5c8f186c Jose A. Lopes
hvKvmSpiceLosslessImgCompr = "spice_image_compression"
1467 5c8f186c Jose A. Lopes
1468 5c8f186c Jose A. Lopes
hvKvmSpicePasswordFile :: String
1469 5c8f186c Jose A. Lopes
hvKvmSpicePasswordFile = "spice_password_file"
1470 5c8f186c Jose A. Lopes
1471 5c8f186c Jose A. Lopes
hvKvmSpiceStreamingVideoDetection :: String
1472 5c8f186c Jose A. Lopes
hvKvmSpiceStreamingVideoDetection = "spice_streaming_video"
1473 5c8f186c Jose A. Lopes
1474 5c8f186c Jose A. Lopes
hvKvmSpiceTlsCiphers :: String
1475 5c8f186c Jose A. Lopes
hvKvmSpiceTlsCiphers = "spice_tls_ciphers"
1476 5c8f186c Jose A. Lopes
1477 5c8f186c Jose A. Lopes
hvKvmSpiceUseTls :: String
1478 5c8f186c Jose A. Lopes
hvKvmSpiceUseTls = "spice_use_tls"
1479 5c8f186c Jose A. Lopes
1480 5c8f186c Jose A. Lopes
hvKvmSpiceUseVdagent :: String
1481 5c8f186c Jose A. Lopes
hvKvmSpiceUseVdagent = "spice_use_vdagent"
1482 5c8f186c Jose A. Lopes
1483 5c8f186c Jose A. Lopes
hvKvmSpiceZlibGlzImgCompr :: String
1484 5c8f186c Jose A. Lopes
hvKvmSpiceZlibGlzImgCompr = "spice_zlib_glz_wan_compression"
1485 5c8f186c Jose A. Lopes
1486 5c8f186c Jose A. Lopes
hvKvmUseChroot :: String
1487 5c8f186c Jose A. Lopes
hvKvmUseChroot = "use_chroot"
1488 5c8f186c Jose A. Lopes
1489 5c8f186c Jose A. Lopes
hvMemPath :: String
1490 5c8f186c Jose A. Lopes
hvMemPath = "mem_path"
1491 5c8f186c Jose A. Lopes
1492 5c8f186c Jose A. Lopes
hvMigrationBandwidth :: String
1493 5c8f186c Jose A. Lopes
hvMigrationBandwidth = "migration_bandwidth"
1494 5c8f186c Jose A. Lopes
1495 5c8f186c Jose A. Lopes
hvMigrationDowntime :: String
1496 5c8f186c Jose A. Lopes
hvMigrationDowntime = "migration_downtime"
1497 5c8f186c Jose A. Lopes
1498 5c8f186c Jose A. Lopes
hvMigrationMode :: String
1499 5c8f186c Jose A. Lopes
hvMigrationMode = "migration_mode"
1500 5c8f186c Jose A. Lopes
1501 5c8f186c Jose A. Lopes
hvMigrationPort :: String
1502 5c8f186c Jose A. Lopes
hvMigrationPort = "migration_port"
1503 5c8f186c Jose A. Lopes
1504 5c8f186c Jose A. Lopes
hvNicType :: String
1505 5c8f186c Jose A. Lopes
hvNicType = "nic_type"
1506 5c8f186c Jose A. Lopes
1507 5c8f186c Jose A. Lopes
hvPae :: String
1508 5c8f186c Jose A. Lopes
hvPae = "pae"
1509 5c8f186c Jose A. Lopes
1510 5c8f186c Jose A. Lopes
hvPassthrough :: String
1511 5c8f186c Jose A. Lopes
hvPassthrough = "pci_pass"
1512 5c8f186c Jose A. Lopes
1513 5c8f186c Jose A. Lopes
hvRebootBehavior :: String
1514 5c8f186c Jose A. Lopes
hvRebootBehavior = "reboot_behavior"
1515 5c8f186c Jose A. Lopes
1516 5c8f186c Jose A. Lopes
hvRootPath :: String
1517 5c8f186c Jose A. Lopes
hvRootPath = "root_path"
1518 5c8f186c Jose A. Lopes
1519 5c8f186c Jose A. Lopes
hvSecurityDomain :: String
1520 5c8f186c Jose A. Lopes
hvSecurityDomain = "security_domain"
1521 5c8f186c Jose A. Lopes
1522 5c8f186c Jose A. Lopes
hvSecurityModel :: String
1523 5c8f186c Jose A. Lopes
hvSecurityModel = "security_model"
1524 5c8f186c Jose A. Lopes
1525 5c8f186c Jose A. Lopes
hvSerialConsole :: String
1526 5c8f186c Jose A. Lopes
hvSerialConsole = "serial_console"
1527 5c8f186c Jose A. Lopes
1528 5c8f186c Jose A. Lopes
hvSerialSpeed :: String
1529 5c8f186c Jose A. Lopes
hvSerialSpeed = "serial_speed"
1530 5c8f186c Jose A. Lopes
1531 5c8f186c Jose A. Lopes
hvSoundhw :: String
1532 5c8f186c Jose A. Lopes
hvSoundhw = "soundhw"
1533 5c8f186c Jose A. Lopes
1534 5c8f186c Jose A. Lopes
hvUsbDevices :: String
1535 5c8f186c Jose A. Lopes
hvUsbDevices = "usb_devices"
1536 5c8f186c Jose A. Lopes
1537 5c8f186c Jose A. Lopes
hvUsbMouse :: String
1538 5c8f186c Jose A. Lopes
hvUsbMouse = "usb_mouse"
1539 5c8f186c Jose A. Lopes
1540 5c8f186c Jose A. Lopes
hvUseBootloader :: String
1541 5c8f186c Jose A. Lopes
hvUseBootloader = "use_bootloader"
1542 5c8f186c Jose A. Lopes
1543 5c8f186c Jose A. Lopes
hvUseLocaltime :: String
1544 5c8f186c Jose A. Lopes
hvUseLocaltime = "use_localtime"
1545 5c8f186c Jose A. Lopes
1546 5c8f186c Jose A. Lopes
hvVga :: String
1547 5c8f186c Jose A. Lopes
hvVga = "vga"
1548 5c8f186c Jose A. Lopes
1549 5c8f186c Jose A. Lopes
hvVhostNet :: String
1550 5c8f186c Jose A. Lopes
hvVhostNet = "vhost_net"
1551 5c8f186c Jose A. Lopes
1552 5c8f186c Jose A. Lopes
hvVifScript :: String
1553 5c8f186c Jose A. Lopes
hvVifScript = "vif_script"
1554 5c8f186c Jose A. Lopes
1555 5c8f186c Jose A. Lopes
hvVifType :: String
1556 5c8f186c Jose A. Lopes
hvVifType = "vif_type"
1557 5c8f186c Jose A. Lopes
1558 5c8f186c Jose A. Lopes
hvViridian :: String
1559 5c8f186c Jose A. Lopes
hvViridian = "viridian"
1560 5c8f186c Jose A. Lopes
1561 5c8f186c Jose A. Lopes
hvVncBindAddress :: String
1562 5c8f186c Jose A. Lopes
hvVncBindAddress = "vnc_bind_address"
1563 5c8f186c Jose A. Lopes
1564 5c8f186c Jose A. Lopes
hvVncPasswordFile :: String
1565 5c8f186c Jose A. Lopes
hvVncPasswordFile = "vnc_password_file"
1566 5c8f186c Jose A. Lopes
1567 5c8f186c Jose A. Lopes
hvVncTls :: String
1568 5c8f186c Jose A. Lopes
hvVncTls = "vnc_tls"
1569 5c8f186c Jose A. Lopes
1570 5c8f186c Jose A. Lopes
hvVncX509 :: String
1571 5c8f186c Jose A. Lopes
hvVncX509 = "vnc_x509_path"
1572 5c8f186c Jose A. Lopes
1573 5c8f186c Jose A. Lopes
hvVncX509Verify :: String
1574 5c8f186c Jose A. Lopes
hvVncX509Verify = "vnc_x509_verify"
1575 5c8f186c Jose A. Lopes
1576 5c8f186c Jose A. Lopes
hvVnetHdr :: String
1577 5c8f186c Jose A. Lopes
hvVnetHdr = "vnet_hdr"
1578 5c8f186c Jose A. Lopes
1579 5c8f186c Jose A. Lopes
hvXenCmd :: String
1580 5c8f186c Jose A. Lopes
hvXenCmd = "xen_cmd"
1581 5c8f186c Jose A. Lopes
1582 5c8f186c Jose A. Lopes
hvXenCpuid :: String
1583 5c8f186c Jose A. Lopes
hvXenCpuid = "cpuid"
1584 5c8f186c Jose A. Lopes
1585 5c8f186c Jose A. Lopes
hvsParameterTitles :: Map String String
1586 5c8f186c Jose A. Lopes
hvsParameterTitles =
1587 5c8f186c Jose A. Lopes
  Map.fromList
1588 5c8f186c Jose A. Lopes
  [(hvAcpi, "ACPI"),
1589 5c8f186c Jose A. Lopes
   (hvBootOrder, "Boot_order"),
1590 5c8f186c Jose A. Lopes
   (hvCdromImagePath, "CDROM_image_path"),
1591 5c8f186c Jose A. Lopes
   (hvCpuType, "cpu_type"),
1592 5c8f186c Jose A. Lopes
   (hvDiskType, "Disk_type"),
1593 5c8f186c Jose A. Lopes
   (hvInitrdPath, "Initrd_path"),
1594 5c8f186c Jose A. Lopes
   (hvKernelPath, "Kernel_path"),
1595 5c8f186c Jose A. Lopes
   (hvNicType, "NIC_type"),
1596 5c8f186c Jose A. Lopes
   (hvPae, "PAE"),
1597 5c8f186c Jose A. Lopes
   (hvPassthrough, "pci_pass"),
1598 5c8f186c Jose A. Lopes
   (hvVncBindAddress, "VNC_bind_address")]
1599 5c8f186c Jose A. Lopes
1600 5a7fab74 Jose A. Lopes
-- * Migration statuses
1601 5a7fab74 Jose A. Lopes
1602 5a7fab74 Jose A. Lopes
hvMigrationActive :: String
1603 5a7fab74 Jose A. Lopes
hvMigrationActive = "active"
1604 5a7fab74 Jose A. Lopes
1605 5a7fab74 Jose A. Lopes
hvMigrationCancelled :: String
1606 5a7fab74 Jose A. Lopes
hvMigrationCancelled = "cancelled"
1607 5a7fab74 Jose A. Lopes
1608 5a7fab74 Jose A. Lopes
hvMigrationCompleted :: String
1609 5a7fab74 Jose A. Lopes
hvMigrationCompleted = "completed"
1610 5a7fab74 Jose A. Lopes
1611 5a7fab74 Jose A. Lopes
hvMigrationFailed :: String
1612 5a7fab74 Jose A. Lopes
hvMigrationFailed = "failed"
1613 5a7fab74 Jose A. Lopes
1614 5a7fab74 Jose A. Lopes
hvMigrationValidStatuses :: FrozenSet String
1615 5a7fab74 Jose A. Lopes
hvMigrationValidStatuses =
1616 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvMigrationActive,
1617 5a7fab74 Jose A. Lopes
                       hvMigrationCancelled,
1618 5a7fab74 Jose A. Lopes
                       hvMigrationCompleted,
1619 5a7fab74 Jose A. Lopes
                       hvMigrationFailed]
1620 5a7fab74 Jose A. Lopes
1621 5a7fab74 Jose A. Lopes
hvMigrationFailedStatuses :: FrozenSet String
1622 5a7fab74 Jose A. Lopes
hvMigrationFailedStatuses =
1623 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvMigrationFailed, hvMigrationCancelled]
1624 5a7fab74 Jose A. Lopes
1625 5a7fab74 Jose A. Lopes
-- | KVM-specific statuses
1626 5a7fab74 Jose A. Lopes
--
1627 5a7fab74 Jose A. Lopes
-- FIXME: this constant seems unnecessary
1628 5a7fab74 Jose A. Lopes
hvKvmMigrationValidStatuses :: FrozenSet String
1629 5a7fab74 Jose A. Lopes
hvKvmMigrationValidStatuses = hvMigrationValidStatuses
1630 5a7fab74 Jose A. Lopes
1631 5a7fab74 Jose A. Lopes
-- | Node info keys
1632 5a7fab74 Jose A. Lopes
hvNodeinfoKeyVersion :: String
1633 5a7fab74 Jose A. Lopes
hvNodeinfoKeyVersion = "hv_version"
1634 5a7fab74 Jose A. Lopes
1635 5a7fab74 Jose A. Lopes
-- * Hypervisor state
1636 5a7fab74 Jose A. Lopes
1637 5a7fab74 Jose A. Lopes
hvstCpuNode :: String
1638 5a7fab74 Jose A. Lopes
hvstCpuNode = "cpu_node"
1639 5a7fab74 Jose A. Lopes
1640 5a7fab74 Jose A. Lopes
hvstCpuTotal :: String
1641 5a7fab74 Jose A. Lopes
hvstCpuTotal = "cpu_total"
1642 5a7fab74 Jose A. Lopes
1643 5a7fab74 Jose A. Lopes
hvstMemoryHv :: String
1644 5a7fab74 Jose A. Lopes
hvstMemoryHv = "mem_hv"
1645 5a7fab74 Jose A. Lopes
1646 5a7fab74 Jose A. Lopes
hvstMemoryNode :: String
1647 5a7fab74 Jose A. Lopes
hvstMemoryNode = "mem_node"
1648 5a7fab74 Jose A. Lopes
1649 5a7fab74 Jose A. Lopes
hvstMemoryTotal :: String
1650 5a7fab74 Jose A. Lopes
hvstMemoryTotal = "mem_total"
1651 5a7fab74 Jose A. Lopes
1652 5a7fab74 Jose A. Lopes
hvstsParameters :: FrozenSet String
1653 5a7fab74 Jose A. Lopes
hvstsParameters =
1654 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [hvstCpuNode,
1655 5a7fab74 Jose A. Lopes
                       hvstCpuTotal,
1656 5a7fab74 Jose A. Lopes
                       hvstMemoryHv,
1657 5a7fab74 Jose A. Lopes
                       hvstMemoryNode,
1658 5a7fab74 Jose A. Lopes
                       hvstMemoryTotal]
1659 5a7fab74 Jose A. Lopes
1660 5a7fab74 Jose A. Lopes
hvstDefaults :: Map String Int
1661 5a7fab74 Jose A. Lopes
hvstDefaults =
1662 5a7fab74 Jose A. Lopes
  Map.fromList
1663 5a7fab74 Jose A. Lopes
  [(hvstCpuNode, 1),
1664 5a7fab74 Jose A. Lopes
   (hvstCpuTotal, 1),
1665 5a7fab74 Jose A. Lopes
   (hvstMemoryHv, 0),
1666 5a7fab74 Jose A. Lopes
   (hvstMemoryTotal, 0),
1667 5a7fab74 Jose A. Lopes
   (hvstMemoryNode, 0)]
1668 5a7fab74 Jose A. Lopes
1669 5a7fab74 Jose A. Lopes
hvstsParameterTypes :: Map String VType
1670 5a7fab74 Jose A. Lopes
hvstsParameterTypes =
1671 5a7fab74 Jose A. Lopes
  Map.fromList [(hvstMemoryTotal, VTypeInt),
1672 5a7fab74 Jose A. Lopes
                (hvstMemoryNode, VTypeInt),
1673 5a7fab74 Jose A. Lopes
                (hvstMemoryHv, VTypeInt),
1674 5a7fab74 Jose A. Lopes
                (hvstCpuTotal, VTypeInt),
1675 5a7fab74 Jose A. Lopes
                (hvstCpuNode, VTypeInt)]
1676 5a7fab74 Jose A. Lopes
1677 5a7fab74 Jose A. Lopes
-- * Disk state
1678 5a7fab74 Jose A. Lopes
1679 5a7fab74 Jose A. Lopes
dsDiskOverhead :: String
1680 5a7fab74 Jose A. Lopes
dsDiskOverhead = "disk_overhead"
1681 5a7fab74 Jose A. Lopes
1682 5a7fab74 Jose A. Lopes
dsDiskReserved :: String
1683 5a7fab74 Jose A. Lopes
dsDiskReserved = "disk_reserved"
1684 5a7fab74 Jose A. Lopes
1685 5a7fab74 Jose A. Lopes
dsDiskTotal :: String
1686 5a7fab74 Jose A. Lopes
dsDiskTotal = "disk_total"
1687 5a7fab74 Jose A. Lopes
1688 5a7fab74 Jose A. Lopes
dsDefaults :: Map String Int
1689 5a7fab74 Jose A. Lopes
dsDefaults =
1690 5a7fab74 Jose A. Lopes
  Map.fromList
1691 5a7fab74 Jose A. Lopes
  [(dsDiskTotal, 0),
1692 5a7fab74 Jose A. Lopes
   (dsDiskReserved, 0),
1693 5a7fab74 Jose A. Lopes
   (dsDiskOverhead, 0)]
1694 5a7fab74 Jose A. Lopes
1695 5a7fab74 Jose A. Lopes
dssParameterTypes :: Map String VType
1696 5a7fab74 Jose A. Lopes
dssParameterTypes =
1697 5a7fab74 Jose A. Lopes
  Map.fromList [(dsDiskTotal, VTypeInt),
1698 5a7fab74 Jose A. Lopes
                (dsDiskReserved, VTypeInt),
1699 5a7fab74 Jose A. Lopes
                (dsDiskOverhead, VTypeInt)]
1700 5a7fab74 Jose A. Lopes
1701 5a7fab74 Jose A. Lopes
dssParameters :: FrozenSet String
1702 5a7fab74 Jose A. Lopes
dssParameters =
1703 5a7fab74 Jose A. Lopes
  ConstantUtils.mkSet [dsDiskTotal, dsDiskReserved, dsDiskOverhead]
1704 5a7fab74 Jose A. Lopes
1705 5a7fab74 Jose A. Lopes
dsValidTypes :: FrozenSet String
1706 5a7fab74 Jose A. Lopes
dsValidTypes = ConstantUtils.mkSet [Types.diskTemplateToRaw DTPlain]
1707 5a7fab74 Jose A. Lopes
1708 8eb80cb3 Jose A. Lopes
-- Backend parameter names
1709 8eb80cb3 Jose A. Lopes
1710 8eb80cb3 Jose A. Lopes
beAlwaysFailover :: String
1711 8eb80cb3 Jose A. Lopes
beAlwaysFailover = "always_failover"
1712 8eb80cb3 Jose A. Lopes
1713 8eb80cb3 Jose A. Lopes
beAutoBalance :: String
1714 8eb80cb3 Jose A. Lopes
beAutoBalance = "auto_balance"
1715 8eb80cb3 Jose A. Lopes
1716 8eb80cb3 Jose A. Lopes
beMaxmem :: String
1717 8eb80cb3 Jose A. Lopes
beMaxmem = "maxmem"
1718 8eb80cb3 Jose A. Lopes
1719 8eb80cb3 Jose A. Lopes
-- | Deprecated and replaced by max and min mem
1720 8eb80cb3 Jose A. Lopes
beMemory :: String
1721 8eb80cb3 Jose A. Lopes
beMemory = "memory"
1722 8eb80cb3 Jose A. Lopes
1723 8eb80cb3 Jose A. Lopes
beMinmem :: String
1724 8eb80cb3 Jose A. Lopes
beMinmem = "minmem"
1725 8eb80cb3 Jose A. Lopes
1726 8eb80cb3 Jose A. Lopes
beSpindleUse :: String
1727 8eb80cb3 Jose A. Lopes
beSpindleUse = "spindle_use"
1728 8eb80cb3 Jose A. Lopes
1729 8eb80cb3 Jose A. Lopes
beVcpus :: String
1730 8eb80cb3 Jose A. Lopes
beVcpus = "vcpus"
1731 8eb80cb3 Jose A. Lopes
1732 8eb80cb3 Jose A. Lopes
besParameterTypes :: Map String VType
1733 8eb80cb3 Jose A. Lopes
besParameterTypes =
1734 8eb80cb3 Jose A. Lopes
  Map.fromList [(beAlwaysFailover, VTypeBool),
1735 8eb80cb3 Jose A. Lopes
                (beAutoBalance, VTypeBool),
1736 8eb80cb3 Jose A. Lopes
                (beMaxmem, VTypeSize),
1737 8eb80cb3 Jose A. Lopes
                (beMinmem, VTypeSize),
1738 8eb80cb3 Jose A. Lopes
                (beSpindleUse, VTypeInt),
1739 8eb80cb3 Jose A. Lopes
                (beVcpus, VTypeInt)]
1740 8eb80cb3 Jose A. Lopes
1741 8eb80cb3 Jose A. Lopes
besParameterTitles :: Map String String
1742 8eb80cb3 Jose A. Lopes
besParameterTitles =
1743 8eb80cb3 Jose A. Lopes
  Map.fromList [(beAutoBalance, "Auto_balance"),
1744 8eb80cb3 Jose A. Lopes
                (beMinmem, "ConfigMinMem"),
1745 8eb80cb3 Jose A. Lopes
                (beVcpus, "ConfigVCPUs"),
1746 8eb80cb3 Jose A. Lopes
                (beMaxmem, "ConfigMaxMem")]
1747 8eb80cb3 Jose A. Lopes
1748 8eb80cb3 Jose A. Lopes
besParameterCompat :: Map String VType
1749 8eb80cb3 Jose A. Lopes
besParameterCompat = Map.insert beMemory VTypeSize besParameterTypes
1750 8eb80cb3 Jose A. Lopes
1751 8eb80cb3 Jose A. Lopes
besParameters :: FrozenSet String
1752 8eb80cb3 Jose A. Lopes
besParameters =
1753 8eb80cb3 Jose A. Lopes
  ConstantUtils.mkSet [beAlwaysFailover,
1754 8eb80cb3 Jose A. Lopes
                       beAutoBalance,
1755 8eb80cb3 Jose A. Lopes
                       beMaxmem,
1756 8eb80cb3 Jose A. Lopes
                       beMinmem,
1757 8eb80cb3 Jose A. Lopes
                       beSpindleUse,
1758 8eb80cb3 Jose A. Lopes
                       beVcpus]
1759 8eb80cb3 Jose A. Lopes
1760 8397ffde Jose A. Lopes
-- | Instance specs
1761 8397ffde Jose A. Lopes
--
1762 8397ffde Jose A. Lopes
-- FIXME: these should be associated with 'Ganeti.HTools.Types.ISpec'
1763 8397ffde Jose A. Lopes
1764 8397ffde Jose A. Lopes
ispecMemSize :: String
1765 8397ffde Jose A. Lopes
ispecMemSize = ConstantUtils.ispecMemSize
1766 8397ffde Jose A. Lopes
1767 8397ffde Jose A. Lopes
ispecCpuCount :: String
1768 8397ffde Jose A. Lopes
ispecCpuCount = ConstantUtils.ispecCpuCount
1769 8397ffde Jose A. Lopes
1770 8397ffde Jose A. Lopes
ispecDiskCount :: String
1771 8397ffde Jose A. Lopes
ispecDiskCount = ConstantUtils.ispecDiskCount
1772 8397ffde Jose A. Lopes
1773 8397ffde Jose A. Lopes
ispecDiskSize :: String
1774 8397ffde Jose A. Lopes
ispecDiskSize = ConstantUtils.ispecDiskSize
1775 8397ffde Jose A. Lopes
1776 8397ffde Jose A. Lopes
ispecNicCount :: String
1777 8397ffde Jose A. Lopes
ispecNicCount = ConstantUtils.ispecNicCount
1778 8397ffde Jose A. Lopes
1779 8397ffde Jose A. Lopes
ispecSpindleUse :: String
1780 8397ffde Jose A. Lopes
ispecSpindleUse = ConstantUtils.ispecSpindleUse
1781 8397ffde Jose A. Lopes
1782 8397ffde Jose A. Lopes
ispecsParameterTypes :: Map String VType
1783 8397ffde Jose A. Lopes
ispecsParameterTypes =
1784 8397ffde Jose A. Lopes
  Map.fromList
1785 8397ffde Jose A. Lopes
  [(ConstantUtils.ispecDiskSize, VTypeInt),
1786 8397ffde Jose A. Lopes
   (ConstantUtils.ispecCpuCount, VTypeInt),
1787 8397ffde Jose A. Lopes
   (ConstantUtils.ispecSpindleUse, VTypeInt),
1788 8397ffde Jose A. Lopes
   (ConstantUtils.ispecMemSize, VTypeInt),
1789 8397ffde Jose A. Lopes
   (ConstantUtils.ispecNicCount, VTypeInt),
1790 8397ffde Jose A. Lopes
   (ConstantUtils.ispecDiskCount, VTypeInt)]
1791 8397ffde Jose A. Lopes
1792 8397ffde Jose A. Lopes
ispecsParameters :: FrozenSet String
1793 8397ffde Jose A. Lopes
ispecsParameters =
1794 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ispecCpuCount,
1795 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskCount,
1796 8397ffde Jose A. Lopes
                       ConstantUtils.ispecDiskSize,
1797 8397ffde Jose A. Lopes
                       ConstantUtils.ispecMemSize,
1798 8397ffde Jose A. Lopes
                       ConstantUtils.ispecNicCount,
1799 8397ffde Jose A. Lopes
                       ConstantUtils.ispecSpindleUse]
1800 8397ffde Jose A. Lopes
1801 8397ffde Jose A. Lopes
ispecsMinmax :: String
1802 8397ffde Jose A. Lopes
ispecsMinmax = ConstantUtils.ispecsMinmax
1803 8397ffde Jose A. Lopes
1804 8397ffde Jose A. Lopes
ispecsMax :: String
1805 8397ffde Jose A. Lopes
ispecsMax = "max"
1806 8397ffde Jose A. Lopes
1807 8397ffde Jose A. Lopes
ispecsMin :: String
1808 8397ffde Jose A. Lopes
ispecsMin = "min"
1809 8397ffde Jose A. Lopes
1810 8397ffde Jose A. Lopes
ispecsStd :: String
1811 8397ffde Jose A. Lopes
ispecsStd = ConstantUtils.ispecsStd
1812 8397ffde Jose A. Lopes
1813 8397ffde Jose A. Lopes
ipolicyDts :: String
1814 8397ffde Jose A. Lopes
ipolicyDts = ConstantUtils.ipolicyDts
1815 8397ffde Jose A. Lopes
1816 8397ffde Jose A. Lopes
ipolicyVcpuRatio :: String
1817 8397ffde Jose A. Lopes
ipolicyVcpuRatio = ConstantUtils.ipolicyVcpuRatio
1818 8397ffde Jose A. Lopes
1819 8397ffde Jose A. Lopes
ipolicySpindleRatio :: String
1820 8397ffde Jose A. Lopes
ipolicySpindleRatio = ConstantUtils.ipolicySpindleRatio
1821 8397ffde Jose A. Lopes
1822 8397ffde Jose A. Lopes
ispecsMinmaxKeys :: FrozenSet String
1823 8397ffde Jose A. Lopes
ispecsMinmaxKeys = ConstantUtils.mkSet [ispecsMax, ispecsMin]
1824 8397ffde Jose A. Lopes
1825 8397ffde Jose A. Lopes
ipolicyParameters :: FrozenSet String
1826 8397ffde Jose A. Lopes
ipolicyParameters =
1827 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyVcpuRatio,
1828 8397ffde Jose A. Lopes
                       ConstantUtils.ipolicySpindleRatio]
1829 8397ffde Jose A. Lopes
1830 8397ffde Jose A. Lopes
ipolicyAllKeys :: FrozenSet String
1831 8397ffde Jose A. Lopes
ipolicyAllKeys =
1832 8397ffde Jose A. Lopes
  ConstantUtils.union ipolicyParameters $
1833 8397ffde Jose A. Lopes
  ConstantUtils.mkSet [ConstantUtils.ipolicyDts,
1834 8397ffde Jose A. Lopes
                       ConstantUtils.ispecsMinmax,
1835 8397ffde Jose A. Lopes
                       ispecsStd]
1836 8397ffde Jose A. Lopes
1837 ecf43dcb Jose A. Lopes
-- | Node parameter names
1838 ecf43dcb Jose A. Lopes
1839 ecf43dcb Jose A. Lopes
ndExclusiveStorage :: String
1840 ecf43dcb Jose A. Lopes
ndExclusiveStorage = "exclusive_storage"
1841 ecf43dcb Jose A. Lopes
1842 ecf43dcb Jose A. Lopes
ndOobProgram :: String
1843 ecf43dcb Jose A. Lopes
ndOobProgram = "oob_program"
1844 ecf43dcb Jose A. Lopes
1845 ecf43dcb Jose A. Lopes
ndSpindleCount :: String
1846 ecf43dcb Jose A. Lopes
ndSpindleCount = "spindle_count"
1847 ecf43dcb Jose A. Lopes
1848 ecf43dcb Jose A. Lopes
ndOvs :: String
1849 ecf43dcb Jose A. Lopes
ndOvs = "ovs"
1850 ecf43dcb Jose A. Lopes
1851 ecf43dcb Jose A. Lopes
ndOvsLink :: String
1852 ecf43dcb Jose A. Lopes
ndOvsLink = "ovs_link"
1853 ecf43dcb Jose A. Lopes
1854 ecf43dcb Jose A. Lopes
ndOvsName :: String
1855 ecf43dcb Jose A. Lopes
ndOvsName = "ovs_name"
1856 ecf43dcb Jose A. Lopes
1857 ecf43dcb Jose A. Lopes
ndsParameterTypes :: Map String VType
1858 ecf43dcb Jose A. Lopes
ndsParameterTypes =
1859 ecf43dcb Jose A. Lopes
  Map.fromList
1860 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, VTypeBool),
1861 ecf43dcb Jose A. Lopes
   (ndOobProgram, VTypeString),
1862 ecf43dcb Jose A. Lopes
   (ndOvs, VTypeBool),
1863 ecf43dcb Jose A. Lopes
   (ndOvsLink, VTypeMaybeString),
1864 ecf43dcb Jose A. Lopes
   (ndOvsName, VTypeMaybeString),
1865 ecf43dcb Jose A. Lopes
   (ndSpindleCount, VTypeInt)]
1866 ecf43dcb Jose A. Lopes
1867 ecf43dcb Jose A. Lopes
ndsParameters :: FrozenSet String
1868 ecf43dcb Jose A. Lopes
ndsParameters = ConstantUtils.mkSet (Map.keys ndsParameterTypes)
1869 ecf43dcb Jose A. Lopes
1870 ecf43dcb Jose A. Lopes
ndsParameterTitles :: Map String String
1871 ecf43dcb Jose A. Lopes
ndsParameterTitles =
1872 ecf43dcb Jose A. Lopes
  Map.fromList
1873 ecf43dcb Jose A. Lopes
  [(ndExclusiveStorage, "ExclusiveStorage"),
1874 ecf43dcb Jose A. Lopes
   (ndOobProgram, "OutOfBandProgram"),
1875 ecf43dcb Jose A. Lopes
   (ndOvs, "OpenvSwitch"),
1876 ecf43dcb Jose A. Lopes
   (ndOvsLink, "OpenvSwitchLink"),
1877 ecf43dcb Jose A. Lopes
   (ndOvsName, "OpenvSwitchName"),
1878 ecf43dcb Jose A. Lopes
   (ndSpindleCount, "SpindleCount")]
1879 ecf43dcb Jose A. Lopes
1880 8eb80cb3 Jose A. Lopes
-- * Logical Disks parameters
1881 8eb80cb3 Jose A. Lopes
1882 8eb80cb3 Jose A. Lopes
ldpAccess :: String
1883 8eb80cb3 Jose A. Lopes
ldpAccess = "access"
1884 8eb80cb3 Jose A. Lopes
1885 8eb80cb3 Jose A. Lopes
ldpBarriers :: String
1886 8eb80cb3 Jose A. Lopes
ldpBarriers = "disabled-barriers"
1887 8eb80cb3 Jose A. Lopes
1888 8eb80cb3 Jose A. Lopes
ldpDefaultMetavg :: String
1889 8eb80cb3 Jose A. Lopes
ldpDefaultMetavg = "default-metavg"
1890 8eb80cb3 Jose A. Lopes
1891 8eb80cb3 Jose A. Lopes
ldpDelayTarget :: String
1892 8eb80cb3 Jose A. Lopes
ldpDelayTarget = "c-delay-target"
1893 8eb80cb3 Jose A. Lopes
1894 8eb80cb3 Jose A. Lopes
ldpDiskCustom :: String
1895 8eb80cb3 Jose A. Lopes
ldpDiskCustom = "disk-custom"
1896 8eb80cb3 Jose A. Lopes
1897 8eb80cb3 Jose A. Lopes
ldpDynamicResync :: String
1898 8eb80cb3 Jose A. Lopes
ldpDynamicResync = "dynamic-resync"
1899 3b170ad4 Jose A. Lopes
1900 8eb80cb3 Jose A. Lopes
ldpFillTarget :: String
1901 8eb80cb3 Jose A. Lopes
ldpFillTarget = "c-fill-target"
1902 85c48fbb Jose A. Lopes
1903 8eb80cb3 Jose A. Lopes
ldpMaxRate :: String
1904 8eb80cb3 Jose A. Lopes
ldpMaxRate = "c-max-rate"
1905 85c48fbb Jose A. Lopes
1906 8eb80cb3 Jose A. Lopes
ldpMinRate :: String
1907 8eb80cb3 Jose A. Lopes
ldpMinRate = "c-min-rate"
1908 85c48fbb Jose A. Lopes
1909 8eb80cb3 Jose A. Lopes
ldpNetCustom :: String
1910 8eb80cb3 Jose A. Lopes
ldpNetCustom = "net-custom"
1911 85c48fbb Jose A. Lopes
1912 8eb80cb3 Jose A. Lopes
ldpNoMetaFlush :: String
1913 8eb80cb3 Jose A. Lopes
ldpNoMetaFlush = "disable-meta-flush"
1914 8eb80cb3 Jose A. Lopes
1915 8eb80cb3 Jose A. Lopes
ldpPlanAhead :: String
1916 8eb80cb3 Jose A. Lopes
ldpPlanAhead = "c-plan-ahead"
1917 8eb80cb3 Jose A. Lopes
1918 8eb80cb3 Jose A. Lopes
ldpPool :: String
1919 8eb80cb3 Jose A. Lopes
ldpPool = "pool"
1920 8eb80cb3 Jose A. Lopes
1921 8eb80cb3 Jose A. Lopes
ldpProtocol :: String
1922 8eb80cb3 Jose A. Lopes
ldpProtocol = "protocol"
1923 8eb80cb3 Jose A. Lopes
1924 8eb80cb3 Jose A. Lopes
ldpResyncRate :: String
1925 8eb80cb3 Jose A. Lopes
ldpResyncRate = "resync-rate"
1926 8eb80cb3 Jose A. Lopes
1927 8eb80cb3 Jose A. Lopes
ldpStripes :: String
1928 8eb80cb3 Jose A. Lopes
ldpStripes = "stripes"
1929 8eb80cb3 Jose A. Lopes
1930 8eb80cb3 Jose A. Lopes
diskLdTypes :: Map String VType
1931 8eb80cb3 Jose A. Lopes
diskLdTypes =
1932 8eb80cb3 Jose A. Lopes
  Map.fromList
1933 8eb80cb3 Jose A. Lopes
  [(ldpAccess, VTypeString),
1934 8eb80cb3 Jose A. Lopes
   (ldpResyncRate, VTypeInt),
1935 8eb80cb3 Jose A. Lopes
   (ldpStripes, VTypeInt),
1936 8eb80cb3 Jose A. Lopes
   (ldpBarriers, VTypeString),
1937 8eb80cb3 Jose A. Lopes
   (ldpNoMetaFlush, VTypeBool),
1938 8eb80cb3 Jose A. Lopes
   (ldpDefaultMetavg, VTypeString),
1939 8eb80cb3 Jose A. Lopes
   (ldpDiskCustom, VTypeString),
1940 8eb80cb3 Jose A. Lopes
   (ldpNetCustom, VTypeString),
1941 8eb80cb3 Jose A. Lopes
   (ldpProtocol, VTypeString),
1942 8eb80cb3 Jose A. Lopes
   (ldpDynamicResync, VTypeBool),
1943 8eb80cb3 Jose A. Lopes
   (ldpPlanAhead, VTypeInt),
1944 8eb80cb3 Jose A. Lopes
   (ldpFillTarget, VTypeInt),
1945 8eb80cb3 Jose A. Lopes
   (ldpDelayTarget, VTypeInt),
1946 8eb80cb3 Jose A. Lopes
   (ldpMaxRate, VTypeInt),
1947 8eb80cb3 Jose A. Lopes
   (ldpMinRate, VTypeInt),
1948 8eb80cb3 Jose A. Lopes
   (ldpPool, VTypeString)]
1949 8eb80cb3 Jose A. Lopes
1950 8eb80cb3 Jose A. Lopes
diskLdParameters :: FrozenSet String
1951 8eb80cb3 Jose A. Lopes
diskLdParameters = ConstantUtils.mkSet (Map.keys diskLdTypes)
1952 85c48fbb Jose A. Lopes
1953 ec321549 Jose A. Lopes
-- * Disk template parameters
1954 ec321549 Jose A. Lopes
--
1955 ec321549 Jose A. Lopes
-- Disk template parameters can be set/changed by the user via
1956 ec321549 Jose A. Lopes
-- gnt-cluster and gnt-group)
1957 ec321549 Jose A. Lopes
1958 ec321549 Jose A. Lopes
drbdResyncRate :: String
1959 ec321549 Jose A. Lopes
drbdResyncRate = "resync-rate"
1960 ec321549 Jose A. Lopes
1961 ec321549 Jose A. Lopes
drbdDataStripes :: String
1962 ec321549 Jose A. Lopes
drbdDataStripes = "data-stripes"
1963 ec321549 Jose A. Lopes
1964 ec321549 Jose A. Lopes
drbdMetaStripes :: String
1965 ec321549 Jose A. Lopes
drbdMetaStripes = "meta-stripes"
1966 ec321549 Jose A. Lopes
1967 ec321549 Jose A. Lopes
drbdDiskBarriers :: String
1968 ec321549 Jose A. Lopes
drbdDiskBarriers = "disk-barriers"
1969 ec321549 Jose A. Lopes
1970 ec321549 Jose A. Lopes
drbdMetaBarriers :: String
1971 ec321549 Jose A. Lopes
drbdMetaBarriers = "meta-barriers"
1972 ec321549 Jose A. Lopes
1973 ec321549 Jose A. Lopes
drbdDefaultMetavg :: String
1974 ec321549 Jose A. Lopes
drbdDefaultMetavg = "metavg"
1975 ec321549 Jose A. Lopes
1976 ec321549 Jose A. Lopes
drbdDiskCustom :: String
1977 ec321549 Jose A. Lopes
drbdDiskCustom = "disk-custom"
1978 ec321549 Jose A. Lopes
1979 ec321549 Jose A. Lopes
drbdNetCustom :: String
1980 ec321549 Jose A. Lopes
drbdNetCustom = "net-custom"
1981 ec321549 Jose A. Lopes
1982 ec321549 Jose A. Lopes
drbdProtocol :: String
1983 ec321549 Jose A. Lopes
drbdProtocol = "protocol"
1984 ec321549 Jose A. Lopes
1985 ec321549 Jose A. Lopes
drbdDynamicResync :: String
1986 ec321549 Jose A. Lopes
drbdDynamicResync = "dynamic-resync"
1987 ec321549 Jose A. Lopes
1988 ec321549 Jose A. Lopes
drbdPlanAhead :: String
1989 ec321549 Jose A. Lopes
drbdPlanAhead = "c-plan-ahead"
1990 ec321549 Jose A. Lopes
1991 ec321549 Jose A. Lopes
drbdFillTarget :: String
1992 ec321549 Jose A. Lopes
drbdFillTarget = "c-fill-target"
1993 ec321549 Jose A. Lopes
1994 ec321549 Jose A. Lopes
drbdDelayTarget :: String
1995 ec321549 Jose A. Lopes
drbdDelayTarget = "c-delay-target"
1996 ec321549 Jose A. Lopes
1997 ec321549 Jose A. Lopes
drbdMaxRate :: String
1998 ec321549 Jose A. Lopes
drbdMaxRate = "c-max-rate"
1999 ec321549 Jose A. Lopes
2000 ec321549 Jose A. Lopes
drbdMinRate :: String
2001 ec321549 Jose A. Lopes
drbdMinRate = "c-min-rate"
2002 ec321549 Jose A. Lopes
2003 ec321549 Jose A. Lopes
lvStripes :: String
2004 ec321549 Jose A. Lopes
lvStripes = "stripes"
2005 ec321549 Jose A. Lopes
2006 ec321549 Jose A. Lopes
rbdAccess :: String
2007 ec321549 Jose A. Lopes
rbdAccess = "access"
2008 ec321549 Jose A. Lopes
2009 ec321549 Jose A. Lopes
rbdPool :: String
2010 ec321549 Jose A. Lopes
rbdPool = "pool"
2011 ec321549 Jose A. Lopes
2012 ec321549 Jose A. Lopes
diskDtTypes :: Map String VType
2013 ec321549 Jose A. Lopes
diskDtTypes =
2014 ec321549 Jose A. Lopes
  Map.fromList [(drbdResyncRate, VTypeInt),
2015 ec321549 Jose A. Lopes
                (drbdDataStripes, VTypeInt),
2016 ec321549 Jose A. Lopes
                (drbdMetaStripes, VTypeInt),
2017 ec321549 Jose A. Lopes
                (drbdDiskBarriers, VTypeString),
2018 ec321549 Jose A. Lopes
                (drbdMetaBarriers, VTypeBool),
2019 ec321549 Jose A. Lopes
                (drbdDefaultMetavg, VTypeString),
2020 ec321549 Jose A. Lopes
                (drbdDiskCustom, VTypeString),
2021 ec321549 Jose A. Lopes
                (drbdNetCustom, VTypeString),
2022 ec321549 Jose A. Lopes
                (drbdProtocol, VTypeString),
2023 ec321549 Jose A. Lopes
                (drbdDynamicResync, VTypeBool),
2024 ec321549 Jose A. Lopes
                (drbdPlanAhead, VTypeInt),
2025 ec321549 Jose A. Lopes
                (drbdFillTarget, VTypeInt),
2026 ec321549 Jose A. Lopes
                (drbdDelayTarget, VTypeInt),
2027 ec321549 Jose A. Lopes
                (drbdMaxRate, VTypeInt),
2028 ec321549 Jose A. Lopes
                (drbdMinRate, VTypeInt),
2029 ec321549 Jose A. Lopes
                (lvStripes, VTypeInt),
2030 ec321549 Jose A. Lopes
                (rbdAccess, VTypeString),
2031 ec321549 Jose A. Lopes
                (rbdPool, VTypeString)]
2032 ec321549 Jose A. Lopes
2033 ec321549 Jose A. Lopes
diskDtParameters :: FrozenSet String
2034 ec321549 Jose A. Lopes
diskDtParameters = ConstantUtils.mkSet (Map.keys diskDtTypes)
2035 ec321549 Jose A. Lopes
2036 ec321549 Jose A. Lopes
-- * Dynamic disk parameters
2037 ec321549 Jose A. Lopes
2038 ec321549 Jose A. Lopes
ddpLocalIp :: String
2039 ec321549 Jose A. Lopes
ddpLocalIp = "local-ip"
2040 ec321549 Jose A. Lopes
2041 ec321549 Jose A. Lopes
ddpRemoteIp :: String
2042 ec321549 Jose A. Lopes
ddpRemoteIp = "remote-ip"
2043 ec321549 Jose A. Lopes
2044 ec321549 Jose A. Lopes
ddpPort :: String
2045 ec321549 Jose A. Lopes
ddpPort = "port"
2046 ec321549 Jose A. Lopes
2047 ec321549 Jose A. Lopes
ddpLocalMinor :: String
2048 ec321549 Jose A. Lopes
ddpLocalMinor = "local-minor"
2049 ec321549 Jose A. Lopes
2050 ec321549 Jose A. Lopes
ddpRemoteMinor :: String
2051 ec321549 Jose A. Lopes
ddpRemoteMinor = "remote-minor"
2052 ec321549 Jose A. Lopes
2053 c890f66a Jose A. Lopes
-- * OOB supported commands
2054 85c48fbb Jose A. Lopes
2055 c890f66a Jose A. Lopes
oobPowerOn :: String
2056 c890f66a Jose A. Lopes
oobPowerOn = Types.oobCommandToRaw OobPowerOn
2057 85c48fbb Jose A. Lopes
2058 c890f66a Jose A. Lopes
oobPowerOff :: String
2059 c890f66a Jose A. Lopes
oobPowerOff = Types.oobCommandToRaw OobPowerOff
2060 85c48fbb Jose A. Lopes
2061 c890f66a Jose A. Lopes
oobPowerCycle :: String
2062 c890f66a Jose A. Lopes
oobPowerCycle = Types.oobCommandToRaw OobPowerCycle
2063 85c48fbb Jose A. Lopes
2064 c890f66a Jose A. Lopes
oobPowerStatus :: String
2065 c890f66a Jose A. Lopes
oobPowerStatus = Types.oobCommandToRaw OobPowerStatus
2066 85c48fbb Jose A. Lopes
2067 c890f66a Jose A. Lopes
oobHealth :: String
2068 c890f66a Jose A. Lopes
oobHealth = Types.oobCommandToRaw OobHealth
2069 85c48fbb Jose A. Lopes
2070 c890f66a Jose A. Lopes
oobCommands :: FrozenSet String
2071 c890f66a Jose A. Lopes
oobCommands = ConstantUtils.mkSet $ map Types.oobCommandToRaw [minBound..]
2072 85c48fbb Jose A. Lopes
2073 c890f66a Jose A. Lopes
oobPowerStatusPowered :: String
2074 c890f66a Jose A. Lopes
oobPowerStatusPowered = "powered"
2075 85c48fbb Jose A. Lopes
2076 c890f66a Jose A. Lopes
-- | 60 seconds
2077 c890f66a Jose A. Lopes
oobTimeout :: Int
2078 c890f66a Jose A. Lopes
oobTimeout = 60
2079 85c48fbb Jose A. Lopes
2080 c890f66a Jose A. Lopes
-- | 2 seconds
2081 c890f66a Jose A. Lopes
oobPowerDelay :: Double
2082 c890f66a Jose A. Lopes
oobPowerDelay = 2.0
2083 85c48fbb Jose A. Lopes
2084 c890f66a Jose A. Lopes
oobStatusCritical :: String
2085 c890f66a Jose A. Lopes
oobStatusCritical = Types.oobStatusToRaw OobStatusCritical
2086 85c48fbb Jose A. Lopes
2087 c890f66a Jose A. Lopes
oobStatusOk :: String
2088 c890f66a Jose A. Lopes
oobStatusOk = Types.oobStatusToRaw OobStatusOk
2089 85c48fbb Jose A. Lopes
2090 c890f66a Jose A. Lopes
oobStatusUnknown :: String
2091 c890f66a Jose A. Lopes
oobStatusUnknown = Types.oobStatusToRaw OobStatusUnknown
2092 85c48fbb Jose A. Lopes
2093 c890f66a Jose A. Lopes
oobStatusWarning :: String
2094 c890f66a Jose A. Lopes
oobStatusWarning = Types.oobStatusToRaw OobStatusWarning
2095 85c48fbb Jose A. Lopes
2096 c890f66a Jose A. Lopes
oobStatuses :: FrozenSet String
2097 c890f66a Jose A. Lopes
oobStatuses = ConstantUtils.mkSet $ map Types.oobStatusToRaw [minBound..]
2098 85c48fbb Jose A. Lopes
2099 649f774a Jose A. Lopes
-- | Instance Parameters Profile
2100 649f774a Jose A. Lopes
ppDefault :: String
2101 649f774a Jose A. Lopes
ppDefault = "default"
2102 649f774a Jose A. Lopes
2103 d4bc2eec Jose A. Lopes
-- * nic* constants are used inside the ganeti config
2104 85c48fbb Jose A. Lopes
2105 c890f66a Jose A. Lopes
nicLink :: String
2106 c890f66a Jose A. Lopes
nicLink = "link"
2107 85c48fbb Jose A. Lopes
2108 c890f66a Jose A. Lopes
nicMode :: String
2109 c890f66a Jose A. Lopes
nicMode = "mode"
2110 85c48fbb Jose A. Lopes
2111 c890f66a Jose A. Lopes
nicVlan :: String
2112 c890f66a Jose A. Lopes
nicVlan = "vlan"
2113 85c48fbb Jose A. Lopes
2114 d4bc2eec Jose A. Lopes
nicsParameterTypes :: Map String VType
2115 d4bc2eec Jose A. Lopes
nicsParameterTypes =
2116 d4bc2eec Jose A. Lopes
  Map.fromList [(nicMode, vtypeString),
2117 d4bc2eec Jose A. Lopes
                (nicLink, vtypeString),
2118 d4bc2eec Jose A. Lopes
                (nicVlan, vtypeMaybeString)]
2119 d4bc2eec Jose A. Lopes
2120 d4bc2eec Jose A. Lopes
nicsParameters :: FrozenSet String
2121 d4bc2eec Jose A. Lopes
nicsParameters = ConstantUtils.mkSet (Map.keys nicsParameterTypes)
2122 d4bc2eec Jose A. Lopes
2123 c890f66a Jose A. Lopes
nicModeBridged :: String
2124 c890f66a Jose A. Lopes
nicModeBridged = Types.nICModeToRaw NMBridged
2125 85c48fbb Jose A. Lopes
2126 c890f66a Jose A. Lopes
nicModeRouted :: String
2127 c890f66a Jose A. Lopes
nicModeRouted = Types.nICModeToRaw NMRouted
2128 85c48fbb Jose A. Lopes
2129 c890f66a Jose A. Lopes
nicModeOvs :: String
2130 c890f66a Jose A. Lopes
nicModeOvs = Types.nICModeToRaw NMOvs
2131 85c48fbb Jose A. Lopes
2132 c890f66a Jose A. Lopes
nicIpPool :: String
2133 c890f66a Jose A. Lopes
nicIpPool = Types.nICModeToRaw NMPool
2134 85c48fbb Jose A. Lopes
2135 c890f66a Jose A. Lopes
nicValidModes :: FrozenSet String
2136 c890f66a Jose A. Lopes
nicValidModes = ConstantUtils.mkSet $ map Types.nICModeToRaw [minBound..]
2137 85c48fbb Jose A. Lopes
2138 649f774a Jose A. Lopes
releaseAction :: String
2139 649f774a Jose A. Lopes
releaseAction = "release"
2140 649f774a Jose A. Lopes
2141 649f774a Jose A. Lopes
reserveAction :: String
2142 649f774a Jose A. Lopes
reserveAction = "reserve"
2143 649f774a Jose A. Lopes
2144 649f774a Jose A. Lopes
-- * idisk* constants are used in opcodes, to create/change disks
2145 649f774a Jose A. Lopes
2146 649f774a Jose A. Lopes
idiskAdopt :: String
2147 649f774a Jose A. Lopes
idiskAdopt = "adopt"
2148 649f774a Jose A. Lopes
2149 649f774a Jose A. Lopes
idiskMetavg :: String
2150 649f774a Jose A. Lopes
idiskMetavg = "metavg"
2151 649f774a Jose A. Lopes
2152 649f774a Jose A. Lopes
idiskMode :: String
2153 649f774a Jose A. Lopes
idiskMode = "mode"
2154 649f774a Jose A. Lopes
2155 649f774a Jose A. Lopes
idiskName :: String
2156 649f774a Jose A. Lopes
idiskName = "name"
2157 649f774a Jose A. Lopes
2158 649f774a Jose A. Lopes
idiskSize :: String
2159 649f774a Jose A. Lopes
idiskSize = "size"
2160 649f774a Jose A. Lopes
2161 649f774a Jose A. Lopes
idiskSpindles :: String
2162 649f774a Jose A. Lopes
idiskSpindles = "spindles"
2163 649f774a Jose A. Lopes
2164 649f774a Jose A. Lopes
idiskVg :: String
2165 649f774a Jose A. Lopes
idiskVg = "vg"
2166 649f774a Jose A. Lopes
2167 649f774a Jose A. Lopes
idiskProvider :: String
2168 649f774a Jose A. Lopes
idiskProvider = "provider"
2169 649f774a Jose A. Lopes
2170 649f774a Jose A. Lopes
idiskParamsTypes :: Map String VType
2171 649f774a Jose A. Lopes
idiskParamsTypes =
2172 649f774a Jose A. Lopes
  Map.fromList [(idiskSize, VTypeSize),
2173 649f774a Jose A. Lopes
                (idiskSpindles, VTypeInt),
2174 649f774a Jose A. Lopes
                (idiskMode, VTypeString),
2175 649f774a Jose A. Lopes
                (idiskAdopt, VTypeString),
2176 649f774a Jose A. Lopes
                (idiskVg, VTypeString),
2177 649f774a Jose A. Lopes
                (idiskMetavg, VTypeString),
2178 649f774a Jose A. Lopes
                (idiskProvider, VTypeString),
2179 649f774a Jose A. Lopes
                (idiskName, VTypeMaybeString)]
2180 649f774a Jose A. Lopes
2181 649f774a Jose A. Lopes
idiskParams :: FrozenSet String
2182 649f774a Jose A. Lopes
idiskParams = ConstantUtils.mkSet (Map.keys idiskParamsTypes)
2183 649f774a Jose A. Lopes
2184 649f774a Jose A. Lopes
-- * inic* constants are used in opcodes, to create/change nics
2185 649f774a Jose A. Lopes
2186 649f774a Jose A. Lopes
inicBridge :: String
2187 649f774a Jose A. Lopes
inicBridge = "bridge"
2188 649f774a Jose A. Lopes
2189 649f774a Jose A. Lopes
inicIp :: String
2190 649f774a Jose A. Lopes
inicIp = "ip"
2191 649f774a Jose A. Lopes
2192 649f774a Jose A. Lopes
inicLink :: String
2193 649f774a Jose A. Lopes
inicLink = "link"
2194 649f774a Jose A. Lopes
2195 649f774a Jose A. Lopes
inicMac :: String
2196 649f774a Jose A. Lopes
inicMac = "mac"
2197 649f774a Jose A. Lopes
2198 649f774a Jose A. Lopes
inicMode :: String
2199 649f774a Jose A. Lopes
inicMode = "mode"
2200 649f774a Jose A. Lopes
2201 649f774a Jose A. Lopes
inicName :: String
2202 649f774a Jose A. Lopes
inicName = "name"
2203 649f774a Jose A. Lopes
2204 649f774a Jose A. Lopes
inicNetwork :: String
2205 649f774a Jose A. Lopes
inicNetwork = "network"
2206 649f774a Jose A. Lopes
2207 649f774a Jose A. Lopes
inicVlan :: String
2208 649f774a Jose A. Lopes
inicVlan = "vlan"
2209 649f774a Jose A. Lopes
2210 649f774a Jose A. Lopes
inicParamsTypes :: Map String VType
2211 649f774a Jose A. Lopes
inicParamsTypes =
2212 649f774a Jose A. Lopes
  Map.fromList [(inicBridge, VTypeMaybeString),
2213 649f774a Jose A. Lopes
                (inicIp, VTypeMaybeString),
2214 649f774a Jose A. Lopes
                (inicLink, VTypeString),
2215 649f774a Jose A. Lopes
                (inicMac, VTypeString),
2216 649f774a Jose A. Lopes
                (inicMode, VTypeString),
2217 649f774a Jose A. Lopes
                (inicName, VTypeMaybeString),
2218 649f774a Jose A. Lopes
                (inicNetwork, VTypeMaybeString),
2219 649f774a Jose A. Lopes
                (inicVlan, VTypeMaybeString)]
2220 649f774a Jose A. Lopes
2221 649f774a Jose A. Lopes
inicParams :: FrozenSet String
2222 649f774a Jose A. Lopes
inicParams = ConstantUtils.mkSet (Map.keys inicParamsTypes)
2223 649f774a Jose A. Lopes
2224 c890f66a Jose A. Lopes
-- * Hypervisor constants
2225 85c48fbb Jose A. Lopes
2226 c890f66a Jose A. Lopes
htXenPvm :: String
2227 c890f66a Jose A. Lopes
htXenPvm = Types.hypervisorToRaw XenPvm
2228 85c48fbb Jose A. Lopes
2229 c890f66a Jose A. Lopes
htFake :: String
2230 c890f66a Jose A. Lopes
htFake = Types.hypervisorToRaw Fake
2231 85c48fbb Jose A. Lopes
2232 c890f66a Jose A. Lopes
htXenHvm :: String
2233 c890f66a Jose A. Lopes
htXenHvm = Types.hypervisorToRaw XenHvm
2234 85c48fbb Jose A. Lopes
2235 c890f66a Jose A. Lopes
htKvm :: String
2236 c890f66a Jose A. Lopes
htKvm = Types.hypervisorToRaw Kvm
2237 85c48fbb Jose A. Lopes
2238 c890f66a Jose A. Lopes
htChroot :: String
2239 c890f66a Jose A. Lopes
htChroot = Types.hypervisorToRaw Chroot
2240 85c48fbb Jose A. Lopes
2241 c890f66a Jose A. Lopes
htLxc :: String
2242 c890f66a Jose A. Lopes
htLxc = Types.hypervisorToRaw Lxc
2243 85c48fbb Jose A. Lopes
2244 c890f66a Jose A. Lopes
hyperTypes :: FrozenSet String
2245 c890f66a Jose A. Lopes
hyperTypes = ConstantUtils.mkSet $ map Types.hypervisorToRaw [minBound..]
2246 85c48fbb Jose A. Lopes
2247 c890f66a Jose A. Lopes
htsReqPort :: FrozenSet String
2248 c890f66a Jose A. Lopes
htsReqPort = ConstantUtils.mkSet [htXenHvm, htKvm]
2249 85c48fbb Jose A. Lopes
2250 c890f66a Jose A. Lopes
-- * Migration type
2251 26eca119 Jose A. Lopes
2252 c890f66a Jose A. Lopes
htMigrationLive :: String
2253 c890f66a Jose A. Lopes
htMigrationLive = Types.migrationModeToRaw MigrationLive
2254 26eca119 Jose A. Lopes
2255 c890f66a Jose A. Lopes
htMigrationNonlive :: String
2256 c890f66a Jose A. Lopes
htMigrationNonlive = Types.migrationModeToRaw MigrationNonLive
2257 26eca119 Jose A. Lopes
2258 c890f66a Jose A. Lopes
htMigrationModes :: FrozenSet String
2259 c890f66a Jose A. Lopes
htMigrationModes =
2260 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.migrationModeToRaw [minBound..]
2261 26eca119 Jose A. Lopes
2262 c890f66a Jose A. Lopes
-- * Cluster verify steps
2263 26eca119 Jose A. Lopes
2264 c890f66a Jose A. Lopes
verifyNplusoneMem :: String
2265 c890f66a Jose A. Lopes
verifyNplusoneMem = Types.verifyOptionalChecksToRaw VerifyNPlusOneMem
2266 26eca119 Jose A. Lopes
2267 c890f66a Jose A. Lopes
verifyOptionalChecks :: FrozenSet String
2268 c890f66a Jose A. Lopes
verifyOptionalChecks =
2269 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.verifyOptionalChecksToRaw [minBound..]
2270 26eca119 Jose A. Lopes
2271 c890f66a Jose A. Lopes
-- * Cluster Verify error classes
2272 26eca119 Jose A. Lopes
2273 c890f66a Jose A. Lopes
cvTcluster :: String
2274 c890f66a Jose A. Lopes
cvTcluster = "cluster"
2275 26eca119 Jose A. Lopes
2276 c890f66a Jose A. Lopes
cvTgroup :: String
2277 c890f66a Jose A. Lopes
cvTgroup = "group"
2278 26eca119 Jose A. Lopes
2279 c890f66a Jose A. Lopes
cvTnode :: String
2280 c890f66a Jose A. Lopes
cvTnode = "node"
2281 26eca119 Jose A. Lopes
2282 c890f66a Jose A. Lopes
cvTinstance :: String
2283 c890f66a Jose A. Lopes
cvTinstance = "instance"
2284 26eca119 Jose A. Lopes
2285 c890f66a Jose A. Lopes
-- * Cluster Verify error codes and documentation
2286 26eca119 Jose A. Lopes
2287 c890f66a Jose A. Lopes
cvEclustercert :: (String, String, String)
2288 c890f66a Jose A. Lopes
cvEclustercert =
2289 c890f66a Jose A. Lopes
  ("cluster",
2290 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCERT,
2291 c890f66a Jose A. Lopes
   "Cluster certificate files verification failure")
2292 26eca119 Jose A. Lopes
2293 c890f66a Jose A. Lopes
cvEclustercfg :: (String, String, String)
2294 c890f66a Jose A. Lopes
cvEclustercfg =
2295 c890f66a Jose A. Lopes
  ("cluster",
2296 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERCFG,
2297 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
2298 26eca119 Jose A. Lopes
2299 c890f66a Jose A. Lopes
cvEclusterdanglinginst :: (String, String, String)
2300 c890f66a Jose A. Lopes
cvEclusterdanglinginst =
2301 c890f66a Jose A. Lopes
  ("node",
2302 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGINST,
2303 c890f66a Jose A. Lopes
   "Some instances have a non-existing primary node")
2304 26eca119 Jose A. Lopes
2305 c890f66a Jose A. Lopes
cvEclusterdanglingnodes :: (String, String, String)
2306 c890f66a Jose A. Lopes
cvEclusterdanglingnodes =
2307 c890f66a Jose A. Lopes
  ("node",
2308 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERDANGLINGNODES,
2309 c890f66a Jose A. Lopes
   "Some nodes belong to non-existing groups")
2310 f361a6ee Jose A. Lopes
2311 c890f66a Jose A. Lopes
cvEclusterfilecheck :: (String, String, String)
2312 c890f66a Jose A. Lopes
cvEclusterfilecheck =
2313 c890f66a Jose A. Lopes
  ("cluster",
2314 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvECLUSTERFILECHECK,
2315 c890f66a Jose A. Lopes
   "Cluster configuration verification failure")
2316 f361a6ee Jose A. Lopes
2317 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize :: (String, String, String)
2318 c890f66a Jose A. Lopes
cvEgroupdifferentpvsize =
2319 c890f66a Jose A. Lopes
  ("group",
2320 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEGROUPDIFFERENTPVSIZE,
2321 c890f66a Jose A. Lopes
   "PVs in the group have different sizes")
2322 f361a6ee Jose A. Lopes
2323 c890f66a Jose A. Lopes
cvEinstancebadnode :: (String, String, String)
2324 c890f66a Jose A. Lopes
cvEinstancebadnode =
2325 c890f66a Jose A. Lopes
  ("instance",
2326 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEBADNODE,
2327 c890f66a Jose A. Lopes
   "Instance marked as running lives on an offline node")
2328 f361a6ee Jose A. Lopes
2329 c890f66a Jose A. Lopes
cvEinstancedown :: (String, String, String)
2330 c890f66a Jose A. Lopes
cvEinstancedown =
2331 c890f66a Jose A. Lopes
  ("instance",
2332 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEDOWN,
2333 c890f66a Jose A. Lopes
   "Instance not running on its primary node")
2334 f361a6ee Jose A. Lopes
2335 c890f66a Jose A. Lopes
cvEinstancefaultydisk :: (String, String, String)
2336 c890f66a Jose A. Lopes
cvEinstancefaultydisk =
2337 c890f66a Jose A. Lopes
  ("instance",
2338 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEFAULTYDISK,
2339 c890f66a Jose A. Lopes
   "Impossible to retrieve status for a disk")
2340 f361a6ee Jose A. Lopes
2341 c890f66a Jose A. Lopes
cvEinstancelayout :: (String, String, String)
2342 c890f66a Jose A. Lopes
cvEinstancelayout =
2343 c890f66a Jose A. Lopes
  ("instance",
2344 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCELAYOUT,
2345 c890f66a Jose A. Lopes
   "Instance has multiple secondary nodes")
2346 f361a6ee Jose A. Lopes
2347 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter :: (String, String, String)
2348 c890f66a Jose A. Lopes
cvEinstancemissingcfgparameter =
2349 c890f66a Jose A. Lopes
  ("instance",
2350 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGCFGPARAMETER,
2351 c890f66a Jose A. Lopes
   "A configuration parameter for an instance is missing")
2352 f361a6ee Jose A. Lopes
2353 c890f66a Jose A. Lopes
cvEinstancemissingdisk :: (String, String, String)
2354 c890f66a Jose A. Lopes
cvEinstancemissingdisk =
2355 c890f66a Jose A. Lopes
  ("instance",
2356 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEMISSINGDISK,
2357 c890f66a Jose A. Lopes
   "Missing volume on an instance")
2358 f361a6ee Jose A. Lopes
2359 c890f66a Jose A. Lopes
cvEinstancepolicy :: (String, String, String)
2360 c890f66a Jose A. Lopes
cvEinstancepolicy =
2361 c890f66a Jose A. Lopes
  ("instance",
2362 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEPOLICY,
2363 c890f66a Jose A. Lopes
   "Instance does not meet policy")
2364 f361a6ee Jose A. Lopes
2365 c890f66a Jose A. Lopes
cvEinstancesplitgroups :: (String, String, String)
2366 c890f66a Jose A. Lopes
cvEinstancesplitgroups =
2367 c890f66a Jose A. Lopes
  ("instance",
2368 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCESPLITGROUPS,
2369 c890f66a Jose A. Lopes
   "Instance with primary and secondary nodes in different groups")
2370 f361a6ee Jose A. Lopes
2371 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode :: (String, String, String)
2372 c890f66a Jose A. Lopes
cvEinstanceunsuitablenode =
2373 c890f66a Jose A. Lopes
  ("instance",
2374 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEUNSUITABLENODE,
2375 c890f66a Jose A. Lopes
   "Instance running on nodes that are not suitable for it")
2376 f361a6ee Jose A. Lopes
2377 c890f66a Jose A. Lopes
cvEinstancewrongnode :: (String, String, String)
2378 c890f66a Jose A. Lopes
cvEinstancewrongnode =
2379 c890f66a Jose A. Lopes
  ("instance",
2380 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvEINSTANCEWRONGNODE,
2381 c890f66a Jose A. Lopes
   "Instance running on the wrong node")
2382 6dc0cb59 Jose A. Lopes
2383 c890f66a Jose A. Lopes
cvEnodedrbd :: (String, String, String)
2384 c890f66a Jose A. Lopes
cvEnodedrbd =
2385 c890f66a Jose A. Lopes
  ("node",
2386 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBD,
2387 c890f66a Jose A. Lopes
   "Error parsing the DRBD status file")
2388 6dc0cb59 Jose A. Lopes
2389 c890f66a Jose A. Lopes
cvEnodedrbdhelper :: (String, String, String)
2390 c890f66a Jose A. Lopes
cvEnodedrbdhelper =
2391 c890f66a Jose A. Lopes
  ("node",
2392 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDHELPER,
2393 c890f66a Jose A. Lopes
   "Error caused by the DRBD helper")
2394 6dc0cb59 Jose A. Lopes
2395 c890f66a Jose A. Lopes
cvEnodedrbdversion :: (String, String, String)
2396 c890f66a Jose A. Lopes
cvEnodedrbdversion =
2397 c890f66a Jose A. Lopes
  ("node",
2398 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEDRBDVERSION,
2399 c890f66a Jose A. Lopes
   "DRBD version mismatch within a node group")
2400 6dc0cb59 Jose A. Lopes
2401 c890f66a Jose A. Lopes
cvEnodefilecheck :: (String, String, String)
2402 c890f66a Jose A. Lopes
cvEnodefilecheck =
2403 c890f66a Jose A. Lopes
  ("node",
2404 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILECHECK,
2405 c890f66a Jose A. Lopes
   "Error retrieving the checksum of the node files")
2406 6dc0cb59 Jose A. Lopes
2407 c890f66a Jose A. Lopes
cvEnodefilestoragepaths :: (String, String, String)
2408 c890f66a Jose A. Lopes
cvEnodefilestoragepaths =
2409 c890f66a Jose A. Lopes
  ("node",
2410 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHS,
2411 c890f66a Jose A. Lopes
   "Detected bad file storage paths")
2412 856eb53c Jose A. Lopes
2413 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable :: (String, String, String)
2414 c890f66a Jose A. Lopes
cvEnodefilestoragepathunusable =
2415 c890f66a Jose A. Lopes
  ("node",
2416 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEFILESTORAGEPATHUNUSABLE,
2417 c890f66a Jose A. Lopes
   "File storage path unusable")
2418 1c31b263 Jose A. Lopes
2419 c890f66a Jose A. Lopes
cvEnodehooks :: (String, String, String)
2420 c890f66a Jose A. Lopes
cvEnodehooks =
2421 c890f66a Jose A. Lopes
  ("node",
2422 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHOOKS,
2423 c890f66a Jose A. Lopes
   "Communication failure in hooks execution")
2424 1c31b263 Jose A. Lopes
2425 c890f66a Jose A. Lopes
cvEnodehv :: (String, String, String)
2426 c890f66a Jose A. Lopes
cvEnodehv =
2427 c890f66a Jose A. Lopes
  ("node",
2428 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEHV,
2429 c890f66a Jose A. Lopes
   "Hypervisor parameters verification failure")
2430 df726590 Jose A. Lopes
2431 c890f66a Jose A. Lopes
cvEnodelvm :: (String, String, String)
2432 c890f66a Jose A. Lopes
cvEnodelvm =
2433 c890f66a Jose A. Lopes
  ("node",
2434 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODELVM,
2435 c890f66a Jose A. Lopes
   "LVM-related node error")
2436 df726590 Jose A. Lopes
2437 c890f66a Jose A. Lopes
cvEnoden1 :: (String, String, String)
2438 c890f66a Jose A. Lopes
cvEnoden1 =
2439 c890f66a Jose A. Lopes
  ("node",
2440 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEN1,
2441 c890f66a Jose A. Lopes
   "Not enough memory to accommodate instance failovers")
2442 df726590 Jose A. Lopes
2443 c890f66a Jose A. Lopes
cvEnodenet :: (String, String, String)
2444 c890f66a Jose A. Lopes
cvEnodenet =
2445 c890f66a Jose A. Lopes
  ("node",
2446 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODENET,
2447 c890f66a Jose A. Lopes
   "Network-related node error")
2448 df726590 Jose A. Lopes
2449 c890f66a Jose A. Lopes
cvEnodeoobpath :: (String, String, String)
2450 c890f66a Jose A. Lopes
cvEnodeoobpath =
2451 c890f66a Jose A. Lopes
  ("node",
2452 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOOBPATH,
2453 c890f66a Jose A. Lopes
   "Invalid Out Of Band path")
2454 df726590 Jose A. Lopes
2455 c890f66a Jose A. Lopes
cvEnodeorphaninstance :: (String, String, String)
2456 c890f66a Jose A. Lopes
cvEnodeorphaninstance =
2457 c890f66a Jose A. Lopes
  ("node",
2458 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANINSTANCE,
2459 c890f66a Jose A. Lopes
   "Unknown intance running on a node")
2460 df726590 Jose A. Lopes
2461 c890f66a Jose A. Lopes
cvEnodeorphanlv :: (String, String, String)
2462 c890f66a Jose A. Lopes
cvEnodeorphanlv =
2463 c890f66a Jose A. Lopes
  ("node",
2464 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEORPHANLV,
2465 c890f66a Jose A. Lopes
   "Unknown LVM logical volume")
2466 df726590 Jose A. Lopes
2467 c890f66a Jose A. Lopes
cvEnodeos :: (String, String, String)
2468 c890f66a Jose A. Lopes
cvEnodeos =
2469 c890f66a Jose A. Lopes
  ("node",
2470 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEOS,
2471 c890f66a Jose A. Lopes
   "OS-related node error")
2472 7236533e Jose A. Lopes
2473 c890f66a Jose A. Lopes
cvEnoderpc :: (String, String, String)
2474 c890f66a Jose A. Lopes
cvEnoderpc =
2475 c890f66a Jose A. Lopes
  ("node",
2476 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODERPC,
2477 c890f66a Jose A. Lopes
   "Error during connection to the primary node of an instance")
2478 7236533e Jose A. Lopes
2479 c890f66a Jose A. Lopes
cvEnodesetup :: (String, String, String)
2480 c890f66a Jose A. Lopes
cvEnodesetup =
2481 c890f66a Jose A. Lopes
  ("node",
2482 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESETUP,
2483 c890f66a Jose A. Lopes
   "Node setup error")
2484 7236533e Jose A. Lopes
2485 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable :: (String, String, String)
2486 c890f66a Jose A. Lopes
cvEnodesharedfilestoragepathunusable =
2487 c890f66a Jose A. Lopes
  ("node",
2488 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESHAREDFILESTORAGEPATHUNUSABLE,
2489 c890f66a Jose A. Lopes
   "Shared file storage path unusable")
2490 7236533e Jose A. Lopes
2491 c890f66a Jose A. Lopes
cvEnodessh :: (String, String, String)
2492 c890f66a Jose A. Lopes
cvEnodessh =
2493 c890f66a Jose A. Lopes
  ("node",
2494 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODESSH,
2495 c890f66a Jose A. Lopes
   "SSH-related node error")
2496 7236533e Jose A. Lopes
2497 c890f66a Jose A. Lopes
cvEnodetime :: (String, String, String)
2498 c890f66a Jose A. Lopes
cvEnodetime =
2499 c890f66a Jose A. Lopes
  ("node",
2500 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODETIME,
2501 c890f66a Jose A. Lopes
   "Node returned invalid time")
2502 7236533e Jose A. Lopes
2503 c890f66a Jose A. Lopes
cvEnodeuserscripts :: (String, String, String)
2504 c890f66a Jose A. Lopes
cvEnodeuserscripts =
2505 c890f66a Jose A. Lopes
  ("node",
2506 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEUSERSCRIPTS,
2507 c890f66a Jose A. Lopes
   "User scripts not present or not executable")
2508 7236533e Jose A. Lopes
2509 c890f66a Jose A. Lopes
cvEnodeversion :: (String, String, String)
2510 c890f66a Jose A. Lopes
cvEnodeversion =
2511 c890f66a Jose A. Lopes
  ("node",
2512 c890f66a Jose A. Lopes
   Types.cVErrorCodeToRaw CvENODEVERSION,
2513 c890f66a Jose A. Lopes
   "Protocol version mismatch or Ganeti version mismatch")
2514 85c48fbb Jose A. Lopes
2515 c890f66a Jose A. Lopes
cvAllEcodes :: FrozenSet (String, String, String)
2516 c890f66a Jose A. Lopes
cvAllEcodes =
2517 c890f66a Jose A. Lopes
  ConstantUtils.mkSet
2518 c890f66a Jose A. Lopes
  [cvEclustercert,
2519 c890f66a Jose A. Lopes
   cvEclustercfg,
2520 c890f66a Jose A. Lopes
   cvEclusterdanglinginst,
2521 c890f66a Jose A. Lopes
   cvEclusterdanglingnodes,
2522 c890f66a Jose A. Lopes
   cvEclusterfilecheck,
2523 c890f66a Jose A. Lopes
   cvEgroupdifferentpvsize,
2524 c890f66a Jose A. Lopes
   cvEinstancebadnode,
2525 c890f66a Jose A. Lopes
   cvEinstancedown,
2526 c890f66a Jose A. Lopes
   cvEinstancefaultydisk,
2527 c890f66a Jose A. Lopes
   cvEinstancelayout,
2528 c890f66a Jose A. Lopes
   cvEinstancemissingcfgparameter,
2529 c890f66a Jose A. Lopes
   cvEinstancemissingdisk,
2530 c890f66a Jose A. Lopes
   cvEinstancepolicy,
2531 c890f66a Jose A. Lopes
   cvEinstancesplitgroups,
2532 c890f66a Jose A. Lopes
   cvEinstanceunsuitablenode,
2533 c890f66a Jose A. Lopes
   cvEinstancewrongnode,
2534 c890f66a Jose A. Lopes
   cvEnodedrbd,
2535 c890f66a Jose A. Lopes
   cvEnodedrbdhelper,
2536 c890f66a Jose A. Lopes
   cvEnodedrbdversion,
2537 c890f66a Jose A. Lopes
   cvEnodefilecheck,
2538 c890f66a Jose A. Lopes
   cvEnodefilestoragepaths,
2539 c890f66a Jose A. Lopes
   cvEnodefilestoragepathunusable,
2540 c890f66a Jose A. Lopes
   cvEnodehooks,
2541 c890f66a Jose A. Lopes
   cvEnodehv,
2542 c890f66a Jose A. Lopes
   cvEnodelvm,
2543 c890f66a Jose A. Lopes
   cvEnoden1,
2544 c890f66a Jose A. Lopes
   cvEnodenet,
2545 c890f66a Jose A. Lopes
   cvEnodeoobpath,
2546 c890f66a Jose A. Lopes
   cvEnodeorphaninstance,
2547 c890f66a Jose A. Lopes
   cvEnodeorphanlv,
2548 c890f66a Jose A. Lopes
   cvEnodeos,
2549 c890f66a Jose A. Lopes
   cvEnoderpc,
2550 c890f66a Jose A. Lopes
   cvEnodesetup,
2551 c890f66a Jose A. Lopes
   cvEnodesharedfilestoragepathunusable,
2552 c890f66a Jose A. Lopes
   cvEnodessh,
2553 c890f66a Jose A. Lopes
   cvEnodetime,
2554 c890f66a Jose A. Lopes
   cvEnodeuserscripts,
2555 c890f66a Jose A. Lopes
   cvEnodeversion]
2556 85c48fbb Jose A. Lopes
2557 c890f66a Jose A. Lopes
cvAllEcodesStrings :: FrozenSet String
2558 c890f66a Jose A. Lopes
cvAllEcodesStrings =
2559 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.cVErrorCodeToRaw [minBound..]
2560 85c48fbb Jose A. Lopes
2561 75463b9a Jose A. Lopes
-- * Node verify constants
2562 75463b9a Jose A. Lopes
2563 75463b9a Jose A. Lopes
nvBridges :: String
2564 75463b9a Jose A. Lopes
nvBridges = "bridges"
2565 75463b9a Jose A. Lopes
2566 75463b9a Jose A. Lopes
nvDrbdhelper :: String
2567 75463b9a Jose A. Lopes
nvDrbdhelper = "drbd-helper"
2568 75463b9a Jose A. Lopes
2569 75463b9a Jose A. Lopes
nvDrbdversion :: String
2570 75463b9a Jose A. Lopes
nvDrbdversion = "drbd-version"
2571 75463b9a Jose A. Lopes
2572 75463b9a Jose A. Lopes
nvDrbdlist :: String
2573 75463b9a Jose A. Lopes
nvDrbdlist = "drbd-list"
2574 75463b9a Jose A. Lopes
2575 75463b9a Jose A. Lopes
nvExclusivepvs :: String
2576 75463b9a Jose A. Lopes
nvExclusivepvs = "exclusive-pvs"
2577 75463b9a Jose A. Lopes
2578 75463b9a Jose A. Lopes
nvFilelist :: String
2579 75463b9a Jose A. Lopes
nvFilelist = "filelist"
2580 75463b9a Jose A. Lopes
2581 75463b9a Jose A. Lopes
nvAcceptedStoragePaths :: String
2582 75463b9a Jose A. Lopes
nvAcceptedStoragePaths = "allowed-file-storage-paths"
2583 75463b9a Jose A. Lopes
2584 75463b9a Jose A. Lopes
nvFileStoragePath :: String
2585 75463b9a Jose A. Lopes
nvFileStoragePath = "file-storage-path"
2586 75463b9a Jose A. Lopes
2587 75463b9a Jose A. Lopes
nvSharedFileStoragePath :: String
2588 75463b9a Jose A. Lopes
nvSharedFileStoragePath = "shared-file-storage-path"
2589 75463b9a Jose A. Lopes
2590 75463b9a Jose A. Lopes
nvHvinfo :: String
2591 75463b9a Jose A. Lopes
nvHvinfo = "hvinfo"
2592 75463b9a Jose A. Lopes
2593 75463b9a Jose A. Lopes
nvHvparams :: String
2594 75463b9a Jose A. Lopes
nvHvparams = "hvparms"
2595 75463b9a Jose A. Lopes
2596 75463b9a Jose A. Lopes
nvHypervisor :: String
2597 75463b9a Jose A. Lopes
nvHypervisor = "hypervisor"
2598 75463b9a Jose A. Lopes
2599 75463b9a Jose A. Lopes
nvInstancelist :: String
2600 75463b9a Jose A. Lopes
nvInstancelist = "instancelist"
2601 75463b9a Jose A. Lopes
2602 75463b9a Jose A. Lopes
nvLvlist :: String
2603 75463b9a Jose A. Lopes
nvLvlist = "lvlist"
2604 75463b9a Jose A. Lopes
2605 75463b9a Jose A. Lopes
nvMasterip :: String
2606 75463b9a Jose A. Lopes
nvMasterip = "master-ip"
2607 75463b9a Jose A. Lopes
2608 75463b9a Jose A. Lopes
nvNodelist :: String
2609 75463b9a Jose A. Lopes
nvNodelist = "nodelist"
2610 75463b9a Jose A. Lopes
2611 75463b9a Jose A. Lopes
nvNodenettest :: String
2612 75463b9a Jose A. Lopes
nvNodenettest = "node-net-test"
2613 75463b9a Jose A. Lopes
2614 75463b9a Jose A. Lopes
nvNodesetup :: String
2615 75463b9a Jose A. Lopes
nvNodesetup = "nodesetup"
2616 75463b9a Jose A. Lopes
2617 75463b9a Jose A. Lopes
nvOobPaths :: String
2618 75463b9a Jose A. Lopes
nvOobPaths = "oob-paths"
2619 75463b9a Jose A. Lopes
2620 75463b9a Jose A. Lopes
nvOslist :: String
2621 75463b9a Jose A. Lopes
nvOslist = "oslist"
2622 75463b9a Jose A. Lopes
2623 75463b9a Jose A. Lopes
nvPvlist :: String
2624 75463b9a Jose A. Lopes
nvPvlist = "pvlist"
2625 75463b9a Jose A. Lopes
2626 75463b9a Jose A. Lopes
nvTime :: String
2627 75463b9a Jose A. Lopes
nvTime = "time"
2628 75463b9a Jose A. Lopes
2629 75463b9a Jose A. Lopes
nvUserscripts :: String
2630 75463b9a Jose A. Lopes
nvUserscripts = "user-scripts"
2631 75463b9a Jose A. Lopes
2632 75463b9a Jose A. Lopes
nvVersion :: String
2633 75463b9a Jose A. Lopes
nvVersion = "version"
2634 75463b9a Jose A. Lopes
2635 75463b9a Jose A. Lopes
nvVglist :: String
2636 75463b9a Jose A. Lopes
nvVglist = "vglist"
2637 75463b9a Jose A. Lopes
2638 75463b9a Jose A. Lopes
nvVmnodes :: String
2639 75463b9a Jose A. Lopes
nvVmnodes = "vmnodes"
2640 75463b9a Jose A. Lopes
2641 c890f66a Jose A. Lopes
-- * Instance status
2642 85c48fbb Jose A. Lopes
2643 c890f66a Jose A. Lopes
inststAdmindown :: String
2644 c890f66a Jose A. Lopes
inststAdmindown = Types.instanceStatusToRaw StatusDown
2645 85c48fbb Jose A. Lopes
2646 c890f66a Jose A. Lopes
inststAdminoffline :: String
2647 c890f66a Jose A. Lopes
inststAdminoffline = Types.instanceStatusToRaw StatusOffline
2648 85c48fbb Jose A. Lopes
2649 c890f66a Jose A. Lopes
inststErrordown :: String
2650 c890f66a Jose A. Lopes
inststErrordown = Types.instanceStatusToRaw ErrorDown
2651 85c48fbb Jose A. Lopes
2652 c890f66a Jose A. Lopes
inststErrorup :: String
2653 c890f66a Jose A. Lopes
inststErrorup = Types.instanceStatusToRaw ErrorUp
2654 85c48fbb Jose A. Lopes
2655 c890f66a Jose A. Lopes
inststNodedown :: String
2656 c890f66a Jose A. Lopes
inststNodedown = Types.instanceStatusToRaw NodeDown
2657 85c48fbb Jose A. Lopes
2658 c890f66a Jose A. Lopes
inststNodeoffline :: String
2659 c890f66a Jose A. Lopes
inststNodeoffline = Types.instanceStatusToRaw NodeOffline
2660 37248170 Jose A. Lopes
2661 c890f66a Jose A. Lopes
inststRunning :: String
2662 c890f66a Jose A. Lopes
inststRunning = Types.instanceStatusToRaw Running
2663 37248170 Jose A. Lopes
2664 c890f66a Jose A. Lopes
inststWrongnode :: String
2665 c890f66a Jose A. Lopes
inststWrongnode = Types.instanceStatusToRaw WrongNode
2666 37248170 Jose A. Lopes
2667 c890f66a Jose A. Lopes
inststAll :: FrozenSet String
2668 c890f66a Jose A. Lopes
inststAll = ConstantUtils.mkSet $ map Types.instanceStatusToRaw [minBound..]
2669 37248170 Jose A. Lopes
2670 c890f66a Jose A. Lopes
-- * Admin states
2671 37248170 Jose A. Lopes
2672 c890f66a Jose A. Lopes
adminstDown :: String
2673 c890f66a Jose A. Lopes
adminstDown = Types.adminStateToRaw AdminDown
2674 37248170 Jose A. Lopes
2675 c890f66a Jose A. Lopes
adminstOffline :: String
2676 c890f66a Jose A. Lopes
adminstOffline = Types.adminStateToRaw AdminOffline
2677 37248170 Jose A. Lopes
2678 c890f66a Jose A. Lopes
adminstUp :: String
2679 c890f66a Jose A. Lopes
adminstUp = Types.adminStateToRaw AdminUp
2680 37248170 Jose A. Lopes
2681 c890f66a Jose A. Lopes
adminstAll :: FrozenSet String
2682 c890f66a Jose A. Lopes
adminstAll = ConstantUtils.mkSet $ map Types.adminStateToRaw [minBound..]
2683 37248170 Jose A. Lopes
2684 c890f66a Jose A. Lopes
-- * Node roles
2685 85c48fbb Jose A. Lopes
2686 c890f66a Jose A. Lopes
nrDrained :: String
2687 c890f66a Jose A. Lopes
nrDrained = Types.nodeRoleToRaw NRDrained
2688 85c48fbb Jose A. Lopes
2689 c890f66a Jose A. Lopes
nrMaster :: String
2690 c890f66a Jose A. Lopes
nrMaster = Types.nodeRoleToRaw NRMaster
2691 85c48fbb Jose A. Lopes
2692 c890f66a Jose A. Lopes
nrMcandidate :: String
2693 c890f66a Jose A. Lopes
nrMcandidate = Types.nodeRoleToRaw NRCandidate
2694 85c48fbb Jose A. Lopes
2695 c890f66a Jose A. Lopes
nrOffline :: String
2696 c890f66a Jose A. Lopes
nrOffline = Types.nodeRoleToRaw NROffline
2697 85c48fbb Jose A. Lopes
2698 c890f66a Jose A. Lopes
nrRegular :: String
2699 c890f66a Jose A. Lopes
nrRegular = Types.nodeRoleToRaw NRRegular
2700 85c48fbb Jose A. Lopes
2701 c890f66a Jose A. Lopes
nrAll :: FrozenSet String
2702 c890f66a Jose A. Lopes
nrAll = ConstantUtils.mkSet $ map Types.nodeRoleToRaw [minBound..]
2703 85c48fbb Jose A. Lopes
2704 c890f66a Jose A. Lopes
-- * Allocator framework constants
2705 85c48fbb Jose A. Lopes
2706 c890f66a Jose A. Lopes
iallocatorVersion :: Int
2707 c890f66a Jose A. Lopes
iallocatorVersion = 2
2708 85c48fbb Jose A. Lopes
2709 c890f66a Jose A. Lopes
iallocatorDirIn :: String
2710 c890f66a Jose A. Lopes
iallocatorDirIn = Types.iAllocatorTestDirToRaw IAllocatorDirIn
2711 85c48fbb Jose A. Lopes
2712 c890f66a Jose A. Lopes
iallocatorDirOut :: String
2713 c890f66a Jose A. Lopes
iallocatorDirOut = Types.iAllocatorTestDirToRaw IAllocatorDirOut
2714 85c48fbb Jose A. Lopes
2715 c890f66a Jose A. Lopes
validIallocatorDirections :: FrozenSet String
2716 c890f66a Jose A. Lopes
validIallocatorDirections =
2717 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorTestDirToRaw [minBound..]
2718 85c48fbb Jose A. Lopes
2719 c890f66a Jose A. Lopes
iallocatorModeAlloc :: String
2720 c890f66a Jose A. Lopes
iallocatorModeAlloc = Types.iAllocatorModeToRaw IAllocatorAlloc
2721 85c48fbb Jose A. Lopes
2722 c890f66a Jose A. Lopes
iallocatorModeChgGroup :: String
2723 c890f66a Jose A. Lopes
iallocatorModeChgGroup = Types.iAllocatorModeToRaw IAllocatorChangeGroup
2724 85c48fbb Jose A. Lopes
2725 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc :: String
2726 c890f66a Jose A. Lopes
iallocatorModeMultiAlloc = Types.iAllocatorModeToRaw IAllocatorMultiAlloc
2727 85c48fbb Jose A. Lopes
2728 c890f66a Jose A. Lopes
iallocatorModeNodeEvac :: String
2729 c890f66a Jose A. Lopes
iallocatorModeNodeEvac = Types.iAllocatorModeToRaw IAllocatorNodeEvac
2730 5867e439 Jose A. Lopes
2731 c890f66a Jose A. Lopes
iallocatorModeReloc :: String
2732 c890f66a Jose A. Lopes
iallocatorModeReloc = Types.iAllocatorModeToRaw IAllocatorReloc
2733 5867e439 Jose A. Lopes
2734 c890f66a Jose A. Lopes
validIallocatorModes :: FrozenSet String
2735 c890f66a Jose A. Lopes
validIallocatorModes =
2736 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.iAllocatorModeToRaw [minBound..]
2737 5867e439 Jose A. Lopes
2738 c890f66a Jose A. Lopes
iallocatorSearchPath :: [String]
2739 c890f66a Jose A. Lopes
iallocatorSearchPath = AutoConf.iallocatorSearchPath
2740 5867e439 Jose A. Lopes
2741 c890f66a Jose A. Lopes
defaultIallocatorShortcut :: String
2742 c890f66a Jose A. Lopes
defaultIallocatorShortcut = "."
2743 85c48fbb Jose A. Lopes
2744 c890f66a Jose A. Lopes
-- * Node evacuation
2745 85c48fbb Jose A. Lopes
2746 c890f66a Jose A. Lopes
nodeEvacPri :: String
2747 d067f40b Jose A. Lopes
nodeEvacPri = Types.evacModeToRaw ChangePrimary
2748 85c48fbb Jose A. Lopes
2749 c890f66a Jose A. Lopes
nodeEvacSec :: String
2750 d067f40b Jose A. Lopes
nodeEvacSec = Types.evacModeToRaw ChangeSecondary
2751 85c48fbb Jose A. Lopes
2752 c890f66a Jose A. Lopes
nodeEvacAll :: String
2753 d067f40b Jose A. Lopes
nodeEvacAll = Types.evacModeToRaw ChangeAll
2754 85c48fbb Jose A. Lopes
2755 c890f66a Jose A. Lopes
nodeEvacModes :: FrozenSet String
2756 d067f40b Jose A. Lopes
nodeEvacModes = ConstantUtils.mkSet $ map Types.evacModeToRaw [minBound..]
2757 85c48fbb Jose A. Lopes
2758 c890f66a Jose A. Lopes
-- * Job status
2759 85c48fbb Jose A. Lopes
2760 c890f66a Jose A. Lopes
jobStatusQueued :: String
2761 c890f66a Jose A. Lopes
jobStatusQueued = Types.jobStatusToRaw JOB_STATUS_QUEUED
2762 85c48fbb Jose A. Lopes
2763 c890f66a Jose A. Lopes
jobStatusWaiting :: String
2764 c890f66a Jose A. Lopes
jobStatusWaiting = Types.jobStatusToRaw JOB_STATUS_WAITING
2765 85c48fbb Jose A. Lopes
2766 c890f66a Jose A. Lopes
jobStatusCanceling :: String
2767 c890f66a Jose A. Lopes
jobStatusCanceling = Types.jobStatusToRaw JOB_STATUS_CANCELING
2768 85c48fbb Jose A. Lopes
2769 c890f66a Jose A. Lopes
jobStatusRunning :: String
2770 c890f66a Jose A. Lopes
jobStatusRunning = Types.jobStatusToRaw JOB_STATUS_RUNNING
2771 85c48fbb Jose A. Lopes
2772 c890f66a Jose A. Lopes
jobStatusCanceled :: String
2773 c890f66a Jose A. Lopes
jobStatusCanceled = Types.jobStatusToRaw JOB_STATUS_CANCELED
2774 43a9e860 Jose A. Lopes
2775 c890f66a Jose A. Lopes
jobStatusSuccess :: String
2776 c890f66a Jose A. Lopes
jobStatusSuccess = Types.jobStatusToRaw JOB_STATUS_SUCCESS
2777 43a9e860 Jose A. Lopes
2778 c890f66a Jose A. Lopes
jobStatusError :: String
2779 c890f66a Jose A. Lopes
jobStatusError = Types.jobStatusToRaw JOB_STATUS_ERROR
2780 43a9e860 Jose A. Lopes
2781 c890f66a Jose A. Lopes
jobsPending :: FrozenSet String
2782 c890f66a Jose A. Lopes
jobsPending =
2783 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [jobStatusQueued, jobStatusWaiting, jobStatusCanceling]
2784 43a9e860 Jose A. Lopes
2785 c890f66a Jose A. Lopes
jobsFinalized :: FrozenSet String
2786 c890f66a Jose A. Lopes
jobsFinalized =
2787 c890f66a Jose A. Lopes
  ConstantUtils.mkSet $ map Types.finalizedJobStatusToRaw [minBound..]
2788 43a9e860 Jose A. Lopes
2789 c890f66a Jose A. Lopes
jobStatusAll :: FrozenSet String
2790 c890f66a Jose A. Lopes
jobStatusAll = ConstantUtils.mkSet $ map Types.jobStatusToRaw [minBound..]
2791 43a9e860 Jose A. Lopes
2792 c890f66a Jose A. Lopes
-- * OpCode status
2793 43a9e860 Jose A. Lopes
2794 c890f66a Jose A. Lopes
-- ** Not yet finalized opcodes
2795 43a9e860 Jose A. Lopes
2796 c890f66a Jose A. Lopes
opStatusCanceling :: String
2797 c890f66a Jose A. Lopes
opStatusCanceling = "canceling"
2798 85c48fbb Jose A. Lopes
2799 c890f66a Jose A. Lopes
opStatusQueued :: String
2800 c890f66a Jose A. Lopes
opStatusQueued = "queued"
2801 85c48fbb Jose A. Lopes
2802 c890f66a Jose A. Lopes
opStatusRunning :: String
2803 c890f66a Jose A. Lopes
opStatusRunning = "running"
2804 85c48fbb Jose A. Lopes
2805 c890f66a Jose A. Lopes
opStatusWaiting :: String
2806 c890f66a Jose A. Lopes
opStatusWaiting = "waiting"
2807 85c48fbb Jose A. Lopes
2808 c890f66a Jose A. Lopes
-- ** Finalized opcodes
2809 85c48fbb Jose A. Lopes
2810 c890f66a Jose A. Lopes
opStatusCanceled :: String
2811 c890f66a Jose A. Lopes
opStatusCanceled = "canceled"
2812 85c48fbb Jose A. Lopes
2813 c890f66a Jose A. Lopes
opStatusError :: String
2814 c890f66a Jose A. Lopes
opStatusError = "error"
2815 85c48fbb Jose A. Lopes
2816 c890f66a Jose A. Lopes
opStatusSuccess :: String
2817 c890f66a Jose A. Lopes
opStatusSuccess = "success"
2818 85c48fbb Jose A. Lopes
2819 c890f66a Jose A. Lopes
opsFinalized :: FrozenSet String
2820 c890f66a Jose A. Lopes
opsFinalized =
2821 c890f66a Jose A. Lopes
  ConstantUtils.mkSet [opStatusCanceled, opStatusError, opStatusSuccess]
2822 85c48fbb Jose A. Lopes
2823 c890f66a Jose A. Lopes
-- * OpCode priority
2824 85c48fbb Jose A. Lopes
2825 c890f66a Jose A. Lopes
opPrioLowest :: Int
2826 c890f66a Jose A. Lopes
opPrioLowest = 19
2827 85c48fbb Jose A. Lopes
2828 c890f66a Jose A. Lopes
opPrioHighest :: Int
2829 c890f66a Jose A. Lopes
opPrioHighest = -20
2830 85c48fbb Jose A. Lopes
2831 c890f66a Jose A. Lopes
opPrioLow :: Int
2832 c890f66a Jose A. Lopes
opPrioLow = Types.opSubmitPriorityToRaw OpPrioLow
2833 85c48fbb Jose A. Lopes
2834 c890f66a Jose A. Lopes
opPrioNormal :: Int
2835 c890f66a Jose A. Lopes
opPrioNormal = Types.opSubmitPriorityToRaw OpPrioNormal
2836 85c48fbb Jose A. Lopes
2837 c890f66a Jose A. Lopes
opPrioHigh :: Int
2838 c890f66a Jose A. Lopes
opPrioHigh = Types.opSubmitPriorityToRaw OpPrioHigh
2839 5867e439 Jose A. Lopes
2840 c890f66a Jose A. Lopes
opPrioSubmitValid :: FrozenSet Int
2841 c890f66a Jose A. Lopes
opPrioSubmitValid = ConstantUtils.mkSet [opPrioLow, opPrioNormal, opPrioHigh]
2842 5867e439 Jose A. Lopes
2843 c890f66a Jose A. Lopes
opPrioDefault :: Int
2844 c890f66a Jose A. Lopes
opPrioDefault = opPrioNormal
2845 5867e439 Jose A. Lopes
2846 c890f66a Jose A. Lopes
-- * Execution log types
2847 5867e439 Jose A. Lopes
2848 c890f66a Jose A. Lopes
elogMessage :: String
2849 c890f66a Jose A. Lopes
elogMessage = Types.eLogTypeToRaw ELogMessage
2850 5867e439 Jose A. Lopes
2851 c890f66a Jose A. Lopes
elogRemoteImport :: String
2852 c890f66a Jose A. Lopes
elogRemoteImport = Types.eLogTypeToRaw ELogRemoteImport
2853 5867e439 Jose A. Lopes
2854 c890f66a Jose A. Lopes
elogJqueueTest :: String
2855 c890f66a Jose A. Lopes
elogJqueueTest = Types.eLogTypeToRaw ELogJqueueTest
2856 5867e439 Jose A. Lopes
2857 cdac0552 Jose A. Lopes
-- * Confd
2858 cdac0552 Jose A. Lopes
2859 cdac0552 Jose A. Lopes
confdProtocolVersion :: Int
2860 cdac0552 Jose A. Lopes
confdProtocolVersion = ConstantUtils.confdProtocolVersion
2861 cdac0552 Jose A. Lopes
2862 cdac0552 Jose A. Lopes
-- Confd request type
2863 cdac0552 Jose A. Lopes
2864 cdac0552 Jose A. Lopes
confdReqPing :: Int
2865 cdac0552 Jose A. Lopes
confdReqPing = Types.confdRequestTypeToRaw ReqPing
2866 cdac0552 Jose A. Lopes
2867 cdac0552 Jose A. Lopes
confdReqNodeRoleByname :: Int
2868 cdac0552 Jose A. Lopes
confdReqNodeRoleByname = Types.confdRequestTypeToRaw ReqNodeRoleByName
2869 cdac0552 Jose A. Lopes
2870 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp :: Int
2871 cdac0552 Jose A. Lopes
confdReqNodePipByInstanceIp = Types.confdRequestTypeToRaw ReqNodePipByInstPip
2872 cdac0552 Jose A. Lopes
2873 cdac0552 Jose A. Lopes
confdReqClusterMaster :: Int
2874 cdac0552 Jose A. Lopes
confdReqClusterMaster = Types.confdRequestTypeToRaw ReqClusterMaster
2875 cdac0552 Jose A. Lopes
2876 cdac0552 Jose A. Lopes
confdReqNodePipList :: Int
2877 cdac0552 Jose A. Lopes
confdReqNodePipList = Types.confdRequestTypeToRaw ReqNodePipList
2878 cdac0552 Jose A. Lopes
2879 cdac0552 Jose A. Lopes
confdReqMcPipList :: Int
2880 cdac0552 Jose A. Lopes
confdReqMcPipList = Types.confdRequestTypeToRaw ReqMcPipList
2881 cdac0552 Jose A. Lopes
2882 cdac0552 Jose A. Lopes
confdReqInstancesIpsList :: Int
2883 cdac0552 Jose A. Lopes
confdReqInstancesIpsList = Types.confdRequestTypeToRaw ReqInstIpsList
2884 cdac0552 Jose A. Lopes
2885 cdac0552 Jose A. Lopes
confdReqNodeDrbd :: Int
2886 cdac0552 Jose A. Lopes
confdReqNodeDrbd = Types.confdRequestTypeToRaw ReqNodeDrbd
2887 cdac0552 Jose A. Lopes
2888 cdac0552 Jose A. Lopes
confdReqNodeInstances :: Int
2889 cdac0552 Jose A. Lopes
confdReqNodeInstances = Types.confdRequestTypeToRaw ReqNodeInstances
2890 cdac0552 Jose A. Lopes
2891 cdac0552 Jose A. Lopes
confdReqs :: FrozenSet Int
2892 cdac0552 Jose A. Lopes
confdReqs =
2893 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet .
2894 cdac0552 Jose A. Lopes
  map Types.confdRequestTypeToRaw $
2895 cdac0552 Jose A. Lopes
  [minBound..] \\ [ReqNodeInstances]
2896 cdac0552 Jose A. Lopes
2897 cdac0552 Jose A. Lopes
-- * Confd request type
2898 cdac0552 Jose A. Lopes
2899 cdac0552 Jose A. Lopes
confdReqfieldName :: Int
2900 cdac0552 Jose A. Lopes
confdReqfieldName = Types.confdReqFieldToRaw ReqFieldName
2901 cdac0552 Jose A. Lopes
2902 cdac0552 Jose A. Lopes
confdReqfieldIp :: Int
2903 cdac0552 Jose A. Lopes
confdReqfieldIp = Types.confdReqFieldToRaw ReqFieldIp
2904 cdac0552 Jose A. Lopes
2905 cdac0552 Jose A. Lopes
confdReqfieldMnodePip :: Int
2906 cdac0552 Jose A. Lopes
confdReqfieldMnodePip = Types.confdReqFieldToRaw ReqFieldMNodePip
2907 cdac0552 Jose A. Lopes
2908 cdac0552 Jose A. Lopes
-- * Confd repl status
2909 cdac0552 Jose A. Lopes
2910 cdac0552 Jose A. Lopes
confdReplStatusOk :: Int
2911 cdac0552 Jose A. Lopes
confdReplStatusOk = Types.confdReplyStatusToRaw ReplyStatusOk
2912 cdac0552 Jose A. Lopes
2913 cdac0552 Jose A. Lopes
confdReplStatusError :: Int
2914 cdac0552 Jose A. Lopes
confdReplStatusError = Types.confdReplyStatusToRaw ReplyStatusError
2915 cdac0552 Jose A. Lopes
2916 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented :: Int
2917 cdac0552 Jose A. Lopes
confdReplStatusNotimplemented = Types.confdReplyStatusToRaw ReplyStatusNotImpl
2918 cdac0552 Jose A. Lopes
2919 cdac0552 Jose A. Lopes
confdReplStatuses :: FrozenSet Int
2920 cdac0552 Jose A. Lopes
confdReplStatuses =
2921 cdac0552 Jose A. Lopes
  ConstantUtils.mkSet $ map Types.confdReplyStatusToRaw [minBound..]
2922 cdac0552 Jose A. Lopes
2923 cdac0552 Jose A. Lopes
-- * Confd node role
2924 cdac0552 Jose A. Lopes
2925 cdac0552 Jose A. Lopes
confdNodeRoleMaster :: Int
2926 cdac0552 Jose A. Lopes
confdNodeRoleMaster = Types.confdNodeRoleToRaw NodeRoleMaster
2927 cdac0552 Jose A. Lopes
2928 cdac0552 Jose A. Lopes
confdNodeRoleCandidate :: Int
2929 cdac0552 Jose A. Lopes
confdNodeRoleCandidate = Types.confdNodeRoleToRaw NodeRoleCandidate
2930 cdac0552 Jose A. Lopes
2931 cdac0552 Jose A. Lopes
confdNodeRoleOffline :: Int
2932 cdac0552 Jose A. Lopes
confdNodeRoleOffline = Types.confdNodeRoleToRaw NodeRoleOffline
2933 cdac0552 Jose A. Lopes
2934 cdac0552 Jose A. Lopes
confdNodeRoleDrained :: Int
2935 cdac0552 Jose A. Lopes
confdNodeRoleDrained = Types.confdNodeRoleToRaw NodeRoleDrained
2936 cdac0552 Jose A. Lopes
2937 cdac0552 Jose A. Lopes
confdNodeRoleRegular :: Int
2938 cdac0552 Jose A. Lopes
confdNodeRoleRegular = Types.confdNodeRoleToRaw NodeRoleRegular
2939 cdac0552 Jose A. Lopes
2940 61e32567 Jose A. Lopes
-- * A few common errors for confd
2941 61e32567 Jose A. Lopes
2942 cdac0552 Jose A. Lopes
confdErrorUnknownEntry :: Int
2943 cdac0552 Jose A. Lopes
confdErrorUnknownEntry = Types.confdErrorTypeToRaw ConfdErrorUnknownEntry
2944 61e32567 Jose A. Lopes
2945 61e32567 Jose A. Lopes
confdErrorInternal :: Int
2946 cdac0552 Jose A. Lopes
confdErrorInternal = Types.confdErrorTypeToRaw ConfdErrorInternal
2947 61e32567 Jose A. Lopes
2948 cdac0552 Jose A. Lopes
confdErrorArgument :: Int
2949 cdac0552 Jose A. Lopes
confdErrorArgument = Types.confdErrorTypeToRaw ConfdErrorArgument
2950 61e32567 Jose A. Lopes
2951 cdac0552 Jose A. Lopes
-- * Confd request query fields
2952 dd95d461 Jose A. Lopes
2953 dd95d461 Jose A. Lopes
confdReqqLink :: String
2954 dd95d461 Jose A. Lopes
confdReqqLink = ConstantUtils.confdReqqLink
2955 dd95d461 Jose A. Lopes
2956 dd95d461 Jose A. Lopes
confdReqqIp :: String
2957 dd95d461 Jose A. Lopes
confdReqqIp = ConstantUtils.confdReqqIp
2958 dd95d461 Jose A. Lopes
2959 dd95d461 Jose A. Lopes
confdReqqIplist :: String
2960 dd95d461 Jose A. Lopes
confdReqqIplist = ConstantUtils.confdReqqIplist
2961 dd95d461 Jose A. Lopes
2962 dd95d461 Jose A. Lopes
confdReqqFields :: String
2963 dd95d461 Jose A. Lopes
confdReqqFields = ConstantUtils.confdReqqFields
2964 dd95d461 Jose A. Lopes
2965 61e32567 Jose A. Lopes
-- | Each request is "salted" by the current timestamp.
2966 61e32567 Jose A. Lopes
--
2967 61e32567 Jose A. Lopes
-- This constant decides how many seconds of skew to accept.
2968 61e32567 Jose A. Lopes
--
2969 61e32567 Jose A. Lopes
-- TODO: make this a default and allow the value to be more
2970 61e32567 Jose A. Lopes
-- configurable
2971 61e32567 Jose A. Lopes
confdMaxClockSkew :: Int
2972 61e32567 Jose A. Lopes
confdMaxClockSkew = 2 * nodeMaxClockSkew
2973 61e32567 Jose A. Lopes
2974 61e32567 Jose A. Lopes
-- | When we haven't reloaded the config for more than this amount of
2975 61e32567 Jose A. Lopes
-- seconds, we force a test to see if inotify is betraying us. Using a
2976 61e32567 Jose A. Lopes
-- prime number to ensure we get less chance of 'same wakeup' with
2977 61e32567 Jose A. Lopes
-- other processes.
2978 61e32567 Jose A. Lopes
confdConfigReloadTimeout :: Int
2979 61e32567 Jose A. Lopes
confdConfigReloadTimeout = 17
2980 61e32567 Jose A. Lopes
2981 61e32567 Jose A. Lopes
-- | If we receive more than one update in this amount of
2982 61e32567 Jose A. Lopes
-- microseconds, we move to polling every RATELIMIT seconds, rather
2983 61e32567 Jose A. Lopes
-- than relying on inotify, to be able to serve more requests.
2984 61e32567 Jose A. Lopes
confdConfigReloadRatelimit :: Int
2985 61e32567 Jose A. Lopes
confdConfigReloadRatelimit = 250000
2986 61e32567 Jose A. Lopes
2987 61e32567 Jose A. Lopes
-- | Magic number prepended to all confd queries.
2988 61e32567 Jose A. Lopes
--
2989 61e32567 Jose A. Lopes
-- This allows us to distinguish different types of confd protocols
2990 61e32567 Jose A. Lopes
-- and handle them. For example by changing this we can move the whole
2991 61e32567 Jose A. Lopes
-- payload to be compressed, or move away from json.
2992 61e32567 Jose A. Lopes
confdMagicFourcc :: String
2993 61e32567 Jose A. Lopes
confdMagicFourcc = "plj0"
2994 61e32567 Jose A. Lopes
2995 61e32567 Jose A. Lopes
-- | By default a confd request is sent to the minimum between this
2996 61e32567 Jose A. Lopes
-- number and all MCs. 6 was chosen because even in the case of a
2997 61e32567 Jose A. Lopes
-- disastrous 50% response rate, we should have enough answers to be
2998 61e32567 Jose A. Lopes
-- able to compare more than one.
2999 61e32567 Jose A. Lopes
confdDefaultReqCoverage :: Int
3000 61e32567 Jose A. Lopes
confdDefaultReqCoverage = 6
3001 61e32567 Jose A. Lopes
3002 61e32567 Jose A. Lopes
-- | Timeout in seconds to expire pending query request in the confd
3003 61e32567 Jose A. Lopes
-- client library. We don't actually expect any answer more than 10
3004 61e32567 Jose A. Lopes
-- seconds after we sent a request.
3005 61e32567 Jose A. Lopes
confdClientExpireTimeout :: Int
3006 61e32567 Jose A. Lopes
confdClientExpireTimeout = 10
3007 61e32567 Jose A. Lopes
3008 f361a6ee Jose A. Lopes
-- * Possible values for NodeGroup.alloc_policy
3009 f361a6ee Jose A. Lopes
3010 f361a6ee Jose A. Lopes
allocPolicyLastResort :: String
3011 58c09b0e Jose A. Lopes
allocPolicyLastResort = Types.allocPolicyToRaw AllocLastResort
3012 f361a6ee Jose A. Lopes
3013 f361a6ee Jose A. Lopes
allocPolicyPreferred :: String
3014 58c09b0e Jose A. Lopes
allocPolicyPreferred = Types.allocPolicyToRaw AllocPreferred
3015 f361a6ee Jose A. Lopes
3016 f361a6ee Jose A. Lopes
allocPolicyUnallocable :: String
3017 58c09b0e Jose A. Lopes
allocPolicyUnallocable = Types.allocPolicyToRaw AllocUnallocable
3018 f361a6ee Jose A. Lopes
3019 f361a6ee Jose A. Lopes
validAllocPolicies :: [String]
3020 58c09b0e Jose A. Lopes
validAllocPolicies = map Types.allocPolicyToRaw [minBound..]
3021 f361a6ee Jose A. Lopes
3022 f361a6ee Jose A. Lopes
-- | Temporary external/shared storage parameters
3023 f361a6ee Jose A. Lopes
blockdevDriverManual :: String
3024 5867e439 Jose A. Lopes
blockdevDriverManual = Types.blockDriverToRaw BlockDrvManual
3025 f361a6ee Jose A. Lopes
3026 3b170ad4 Jose A. Lopes
-- | 'qemu-img' path, required for 'ovfconverter'
3027 3b170ad4 Jose A. Lopes
qemuimgPath :: String
3028 3b170ad4 Jose A. Lopes
qemuimgPath = AutoConf.qemuimgPath
3029 3b170ad4 Jose A. Lopes
3030 3b170ad4 Jose A. Lopes
-- | Whether htools was enabled at compilation time
3031 3b170ad4 Jose A. Lopes
--
3032 3b170ad4 Jose A. Lopes
-- FIXME: this should be moved next to the other enable constants,
3033 3b170ad4 Jose A. Lopes
-- such as, 'enableConfd', and renamed to 'enableHtools'.
3034 3b170ad4 Jose A. Lopes
htools :: Bool
3035 3b170ad4 Jose A. Lopes
htools = AutoConf.htools
3036 3b170ad4 Jose A. Lopes
3037 84ad6b78 Jose A. Lopes
-- * Key files for SSH daemon
3038 84ad6b78 Jose A. Lopes
3039 84ad6b78 Jose A. Lopes
sshHostDsaPriv :: String
3040 84ad6b78 Jose A. Lopes
sshHostDsaPriv = sshConfigDir ++ "/ssh_host_dsa_key"
3041 84ad6b78 Jose A. Lopes
3042 84ad6b78 Jose A. Lopes
sshHostDsaPub :: String
3043 84ad6b78 Jose A. Lopes
sshHostDsaPub = sshHostDsaPriv ++ ".pub"
3044 84ad6b78 Jose A. Lopes
3045 84ad6b78 Jose A. Lopes
sshHostRsaPriv :: String
3046 84ad6b78 Jose A. Lopes
sshHostRsaPriv = sshConfigDir ++ "/ssh_host_rsa_key"
3047 84ad6b78 Jose A. Lopes
3048 84ad6b78 Jose A. Lopes
sshHostRsaPub :: String
3049 84ad6b78 Jose A. Lopes
sshHostRsaPub = sshHostRsaPriv ++ ".pub"
3050 84ad6b78 Jose A. Lopes
3051 06fd57e5 Jose A. Lopes
-- | Path generating random UUID
3052 06fd57e5 Jose A. Lopes
randomUuidFile :: String
3053 06fd57e5 Jose A. Lopes
randomUuidFile = ConstantUtils.randomUuidFile
3054 06fd57e5 Jose A. Lopes
3055 f361a6ee Jose A. Lopes
-- * Auto-repair tag prefixes
3056 f361a6ee Jose A. Lopes
3057 f361a6ee Jose A. Lopes
autoRepairTagPrefix :: String
3058 f361a6ee Jose A. Lopes
autoRepairTagPrefix = "ganeti:watcher:autorepair:"
3059 f361a6ee Jose A. Lopes
3060 f361a6ee Jose A. Lopes
autoRepairTagEnabled :: String
3061 f361a6ee Jose A. Lopes
autoRepairTagEnabled = autoRepairTagPrefix
3062 f361a6ee Jose A. Lopes
3063 f361a6ee Jose A. Lopes
autoRepairTagPending :: String
3064 f361a6ee Jose A. Lopes
autoRepairTagPending = autoRepairTagPrefix ++ "pending:"
3065 f361a6ee Jose A. Lopes
3066 f361a6ee Jose A. Lopes
autoRepairTagResult :: String
3067 f361a6ee Jose A. Lopes
autoRepairTagResult = autoRepairTagPrefix ++ "result:"
3068 f361a6ee Jose A. Lopes
3069 f361a6ee Jose A. Lopes
autoRepairTagSuspended :: String
3070 f361a6ee Jose A. Lopes
autoRepairTagSuspended = autoRepairTagPrefix ++ "suspend:"
3071 f361a6ee Jose A. Lopes
3072 f361a6ee Jose A. Lopes
-- * Auto-repair levels
3073 f361a6ee Jose A. Lopes
3074 f361a6ee Jose A. Lopes
autoRepairFailover :: String
3075 f361a6ee Jose A. Lopes
autoRepairFailover = "failover"
3076 f361a6ee Jose A. Lopes
3077 f361a6ee Jose A. Lopes
autoRepairFixStorage :: String
3078 f361a6ee Jose A. Lopes
autoRepairFixStorage = "fix-storage"
3079 f361a6ee Jose A. Lopes
3080 f361a6ee Jose A. Lopes
autoRepairMigrate :: String
3081 f361a6ee Jose A. Lopes
autoRepairMigrate = "migrate"
3082 f361a6ee Jose A. Lopes
3083 f361a6ee Jose A. Lopes
autoRepairReinstall :: String
3084 f361a6ee Jose A. Lopes
autoRepairReinstall = "reinstall"
3085 f361a6ee Jose A. Lopes
3086 f361a6ee Jose A. Lopes
autoRepairAllTypes :: FrozenSet String
3087 f361a6ee Jose A. Lopes
autoRepairAllTypes =
3088 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairFailover,
3089 43a9e860 Jose A. Lopes
                       autoRepairFixStorage,
3090 43a9e860 Jose A. Lopes
                       autoRepairMigrate,
3091 43a9e860 Jose A. Lopes
                       autoRepairReinstall]
3092 f361a6ee Jose A. Lopes
3093 f361a6ee Jose A. Lopes
-- * Auto-repair results
3094 f361a6ee Jose A. Lopes
3095 f361a6ee Jose A. Lopes
autoRepairEnoperm :: String
3096 f361a6ee Jose A. Lopes
autoRepairEnoperm = "enoperm"
3097 f361a6ee Jose A. Lopes
3098 f361a6ee Jose A. Lopes
autoRepairFailure :: String
3099 f361a6ee Jose A. Lopes
autoRepairFailure = "failure"
3100 f361a6ee Jose A. Lopes
3101 f361a6ee Jose A. Lopes
autoRepairSuccess :: String
3102 f361a6ee Jose A. Lopes
autoRepairSuccess = "success"
3103 f361a6ee Jose A. Lopes
3104 f361a6ee Jose A. Lopes
autoRepairAllResults :: FrozenSet String
3105 f361a6ee Jose A. Lopes
autoRepairAllResults =
3106 43a9e860 Jose A. Lopes
  ConstantUtils.mkSet [autoRepairEnoperm, autoRepairFailure, autoRepairSuccess]
3107 f361a6ee Jose A. Lopes
3108 f361a6ee Jose A. Lopes
-- | The version identifier for builtin data collectors
3109 f361a6ee Jose A. Lopes
builtinDataCollectorVersion :: String
3110 f361a6ee Jose A. Lopes
builtinDataCollectorVersion = "B"
3111 2924f169 Jose A. Lopes
3112 2924f169 Jose A. Lopes
-- | The reason trail opcode parameter name
3113 2924f169 Jose A. Lopes
opcodeReason :: String
3114 2924f169 Jose A. Lopes
opcodeReason = "reason"
3115 2924f169 Jose A. Lopes
3116 2924f169 Jose A. Lopes
diskstatsFile :: String
3117 2924f169 Jose A. Lopes
diskstatsFile = "/proc/diskstats"
3118 2924f169 Jose A. Lopes
3119 74129b52 Jose A. Lopes
-- *  CPU load collector
3120 74129b52 Jose A. Lopes
3121 2924f169 Jose A. Lopes
statFile :: String
3122 2924f169 Jose A. Lopes
statFile = "/proc/stat"
3123 2924f169 Jose A. Lopes
3124 74129b52 Jose A. Lopes
cpuavgloadBufferSize :: Int
3125 74129b52 Jose A. Lopes
cpuavgloadBufferSize = 150
3126 74129b52 Jose A. Lopes
3127 74129b52 Jose A. Lopes
cpuavgloadWindowSize :: Int
3128 74129b52 Jose A. Lopes
cpuavgloadWindowSize = 600
3129 74129b52 Jose A. Lopes
3130 2924f169 Jose A. Lopes
-- | Mond's variable for periodical data collection
3131 2924f169 Jose A. Lopes
mondTimeInterval :: Int
3132 2924f169 Jose A. Lopes
mondTimeInterval = 5
3133 9b9e088c Raffa Santi
3134 9b9e088c Raffa Santi
-- * Disk access modes
3135 9b9e088c Raffa Santi
3136 9b9e088c Raffa Santi
diskUserspace :: String
3137 9b9e088c Raffa Santi
diskUserspace = Types.diskAccessModeToRaw DiskUserspace
3138 9b9e088c Raffa Santi
3139 9b9e088c Raffa Santi
diskKernelspace :: String
3140 9b9e088c Raffa Santi
diskKernelspace = Types.diskAccessModeToRaw DiskKernelspace
3141 9b9e088c Raffa Santi
3142 9b9e088c Raffa Santi
diskValidAccessModes :: FrozenSet String
3143 9b9e088c Raffa Santi
diskValidAccessModes =
3144 9b9e088c Raffa Santi
  ConstantUtils.mkSet $ map Types.diskAccessModeToRaw [minBound..]
3145 55f0626b Klaus Aehlig
3146 55f0626b Klaus Aehlig
-- | Timeout for queue draining in upgrades
3147 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout :: Int
3148 55f0626b Klaus Aehlig
upgradeQueueDrainTimeout = 36 * 60 * 60 -- 1.5 days
3149 55f0626b Klaus Aehlig
3150 55f0626b Klaus Aehlig
-- | Intervall at which the queue is polled during upgrades
3151 55f0626b Klaus Aehlig
upgradeQueuePollInterval :: Int
3152 55f0626b Klaus Aehlig
upgradeQueuePollInterval  = 10