Statistics
| Branch: | Tag: | Revision:

root / lib / constants.py @ 295ed29b

History | View | Annotate | Download (63.4 kB)

1 2f31098c Iustin Pop
#
2 a8083063 Iustin Pop
#
3 a8083063 Iustin Pop
4 7e7fa841 Iustin Pop
# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Google Inc.
5 a8083063 Iustin Pop
#
6 a8083063 Iustin Pop
# This program is free software; you can redistribute it and/or modify
7 a8083063 Iustin Pop
# it under the terms of the GNU General Public License as published by
8 a8083063 Iustin Pop
# the Free Software Foundation; either version 2 of the License, or
9 a8083063 Iustin Pop
# (at your option) any later version.
10 a8083063 Iustin Pop
#
11 a8083063 Iustin Pop
# This program is distributed in the hope that it will be useful, but
12 a8083063 Iustin Pop
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 a8083063 Iustin Pop
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 a8083063 Iustin Pop
# General Public License for more details.
15 a8083063 Iustin Pop
#
16 a8083063 Iustin Pop
# You should have received a copy of the GNU General Public License
17 a8083063 Iustin Pop
# along with this program; if not, write to the Free Software
18 a8083063 Iustin Pop
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 a8083063 Iustin Pop
# 02110-1301, USA.
20 a8083063 Iustin Pop
21 a8083063 Iustin Pop
22 a8083063 Iustin Pop
"""Module holding different constants."""
23 a8083063 Iustin Pop
24 4fe80ef2 Iustin Pop
import re
25 47334810 Iustin Pop
import socket
26 4fe80ef2 Iustin Pop
27 acf9af53 Jose A. Lopes
from ganeti import _constants
28 13aeae6a Iustin Pop
from ganeti import _vcsversion
29 b8028dcf Michael Hanselmann
from ganeti import compat
30 9f2265bc Michael Hanselmann
from ganeti import pathutils
31 3329f4de Michael Hanselmann
32 7c18ef8e Michael Hanselmann
33 a8083063 Iustin Pop
# various versions
34 e0d672fa Jose A. Lopes
RELEASE_VERSION = _constants.RELEASE_VERSION
35 d1a7d66f Guido Trotter
OS_API_V10 = 10
36 d1a7d66f Guido Trotter
OS_API_V15 = 15
37 b41b3516 Iustin Pop
OS_API_V20 = 20
38 b8028dcf Michael Hanselmann
OS_API_VERSIONS = compat.UniqueFrozenset([
39 b8028dcf Michael Hanselmann
  OS_API_V10,
40 b8028dcf Michael Hanselmann
  OS_API_V15,
41 b8028dcf Michael Hanselmann
  OS_API_V20,
42 b8028dcf Michael Hanselmann
  ])
43 13aeae6a Iustin Pop
VCS_VERSION = _vcsversion.VCS_VERSION
44 a8083063 Iustin Pop
EXPORT_VERSION = 0
45 bac5ffc3 Oleksiy Mishchenko
RAPI_VERSION = 2
46 a8083063 Iustin Pop
47 e0d672fa Jose A. Lopes
CONFIG_MAJOR = _constants.CONFIG_MAJOR
48 e0d672fa Jose A. Lopes
CONFIG_MINOR = _constants.CONFIG_MINOR
49 e0d672fa Jose A. Lopes
CONFIG_REVISION = _constants.CONFIG_REVISION
50 e0d672fa Jose A. Lopes
CONFIG_VERSION = _constants.CONFIG_VERSION
51 a8083063 Iustin Pop
52 cc7d6f1a Michael Hanselmann
#: RPC protocol version
53 e0d672fa Jose A. Lopes
PROTOCOL_VERSION = _constants.PROTOCOL_VERSION
54 cc7d6f1a Michael Hanselmann
55 8b72b05c René Nussbaumer
# user separation
56 d5b17094 Jose A. Lopes
DAEMONS_GROUP = _constants.DAEMONS_GROUP
57 d5b17094 Jose A. Lopes
ADMIN_GROUP = _constants.ADMIN_GROUP
58 d5b17094 Jose A. Lopes
MASTERD_USER = _constants.MASTERD_USER
59 d5b17094 Jose A. Lopes
MASTERD_GROUP = _constants.MASTERD_GROUP
60 d5b17094 Jose A. Lopes
RAPI_USER = _constants.RAPI_USER
61 d5b17094 Jose A. Lopes
RAPI_GROUP = _constants.RAPI_GROUP
62 d5b17094 Jose A. Lopes
CONFD_USER = _constants.CONFD_USER
63 d5b17094 Jose A. Lopes
CONFD_GROUP = _constants.CONFD_GROUP
64 d5b17094 Jose A. Lopes
LUXID_USER = _constants.LUXID_USER
65 d5b17094 Jose A. Lopes
LUXID_GROUP = _constants.LUXID_GROUP
66 d5b17094 Jose A. Lopes
NODED_USER = _constants.NODED_USER
67 d5b17094 Jose A. Lopes
NODED_GROUP = _constants.NODED_GROUP
68 d5b17094 Jose A. Lopes
MOND_USER = _constants.MOND_USER
69 d5b17094 Jose A. Lopes
MOND_GROUP = _constants.MOND_GROUP
70 d5b17094 Jose A. Lopes
SSH_LOGIN_USER = _constants.SSH_LOGIN_USER
71 d5b17094 Jose A. Lopes
SSH_CONSOLE_USER = _constants.SSH_CONSOLE_USER
72 8b72b05c René Nussbaumer
73 7e7629c6 Tsachy Shacham
# cpu pinning separators and constants
74 7e7629c6 Tsachy Shacham
CPU_PINNING_SEP = ":"
75 7e7629c6 Tsachy Shacham
CPU_PINNING_ALL = "all"
76 7e7629c6 Tsachy Shacham
# internal representation of "all"
77 7e7629c6 Tsachy Shacham
CPU_PINNING_ALL_VAL = -1
78 bf5681c0 Tsachy Shacham
# one "all" entry in a CPU list means CPU pinning is off
79 bf5681c0 Tsachy Shacham
CPU_PINNING_OFF = [CPU_PINNING_ALL_VAL]
80 7e7629c6 Tsachy Shacham
81 7e7629c6 Tsachy Shacham
# A Xen-specific implementation detail - there is no way to actually say
82 7e7629c6 Tsachy Shacham
# "use any cpu for pinning" in a Xen configuration file, as opposed to the
83 7e7629c6 Tsachy Shacham
# command line, where you can say "xm vcpu-pin <domain> <vcpu> all".
84 7e7629c6 Tsachy Shacham
# The workaround used in Xen is "0-63" (see source code function
85 7e7629c6 Tsachy Shacham
# xm_vcpu_pin in <xen-source>/tools/python/xen/xm/main.py).
86 7e7629c6 Tsachy Shacham
# To support future changes, the following constant is treated as a
87 7e7629c6 Tsachy Shacham
# blackbox string that simply means use-any-cpu-for-pinning-under-xen.
88 7e7629c6 Tsachy Shacham
CPU_PINNING_ALL_XEN = "0-63"
89 a03fcb26 René Nussbaumer
90 bf5681c0 Tsachy Shacham
# A KVM-specific implementation detail - the following value is used
91 bf5681c0 Tsachy Shacham
# to set CPU affinity to all processors (#0 through #31), per taskset
92 bf5681c0 Tsachy Shacham
# man page.
93 38ef0c2c Michael Hanselmann
# FIXME: This only works for machines with up to 32 CPU cores
94 bf5681c0 Tsachy Shacham
CPU_PINNING_ALL_KVM = 0xFFFFFFFF
95 bf5681c0 Tsachy Shacham
96 6e991d0e René Nussbaumer
# Wipe
97 da63bb4e René Nussbaumer
DD_CMD = "dd"
98 a03fcb26 René Nussbaumer
MAX_WIPE_CHUNK = 1024 # 1GB
99 a03fcb26 René Nussbaumer
MIN_WIPE_CHUNK_PERCENT = 10
100 a03fcb26 René Nussbaumer
101 8b72b05c René Nussbaumer
RUN_DIRS_MODE = 0775
102 5bae14d9 Guido Trotter
SECURE_DIR_MODE = 0700
103 637c8ab8 Balazs Lecz
SECURE_FILE_MODE = 0600
104 b6135bbc Apollon Oikonomopoulos
ADOPTABLE_BLOCKDEV_ROOT = "/dev/disk/"
105 e0d672fa Jose A. Lopes
ENABLE_CONFD = _constants.ENABLE_CONFD
106 e0d672fa Jose A. Lopes
ENABLE_MOND = _constants.ENABLE_MOND
107 e0d672fa Jose A. Lopes
ENABLE_SPLIT_QUERY = _constants.ENABLE_SPLIT_QUERY
108 e0d672fa Jose A. Lopes
ENABLE_RESTRICTED_COMMANDS = _constants.ENABLE_RESTRICTED_COMMANDS
109 9894ece7 Michael Hanselmann
110 d1ab11f2 Michael Hanselmann
# SSH constants
111 f2cf4da2 Jose A. Lopes
SSH = _constants.SSH
112 f2cf4da2 Jose A. Lopes
SCP = _constants.SCP
113 d1ab11f2 Michael Hanselmann
114 f2cf4da2 Jose A. Lopes
NODED = _constants.NODED
115 f2cf4da2 Jose A. Lopes
CONFD = _constants.CONFD
116 f2cf4da2 Jose A. Lopes
LUXID = _constants.LUXID
117 f2cf4da2 Jose A. Lopes
RAPI = _constants.RAPI
118 f2cf4da2 Jose A. Lopes
MASTERD = _constants.MASTERD
119 f2cf4da2 Jose A. Lopes
MOND = _constants.MOND
120 cd50653c Guido Trotter
121 f2cf4da2 Jose A. Lopes
DAEMONS = _constants.DAEMONS
122 a8828704 Michele Tartara
123 191e5c19 Jose A. Lopes
DAEMONS_PORTS = _constants.DAEMONS_PORTS
124 191e5c19 Jose A. Lopes
125 191e5c19 Jose A. Lopes
DEFAULT_NODED_PORT = _constants.DEFAULT_NODED_PORT
126 191e5c19 Jose A. Lopes
DEFAULT_CONFD_PORT = _constants.DEFAULT_CONFD_PORT
127 191e5c19 Jose A. Lopes
DEFAULT_MOND_PORT = _constants.DEFAULT_MOND_PORT
128 191e5c19 Jose A. Lopes
DEFAULT_RAPI_PORT = _constants.DEFAULT_RAPI_PORT
129 cd50653c Guido Trotter
130 a8083063 Iustin Pop
FIRST_DRBD_PORT = 11000
131 a8083063 Iustin Pop
LAST_DRBD_PORT = 14999
132 a8083063 Iustin Pop
133 1a79791d Jose A. Lopes
DAEMONS_LOGBASE = _constants.DAEMONS_LOGBASE
134 3a6a89d7 Michael Hanselmann
135 9411474b Iustin Pop
DAEMONS_LOGFILES = \
136 9411474b Iustin Pop
    dict((daemon, pathutils.GetLogFilename(DAEMONS_LOGBASE[daemon]))
137 9411474b Iustin Pop
         for daemon in DAEMONS_LOGBASE)
138 9411474b Iustin Pop
139 a8828704 Michele Tartara
# Some daemons might require more than one logfile.
140 f511082f Michele Tartara
# Specifically, right now only the Haskell http library "snap", used by the
141 f511082f Michele Tartara
# monitoring daemon, requires multiple log files.
142 a8828704 Michele Tartara
143 a8828704 Michele Tartara
# These are the only valid reasons for having an extra logfile
144 a8828704 Michele Tartara
EXTRA_LOGREASON_ACCESS = "access"
145 a8828704 Michele Tartara
EXTRA_LOGREASON_ERROR = "error"
146 a8828704 Michele Tartara
147 a8828704 Michele Tartara
VALID_EXTRA_LOGREASONS = compat.UniqueFrozenset([
148 a8828704 Michele Tartara
  EXTRA_LOGREASON_ACCESS,
149 a8828704 Michele Tartara
  EXTRA_LOGREASON_ERROR,
150 a8828704 Michele Tartara
  ])
151 a8828704 Michele Tartara
152 a8828704 Michele Tartara
# These are the extra logfiles, grouped by daemon
153 f511082f Michele Tartara
DAEMONS_EXTRA_LOGBASE = {
154 f511082f Michele Tartara
  MOND: {
155 1c31b263 Jose A. Lopes
    EXTRA_LOGREASON_ACCESS: _constants.EXTRA_LOGREASON_ACCESS,
156 1c31b263 Jose A. Lopes
    EXTRA_LOGREASON_ERROR: _constants.EXTRA_LOGREASON_ERROR,
157 f511082f Michele Tartara
    }
158 f511082f Michele Tartara
  }
159 a8828704 Michele Tartara
160 a8828704 Michele Tartara
DAEMONS_EXTRA_LOGFILES = \
161 a8828704 Michele Tartara
  dict((daemon, dict((extra,
162 a8828704 Michele Tartara
       pathutils.GetLogFilename(DAEMONS_EXTRA_LOGBASE[daemon][extra]))
163 a8828704 Michele Tartara
       for extra in DAEMONS_EXTRA_LOGBASE[daemon]))
164 a8828704 Michele Tartara
         for daemon in DAEMONS_EXTRA_LOGBASE)
165 a8828704 Michele Tartara
166 df726590 Jose A. Lopes
DEV_CONSOLE = _constants.DEV_CONSOLE
167 481d47e8 Luca Bigliardi
168 1b045f5d Balazs Lecz
PROC_MOUNTS = "/proc/mounts"
169 1b045f5d Balazs Lecz
170 3d5ebbf0 Stephen Shirley
# Local UniX Interface related constants
171 edada04b Michele Tartara
LUXI_EOM = chr(3)
172 e986f20c Michael Hanselmann
LUXI_VERSION = CONFIG_VERSION
173 055d6ac0 Iustin Pop
#: Environment variable for the luxi override socket
174 055d6ac0 Iustin Pop
LUXI_OVERRIDE = "FORCE_LUXI_SOCKET"
175 055d6ac0 Iustin Pop
LUXI_OVERRIDE_MASTER = "master"
176 055d6ac0 Iustin Pop
LUXI_OVERRIDE_QUERY = "query"
177 25942a6c Guido Trotter
178 d0c8c01d Iustin Pop
# one of "no", "yes", "only"
179 df726590 Jose A. Lopes
SYSLOG_USAGE = _constants.SYSLOG_USAGE
180 df726590 Jose A. Lopes
SYSLOG_NO = _constants.SYSLOG_NO
181 df726590 Jose A. Lopes
SYSLOG_YES = _constants.SYSLOG_YES
182 df726590 Jose A. Lopes
SYSLOG_ONLY = _constants.SYSLOG_ONLY
183 df726590 Jose A. Lopes
SYSLOG_SOCKET = _constants.SYSLOG_SOCKET
184 551b6283 Iustin Pop
185 a8083063 Iustin Pop
EXPORT_CONF_FILE = "config.ini"
186 a8083063 Iustin Pop
187 7236533e Jose A. Lopes
XEN_BOOTLOADER = _constants.XEN_BOOTLOADER
188 7236533e Jose A. Lopes
XEN_KERNEL = _constants.XEN_KERNEL
189 7236533e Jose A. Lopes
XEN_INITRD = _constants.XEN_INITRD
190 7236533e Jose A. Lopes
XEN_CMD_XM = _constants.XEN_CMD_XM
191 7236533e Jose A. Lopes
XEN_CMD_XL = _constants.XEN_CMD_XL
192 7236533e Jose A. Lopes
KNOWN_XEN_COMMANDS = _constants.KNOWN_XEN_COMMANDS
193 0c348b86 Michael Hanselmann
194 053c356a Guido Trotter
# When the Xen toolstack used is "xl", live migration requires the source host
195 053c356a Guido Trotter
# to connect to the target host via ssh (xl runs this command). We need to pass
196 053c356a Guido Trotter
# the command xl runs some extra info so that it can use Ganeti's key
197 053c356a Guido Trotter
# verification and not fail. Note that this string is incomplete: it must be
198 053c356a Guido Trotter
# filled with the cluster name before being used.
199 f215debf Guido Trotter
XL_SSH_CMD = ("ssh -l %s -oGlobalKnownHostsFile=%s"
200 053c356a Guido Trotter
              " -oUserKnownHostsFile=/dev/null"
201 053c356a Guido Trotter
              " -oCheckHostIp=no -oStrictHostKeyChecking=yes"
202 f215debf Guido Trotter
              " -oHostKeyAlias=%%s") % (SSH_LOGIN_USER,
203 f215debf Guido Trotter
                                        pathutils.SSH_KNOWN_HOSTS_FILE)
204 f00b46bc Michael Hanselmann
205 e0d672fa Jose A. Lopes
KVM_PATH = _constants.KVM_PATH
206 e0d672fa Jose A. Lopes
KVM_KERNEL = _constants.KVM_KERNEL
207 e0d672fa Jose A. Lopes
SOCAT_PATH = _constants.SOCAT_PATH
208 e0d672fa Jose A. Lopes
SOCAT_USE_ESCAPE = _constants.SOCAT_USE_ESCAPE
209 e0d672fa Jose A. Lopes
SOCAT_USE_COMPRESS = _constants.SOCAT_USE_COMPRESS
210 86d6bc2a Guido Trotter
SOCAT_ESCAPE_CODE = "0x1d"
211 7e2c5b9e Guido Trotter
212 25ce3ec4 Michael Hanselmann
#: Console as SSH command
213 25ce3ec4 Michael Hanselmann
CONS_SSH = "ssh"
214 25ce3ec4 Michael Hanselmann
215 25ce3ec4 Michael Hanselmann
#: Console as VNC server
216 25ce3ec4 Michael Hanselmann
CONS_VNC = "vnc"
217 25ce3ec4 Michael Hanselmann
218 4d2cdb5a Andrea Spadaccini
#: Console as SPICE server
219 4d2cdb5a Andrea Spadaccini
CONS_SPICE = "spice"
220 4d2cdb5a Andrea Spadaccini
221 25ce3ec4 Michael Hanselmann
#: Display a message for console access
222 25ce3ec4 Michael Hanselmann
CONS_MESSAGE = "msg"
223 25ce3ec4 Michael Hanselmann
224 25ce3ec4 Michael Hanselmann
#: All console types
225 b8028dcf Michael Hanselmann
CONS_ALL = compat.UniqueFrozenset([
226 b8028dcf Michael Hanselmann
  CONS_SSH,
227 b8028dcf Michael Hanselmann
  CONS_VNC,
228 b8028dcf Michael Hanselmann
  CONS_SPICE,
229 b8028dcf Michael Hanselmann
  CONS_MESSAGE,
230 b8028dcf Michael Hanselmann
  ])
231 25ce3ec4 Michael Hanselmann
232 bdd5e420 Michael Hanselmann
# For RSA keys more bits are better, but they also make operations more
233 bdd5e420 Michael Hanselmann
# expensive. NIST SP 800-131 recommends a minimum of 2048 bits from the year
234 bdd5e420 Michael Hanselmann
# 2010 on.
235 bdd5e420 Michael Hanselmann
RSA_KEY_BITS = 2048
236 bdd5e420 Michael Hanselmann
237 971bbd84 Michael Hanselmann
# Ciphers allowed for SSL connections. For the format, see ciphers(1). A better
238 971bbd84 Michael Hanselmann
# way to disable ciphers would be to use the exclamation mark (!), but socat
239 971bbd84 Michael Hanselmann
# versions below 1.5 can't parse exclamation marks in options properly. When
240 7407c2d5 Adeodato Simo
# modifying the ciphers, ensure not to accidentially add something after it's
241 971bbd84 Michael Hanselmann
# been removed. Use the "openssl" utility to check the allowed ciphers, e.g.
242 971bbd84 Michael Hanselmann
# "openssl ciphers -v HIGH:-DES".
243 971bbd84 Michael Hanselmann
OPENSSL_CIPHERS = "HIGH:-DES:-3DES:-EXPORT:-ADH"
244 971bbd84 Michael Hanselmann
245 bdd5e420 Michael Hanselmann
# Digest used to sign certificates ("openssl x509" uses SHA1 by default)
246 bdd5e420 Michael Hanselmann
X509_CERT_SIGN_DIGEST = "SHA1"
247 bdd5e420 Michael Hanselmann
248 600535f0 Manuel Franceschini
# Default validity of certificates in days
249 600535f0 Manuel Franceschini
X509_CERT_DEFAULT_VALIDITY = 365 * 5
250 600535f0 Manuel Franceschini
251 600535f0 Manuel Franceschini
# commonName (CN) used in certificates
252 600535f0 Manuel Franceschini
X509_CERT_CN = "ganeti.example.com"
253 600535f0 Manuel Franceschini
254 68857643 Michael Hanselmann
X509_CERT_SIGNATURE_HEADER = "X-Ganeti-Signature"
255 68857643 Michael Hanselmann
256 2d76b580 Michael Hanselmann
# Import/export daemon mode
257 2d76b580 Michael Hanselmann
IEM_IMPORT = "import"
258 2d76b580 Michael Hanselmann
IEM_EXPORT = "export"
259 2d76b580 Michael Hanselmann
260 7e3c1da6 Michael Hanselmann
# Import/export transport compression
261 7e3c1da6 Michael Hanselmann
IEC_NONE = "none"
262 7e3c1da6 Michael Hanselmann
IEC_GZIP = "gzip"
263 b8028dcf Michael Hanselmann
IEC_ALL = compat.UniqueFrozenset([
264 7e3c1da6 Michael Hanselmann
  IEC_NONE,
265 7e3c1da6 Michael Hanselmann
  IEC_GZIP,
266 7e3c1da6 Michael Hanselmann
  ])
267 7e3c1da6 Michael Hanselmann
268 f9323011 Michael Hanselmann
IE_CUSTOM_SIZE = "fd"
269 f9323011 Michael Hanselmann
270 1d3dfa29 Michael Hanselmann
IE_MAGIC_RE = re.compile(r"^[-_.a-zA-Z0-9]{5,100}$")
271 1d3dfa29 Michael Hanselmann
272 1651d116 Michael Hanselmann
# Import/export I/O
273 1651d116 Michael Hanselmann
# Direct file I/O, equivalent to a shell's I/O redirection using '<' or '>'
274 1651d116 Michael Hanselmann
IEIO_FILE = "file"
275 1651d116 Michael Hanselmann
# Raw block device I/O using "dd"
276 1651d116 Michael Hanselmann
IEIO_RAW_DISK = "raw"
277 1651d116 Michael Hanselmann
# OS definition import/export script
278 1651d116 Michael Hanselmann
IEIO_SCRIPT = "script"
279 1651d116 Michael Hanselmann
280 973d7867 Iustin Pop
VALUE_DEFAULT = "default"
281 4c566ede Guido Trotter
VALUE_AUTO = "auto"
282 4c566ede Guido Trotter
VALUE_GENERATE = "generate"
283 973d7867 Iustin Pop
VALUE_NONE = "none"
284 1817f49b Guido Trotter
VALUE_TRUE = "true"
285 1817f49b Guido Trotter
VALUE_FALSE = "false"
286 7eed4433 Michele Tartara
VALUE_HS_NOTHING = {"Nothing": None}
287 7eed4433 Michele Tartara
288 973d7867 Iustin Pop
289 4fe80ef2 Iustin Pop
# External script validation mask
290 4fe80ef2 Iustin Pop
EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$")
291 4fe80ef2 Iustin Pop
292 a8083063 Iustin Pop
# hooks-related constants
293 a8083063 Iustin Pop
HOOKS_PHASE_PRE = "pre"
294 a8083063 Iustin Pop
HOOKS_PHASE_POST = "post"
295 6a4aa7c1 Iustin Pop
HOOKS_NAME_CFGUPDATE = "config-update"
296 9e289e36 Guido Trotter
HOOKS_NAME_WATCHER = "watcher"
297 f3e2e4c6 Iustin Pop
HOOKS_VERSION = 2
298 fe5ca2bb Andrea Spadaccini
HOOKS_PATH = "/sbin:/bin:/usr/sbin:/usr/bin"
299 a8083063 Iustin Pop
300 a8083063 Iustin Pop
# hooks subject type (what object type does the LU deal with)
301 a8083063 Iustin Pop
HTYPE_CLUSTER = "CLUSTER"
302 a8083063 Iustin Pop
HTYPE_NODE = "NODE"
303 b1ee5610 Adeodato Simo
HTYPE_GROUP = "GROUP"
304 a8083063 Iustin Pop
HTYPE_INSTANCE = "INSTANCE"
305 eaa4c57c Dimitris Aragiorgis
HTYPE_NETWORK = "NETWORK"
306 a8083063 Iustin Pop
307 a8083063 Iustin Pop
HKR_SKIP = 0
308 a8083063 Iustin Pop
HKR_FAIL = 1
309 a8083063 Iustin Pop
HKR_SUCCESS = 2
310 a8083063 Iustin Pop
311 ac2d0fe4 Michael Hanselmann
# Storage types
312 8a7a197a Jose A. Lopes
ST_BLOCK = _constants.ST_BLOCK
313 8a7a197a Jose A. Lopes
ST_DISKLESS = _constants.ST_DISKLESS
314 8a7a197a Jose A. Lopes
ST_EXT = _constants.ST_EXT
315 8a7a197a Jose A. Lopes
ST_FILE = _constants.ST_FILE
316 8a7a197a Jose A. Lopes
ST_LVM_PV = _constants.ST_LVM_PV
317 8a7a197a Jose A. Lopes
ST_LVM_VG = _constants.ST_LVM_VG
318 8a7a197a Jose A. Lopes
ST_RADOS = _constants.ST_RADOS
319 8a7a197a Jose A. Lopes
STORAGE_TYPES = _constants.STORAGE_TYPES
320 33c730a2 Helga Velroyen
321 f79be8ec Helga Velroyen
# the set of storage types for which storage reporting is available
322 f79be8ec Helga Velroyen
# FIXME: Remove this, once storage reporting is available for all types.
323 f79be8ec Helga Velroyen
STS_REPORT = compat.UniqueFrozenset([ST_FILE, ST_LVM_PV, ST_LVM_VG])
324 f79be8ec Helga Velroyen
325 6032697c Michael Hanselmann
# Storage fields
326 620a85fd Iustin Pop
# first two are valid in LU context only, not passed to backend
327 cd824bde Jose A. Lopes
SF_NODE = _constants.SF_NODE
328 cd824bde Jose A. Lopes
SF_TYPE = _constants.SF_TYPE
329 620a85fd Iustin Pop
# and the rest are valid in backend
330 cd824bde Jose A. Lopes
SF_NAME = _constants.SF_NAME
331 cd824bde Jose A. Lopes
SF_SIZE = _constants.SF_SIZE
332 cd824bde Jose A. Lopes
SF_FREE = _constants.SF_FREE
333 cd824bde Jose A. Lopes
SF_USED = _constants.SF_USED
334 cd824bde Jose A. Lopes
SF_ALLOCATABLE = _constants.SF_ALLOCATABLE
335 6032697c Michael Hanselmann
336 6c3c6db9 Michael Hanselmann
# Storage operations
337 6c3c6db9 Michael Hanselmann
SO_FIX_CONSISTENCY = "fix-consistency"
338 6c3c6db9 Michael Hanselmann
339 6032697c Michael Hanselmann
# Available fields per storage type
340 b8028dcf Michael Hanselmann
VALID_STORAGE_FIELDS = compat.UniqueFrozenset([
341 dc3dcdaf Jose A. Lopes
  SF_NODE,
342 21daa4a8 Stephen Shirley
  SF_NAME,
343 21daa4a8 Stephen Shirley
  SF_TYPE,
344 21daa4a8 Stephen Shirley
  SF_SIZE,
345 21daa4a8 Stephen Shirley
  SF_USED,
346 21daa4a8 Stephen Shirley
  SF_FREE,
347 3c286190 Dimitris Aragiorgis
  SF_ALLOCATABLE,
348 21daa4a8 Stephen Shirley
  ])
349 620a85fd Iustin Pop
350 efb8da02 Michael Hanselmann
MODIFIABLE_STORAGE_FIELDS = {
351 efb8da02 Michael Hanselmann
  ST_LVM_PV: frozenset([SF_ALLOCATABLE]),
352 efb8da02 Michael Hanselmann
  }
353 efb8da02 Michael Hanselmann
354 4b37cac5 Michael Hanselmann
VALID_STORAGE_OPERATIONS = {
355 6c3c6db9 Michael Hanselmann
  ST_LVM_VG: frozenset([SO_FIX_CONSISTENCY]),
356 4b37cac5 Michael Hanselmann
  }
357 4b37cac5 Michael Hanselmann
358 b2fbea47 Jose A. Lopes
# Volume fields
359 b2fbea47 Jose A. Lopes
VF_DEV = "dev"
360 b2fbea47 Jose A. Lopes
VF_INSTANCE = "instance"
361 b2fbea47 Jose A. Lopes
VF_NAME = "name"
362 b2fbea47 Jose A. Lopes
VF_NODE = "node"
363 b2fbea47 Jose A. Lopes
VF_PHYS = "phys"
364 b2fbea47 Jose A. Lopes
VF_SIZE = "size"
365 b2fbea47 Jose A. Lopes
VF_VG = "vg"
366 b2fbea47 Jose A. Lopes
367 74f37195 Michael Hanselmann
# Local disk status
368 74f37195 Michael Hanselmann
# Note: Code depends on LDS_OKAY < LDS_UNKNOWN < LDS_FAULTY
369 74f37195 Michael Hanselmann
(LDS_OKAY,
370 74f37195 Michael Hanselmann
 LDS_UNKNOWN,
371 74f37195 Michael Hanselmann
 LDS_FAULTY) = range(1, 4)
372 74f37195 Michael Hanselmann
373 9b0e86e2 Thomas Thrainer
LDS_NAMES = {
374 9b0e86e2 Thomas Thrainer
  LDS_OKAY: "ok",
375 9b0e86e2 Thomas Thrainer
  LDS_UNKNOWN: "unknown",
376 9b0e86e2 Thomas Thrainer
  LDS_FAULTY: "faulty",
377 9b0e86e2 Thomas Thrainer
}
378 9b0e86e2 Thomas Thrainer
379 a8083063 Iustin Pop
# disk template types
380 8a7a197a Jose A. Lopes
DT_BLOCK = _constants.DT_BLOCK
381 8a7a197a Jose A. Lopes
DT_DISKLESS = _constants.DT_DISKLESS
382 8a7a197a Jose A. Lopes
DT_DRBD8 = _constants.DT_DRBD8
383 8a7a197a Jose A. Lopes
DT_EXT = _constants.DT_EXT
384 8a7a197a Jose A. Lopes
DT_FILE = _constants.DT_FILE
385 8a7a197a Jose A. Lopes
DT_PLAIN = _constants.DT_PLAIN
386 8a7a197a Jose A. Lopes
DT_RBD = _constants.DT_RBD
387 8a7a197a Jose A. Lopes
DT_SHARED_FILE = _constants.DT_SHARED_FILE
388 8a7a197a Jose A. Lopes
DISK_TEMPLATE_PREFERENCE = _constants.DISK_TEMPLATE_PREFERENCE
389 8a7a197a Jose A. Lopes
DISK_TEMPLATES = _constants.DISK_TEMPLATES
390 8a7a197a Jose A. Lopes
DEFAULT_ENABLED_DISK_TEMPLATES = _constants.DEFAULT_ENABLED_DISK_TEMPLATES
391 1b02d7ef Helga Velroyen
392 c66d8987 Helga Velroyen
# mapping of disk templates to storage types
393 615551b2 Helga Velroyen
MAP_DISK_TEMPLATE_STORAGE_TYPE = {
394 c66d8987 Helga Velroyen
  DT_BLOCK: ST_BLOCK,
395 c66d8987 Helga Velroyen
  DT_DISKLESS: ST_DISKLESS,
396 c66d8987 Helga Velroyen
  DT_DRBD8: ST_LVM_VG,
397 c66d8987 Helga Velroyen
  DT_EXT: ST_EXT,
398 c66d8987 Helga Velroyen
  DT_FILE: ST_FILE,
399 c66d8987 Helga Velroyen
  DT_PLAIN: ST_LVM_VG,
400 c66d8987 Helga Velroyen
  DT_RBD: ST_RADOS,
401 2522c59e Helga Velroyen
  DT_SHARED_FILE: ST_FILE,
402 c66d8987 Helga Velroyen
  }
403 a1f445d3 Iustin Pop
404 a1f445d3 Iustin Pop
# the set of network-mirrored disk templates
405 b8028dcf Michael Hanselmann
DTS_INT_MIRROR = compat.UniqueFrozenset([DT_DRBD8])
406 a8083063 Iustin Pop
407 b6135bbc Apollon Oikonomopoulos
# the set of externally-mirrored disk templates (e.g. SAN, NAS)
408 b8028dcf Michael Hanselmann
DTS_EXT_MIRROR = compat.UniqueFrozenset([
409 d8f0b7c1 Guido Trotter
  DT_DISKLESS, # 'trivially' externally mirrored
410 b8028dcf Michael Hanselmann
  DT_SHARED_FILE,
411 b8028dcf Michael Hanselmann
  DT_BLOCK,
412 b8028dcf Michael Hanselmann
  DT_RBD,
413 376631d1 Constantinos Venetsanopoulos
  DT_EXT,
414 b8028dcf Michael Hanselmann
  ])
415 4b97f902 Apollon Oikonomopoulos
416 d63e148a Manuel Franceschini
# the set of non-lvm-based disk templates
417 b8028dcf Michael Hanselmann
DTS_NOT_LVM = compat.UniqueFrozenset([
418 b8028dcf Michael Hanselmann
  DT_DISKLESS,
419 b8028dcf Michael Hanselmann
  DT_FILE,
420 b8028dcf Michael Hanselmann
  DT_SHARED_FILE,
421 b8028dcf Michael Hanselmann
  DT_BLOCK,
422 b8028dcf Michael Hanselmann
  DT_RBD,
423 376631d1 Constantinos Venetsanopoulos
  DT_EXT,
424 b8028dcf Michael Hanselmann
  ])
425 d63e148a Manuel Franceschini
426 728489a3 Guido Trotter
# the set of disk templates which can be grown
427 b8028dcf Michael Hanselmann
DTS_GROWABLE = compat.UniqueFrozenset([
428 b8028dcf Michael Hanselmann
  DT_PLAIN,
429 b8028dcf Michael Hanselmann
  DT_DRBD8,
430 b8028dcf Michael Hanselmann
  DT_FILE,
431 b8028dcf Michael Hanselmann
  DT_SHARED_FILE,
432 b8028dcf Michael Hanselmann
  DT_RBD,
433 376631d1 Constantinos Venetsanopoulos
  DT_EXT,
434 b8028dcf Michael Hanselmann
  ])
435 728489a3 Guido Trotter
436 3b08cd1c Apollon Oikonomopoulos
# the set of disk templates that allow adoption
437 b8028dcf Michael Hanselmann
DTS_MAY_ADOPT = compat.UniqueFrozenset([
438 b8028dcf Michael Hanselmann
  DT_PLAIN,
439 b8028dcf Michael Hanselmann
  DT_BLOCK,
440 b8028dcf Michael Hanselmann
  ])
441 b6135bbc Apollon Oikonomopoulos
442 b6135bbc Apollon Oikonomopoulos
# the set of disk templates that *must* use adoption
443 b8028dcf Michael Hanselmann
DTS_MUST_ADOPT = compat.UniqueFrozenset([DT_BLOCK])
444 3b08cd1c Apollon Oikonomopoulos
445 85a0ff7e Apollon Oikonomopoulos
# the set of disk templates that allow migrations
446 3429a076 Apollon Oikonomopoulos
DTS_MIRRORED = frozenset.union(DTS_INT_MIRROR, DTS_EXT_MIRROR)
447 85a0ff7e Apollon Oikonomopoulos
448 c16915bd Guido Trotter
# the set of file based disk templates
449 b8028dcf Michael Hanselmann
DTS_FILEBASED = compat.UniqueFrozenset([
450 b8028dcf Michael Hanselmann
  DT_FILE,
451 b8028dcf Michael Hanselmann
  DT_SHARED_FILE,
452 b8028dcf Michael Hanselmann
  ])
453 85a0ff7e Apollon Oikonomopoulos
454 c148e448 Klaus Aehlig
# the set of disk templates that can be moved by copying
455 c148e448 Klaus Aehlig
# Note: a requirement is that they're not accessed externally or shared between
456 c148e448 Klaus Aehlig
# nodes; in particular, sharedfile is not suitable.
457 c148e448 Klaus Aehlig
DTS_COPYABLE = compat.UniqueFrozenset([
458 c148e448 Klaus Aehlig
  DT_FILE,
459 c148e448 Klaus Aehlig
  DT_PLAIN,
460 c148e448 Klaus Aehlig
  ])
461 c148e448 Klaus Aehlig
462 6ebfef42 Bernardo Dal Seno
# the set of disk templates that are supported by exclusive_storage
463 8c3d6797 Bernardo Dal Seno
DTS_EXCL_STORAGE = compat.UniqueFrozenset([DT_PLAIN])
464 6ebfef42 Bernardo Dal Seno
465 6ebfef42 Bernardo Dal Seno
# templates for which we don't perform checks on free space
466 ce003543 Iustin Pop
DTS_NO_FREE_SPACE_CHECK = compat.UniqueFrozenset([
467 ce003543 Iustin Pop
  DT_FILE,
468 ce003543 Iustin Pop
  DT_SHARED_FILE,
469 ce003543 Iustin Pop
  DT_RBD,
470 ce003543 Iustin Pop
  DT_EXT,
471 ce003543 Iustin Pop
  ])
472 6ebfef42 Bernardo Dal Seno
473 cd3b4ff4 Helga Velroyen
DTS_BLOCK = compat.UniqueFrozenset([
474 cd3b4ff4 Helga Velroyen
  DT_PLAIN,
475 cd3b4ff4 Helga Velroyen
  DT_DRBD8,
476 cd3b4ff4 Helga Velroyen
  DT_BLOCK,
477 cd3b4ff4 Helga Velroyen
  DT_RBD,
478 cd3b4ff4 Helga Velroyen
  DT_EXT,
479 b8028dcf Michael Hanselmann
  ])
480 04fa07f2 Manuel Franceschini
481 2899d9de Iustin Pop
# drbd constants
482 2899d9de Iustin Pop
DRBD_HMAC_ALG = "md5"
483 65fc2388 Thomas Thrainer
DRBD_DEFAULT_NET_PROTOCOL = "C"
484 65fc2388 Thomas Thrainer
DRBD_MIGRATION_NET_PROTOCOL = "C"
485 61e062dd Michele Tartara
DRBD_STATUS_FILE = "/proc/drbd"
486 8a69b3a8 Andrea Spadaccini
487 0c77c331 René Nussbaumer
#: Size of DRBD meta block device
488 0c77c331 René Nussbaumer
DRBD_META_SIZE = 128
489 0c77c331 René Nussbaumer
490 8a69b3a8 Andrea Spadaccini
# drbd barrier types
491 8a69b3a8 Andrea Spadaccini
DRBD_B_NONE = "n"
492 8a69b3a8 Andrea Spadaccini
DRBD_B_DISK_BARRIERS = "b"
493 8a69b3a8 Andrea Spadaccini
DRBD_B_DISK_DRAIN = "d"
494 8a69b3a8 Andrea Spadaccini
DRBD_B_DISK_FLUSH = "f"
495 8a69b3a8 Andrea Spadaccini
496 8a69b3a8 Andrea Spadaccini
# Valid barrier combinations: "n" or any non-null subset of "bfd"
497 b8028dcf Michael Hanselmann
DRBD_VALID_BARRIER_OPT = compat.UniqueFrozenset([
498 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_NONE]),
499 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_BARRIERS]),
500 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_DRAIN]),
501 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_FLUSH]),
502 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_DRAIN, DRBD_B_DISK_FLUSH]),
503 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_DRAIN]),
504 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_FLUSH]),
505 8a69b3a8 Andrea Spadaccini
  frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_FLUSH, DRBD_B_DISK_DRAIN]),
506 8a69b3a8 Andrea Spadaccini
  ])
507 2899d9de Iustin Pop
508 7181fba0 Constantinos Venetsanopoulos
# rbd tool command
509 7181fba0 Constantinos Venetsanopoulos
RBD_CMD = "rbd"
510 7181fba0 Constantinos Venetsanopoulos
511 04fa07f2 Manuel Franceschini
# file backend driver
512 8a7a197a Jose A. Lopes
FD_BLKTAP = _constants.FD_BLKTAP
513 8a7a197a Jose A. Lopes
FD_LOOP = _constants.FD_LOOP
514 a1f445d3 Iustin Pop
515 a1f445d3 Iustin Pop
# the set of drbd-like disk types
516 cd3b4ff4 Helga Velroyen
LDS_DRBD = compat.UniqueFrozenset([DT_DRBD8])
517 fe96220b Iustin Pop
518 08db7c5c Iustin Pop
# disk access mode
519 2ff95a6b Jose A. Lopes
DISK_RDONLY = _constants.DISK_RDONLY
520 2ff95a6b Jose A. Lopes
DISK_RDWR = _constants.DISK_RDWR
521 2ff95a6b Jose A. Lopes
DISK_ACCESS_SET = _constants.DISK_ACCESS_SET
522 08db7c5c Iustin Pop
523 a9e0c397 Iustin Pop
# disk replacement mode
524 cfacfd6e Iustin Pop
REPLACE_DISK_PRI = "replace_on_primary"    # replace disks on primary
525 cfacfd6e Iustin Pop
REPLACE_DISK_SEC = "replace_on_secondary"  # replace disks on secondary
526 cfacfd6e Iustin Pop
REPLACE_DISK_CHG = "replace_new_secondary" # change secondary node
527 942be002 Michael Hanselmann
REPLACE_DISK_AUTO = "replace_auto"
528 b8028dcf Michael Hanselmann
REPLACE_MODES = compat.UniqueFrozenset([
529 3636400f Iustin Pop
  REPLACE_DISK_PRI,
530 3636400f Iustin Pop
  REPLACE_DISK_SEC,
531 3636400f Iustin Pop
  REPLACE_DISK_CHG,
532 3636400f Iustin Pop
  REPLACE_DISK_AUTO,
533 3636400f Iustin Pop
  ])
534 a9e0c397 Iustin Pop
535 4a96f1d1 Michael Hanselmann
# Instance export mode
536 8a7a197a Jose A. Lopes
EXPORT_MODE_LOCAL = _constants.EXPORT_MODE_LOCAL
537 8a7a197a Jose A. Lopes
EXPORT_MODE_REMOTE = _constants.EXPORT_MODE_REMOTE
538 8a7a197a Jose A. Lopes
EXPORT_MODES = _constants.EXPORT_MODES
539 4a96f1d1 Michael Hanselmann
540 2f6eebee Guido Trotter
# instance creation modes
541 8a7a197a Jose A. Lopes
INSTANCE_CREATE = _constants.INSTANCE_CREATE
542 8a7a197a Jose A. Lopes
INSTANCE_IMPORT = _constants.INSTANCE_IMPORT
543 8a7a197a Jose A. Lopes
INSTANCE_REMOTE_IMPORT = _constants.INSTANCE_REMOTE_IMPORT
544 8a7a197a Jose A. Lopes
INSTANCE_CREATE_MODES = _constants.INSTANCE_CREATE_MODES
545 a8083063 Iustin Pop
546 1410fa8d Michael Hanselmann
# Remote import/export handshake message and version
547 1410fa8d Michael Hanselmann
RIE_VERSION = 0
548 1410fa8d Michael Hanselmann
RIE_HANDSHAKE = "Hi, I'm Ganeti"
549 1410fa8d Michael Hanselmann
550 1410fa8d Michael Hanselmann
# Remote import/export certificate validity in seconds
551 1410fa8d Michael Hanselmann
RIE_CERT_VALIDITY = 24 * 60 * 60
552 1410fa8d Michael Hanselmann
553 4478301b Michael Hanselmann
# Overall timeout for establishing connection
554 8fd2e34c Michael Hanselmann
RIE_CONNECT_TIMEOUT = 180
555 4a96f1d1 Michael Hanselmann
556 4478301b Michael Hanselmann
# Export only: how long to wait per connection attempt (seconds)
557 4478301b Michael Hanselmann
RIE_CONNECT_ATTEMPT_TIMEOUT = 20
558 4478301b Michael Hanselmann
559 4478301b Michael Hanselmann
# Export only: number of attempts to connect
560 4478301b Michael Hanselmann
RIE_CONNECT_RETRIES = 10
561 4478301b Michael Hanselmann
562 c74cda62 René Nussbaumer
#: Give child process up to 5 seconds to exit after sending a signal
563 c74cda62 René Nussbaumer
CHILD_LINGER_TIMEOUT = 5.0
564 4a96f1d1 Michael Hanselmann
565 b8028dcf Michael Hanselmann
FILE_DRIVER = compat.UniqueFrozenset([FD_LOOP, FD_BLKTAP])
566 a8083063 Iustin Pop
567 a8083063 Iustin Pop
# import/export config options
568 a8083063 Iustin Pop
INISECT_EXP = "export"
569 a8083063 Iustin Pop
INISECT_INS = "instance"
570 3c8954ad Iustin Pop
INISECT_HYP = "hypervisor"
571 3c8954ad Iustin Pop
INISECT_BEP = "backend"
572 535b49cb Iustin Pop
INISECT_OSP = "os"
573 38242904 Iustin Pop
574 24991749 Iustin Pop
# dynamic device modification
575 8a7a197a Jose A. Lopes
DDM_ADD = _constants.DDM_ADD
576 8a7a197a Jose A. Lopes
DDM_MODIFY = _constants.DDM_MODIFY
577 8a7a197a Jose A. Lopes
DDM_REMOVE = _constants.DDM_REMOVE
578 8a7a197a Jose A. Lopes
DDMS_VALUES = _constants.DDMS_VALUES
579 8a7a197a Jose A. Lopes
DDMS_VALUES_WITH_MODIFY = _constants.DDMS_VALUES_WITH_MODIFY
580 bf629e45 Michael Hanselmann
# TODO: DDM_SWAP, DDM_MOVE?
581 24991749 Iustin Pop
582 38242904 Iustin Pop
# common exit codes
583 216bfc8f Jose A. Lopes
EXIT_SUCCESS = _constants.EXIT_SUCCESS
584 216bfc8f Jose A. Lopes
EXIT_FAILURE = _constants.EXIT_FAILURE
585 216bfc8f Jose A. Lopes
EXIT_NOTCLUSTER = _constants.EXIT_NOTCLUSTER
586 216bfc8f Jose A. Lopes
EXIT_NOTMASTER = _constants.EXIT_NOTMASTER
587 216bfc8f Jose A. Lopes
EXIT_NODESETUP_ERROR = _constants.EXIT_NODESETUP_ERROR
588 216bfc8f Jose A. Lopes
EXIT_CONFIRMATION = _constants.EXIT_CONFIRMATION # need user confirmation
589 cf62a272 Michael Hanselmann
590 ee3aedff Michael Hanselmann
#: Exit code for query operations with unknown fields
591 216bfc8f Jose A. Lopes
EXIT_UNKNOWN_FIELD = _constants.EXIT_UNKNOWN_FIELD
592 ee3aedff Michael Hanselmann
593 5c947f38 Iustin Pop
# tags
594 8a7a197a Jose A. Lopes
TAG_CLUSTER = _constants.TAG_CLUSTER
595 8a7a197a Jose A. Lopes
TAG_NODEGROUP = _constants.TAG_NODEGROUP
596 8a7a197a Jose A. Lopes
TAG_NODE = _constants.TAG_NODE
597 8a7a197a Jose A. Lopes
TAG_INSTANCE = _constants.TAG_INSTANCE
598 8a7a197a Jose A. Lopes
TAG_NETWORK = _constants.TAG_NETWORK
599 8a7a197a Jose A. Lopes
VALID_TAG_TYPES = _constants.VALID_TAG_TYPES
600 8a7a197a Jose A. Lopes
601 8a7a197a Jose A. Lopes
MAX_TAG_LEN = _constants.MAX_TAG_LEN
602 8a7a197a Jose A. Lopes
MAX_TAGS_PER_OBJ = _constants.MAX_TAGS_PER_OBJ
603 5c947f38 Iustin Pop
604 cf62a272 Michael Hanselmann
# others
605 cf62a272 Michael Hanselmann
DEFAULT_BRIDGE = "xen-br0"
606 90017904 Sebastian Gebhard
DEFAULT_OVS = "switch1"
607 6e9814a1 Andrea Spadaccini
CLASSIC_DRBD_SYNC_SPEED = 60 * 1024  # 60 MiB, expressed in KiB
608 9769bb78 Manuel Franceschini
IP4_ADDRESS_LOCALHOST = "127.0.0.1"
609 9769bb78 Manuel Franceschini
IP4_ADDRESS_ANY = "0.0.0.0"
610 0d2cd893 Manuel Franceschini
IP6_ADDRESS_LOCALHOST = "::1"
611 0d2cd893 Manuel Franceschini
IP6_ADDRESS_ANY = "::"
612 2f20d07b Manuel Franceschini
IP4_VERSION = 4
613 2f20d07b Manuel Franceschini
IP6_VERSION = 6
614 b8028dcf Michael Hanselmann
VALID_IP_VERSIONS = compat.UniqueFrozenset([IP4_VERSION, IP6_VERSION])
615 47334810 Iustin Pop
# for export to htools
616 47334810 Iustin Pop
IP4_FAMILY = socket.AF_INET
617 47334810 Iustin Pop
IP6_FAMILY = socket.AF_INET6
618 47334810 Iustin Pop
619 16abfbc2 Alexander Schreiber
TCP_PING_TIMEOUT = 10
620 d63e148a Manuel Franceschini
DEFAULT_VG = "xenvg"
621 ee2f0ed4 Luca Bigliardi
DEFAULT_DRBD_HELPER = "/bin/true"
622 8d1a2a64 Michael Hanselmann
MIN_VG_SIZE = 20480
623 c5e489f7 Iustin Pop
DEFAULT_MAC_PREFIX = "aa:00:00"
624 88cd08aa Guido Trotter
# default maximum instance wait time, in seconds.
625 88cd08aa Guido Trotter
DEFAULT_SHUTDOWN_TIMEOUT = 120
626 f5bfed26 Jose A. Lopes
NODE_MAX_CLOCK_SKEW = _constants.NODE_MAX_CLOCK_SKEW
627 033a1d00 Michael Hanselmann
# Time for an intra-cluster disk transfer to wait for a connection
628 81635b5a Iustin Pop
DISK_TRANSFER_CONNECT_TIMEOUT = 60
629 3536c792 Iustin Pop
# Disk index separator
630 e0d672fa Jose A. Lopes
DISK_SEPARATOR = _constants.DISK_SEPARATOR
631 e0d672fa Jose A. Lopes
IP_COMMAND_PATH = _constants.IP_COMMAND_PATH
632 7900ed01 Iustin Pop
633 6a373640 Michael Hanselmann
#: Key for job IDs in opcode result
634 6a373640 Michael Hanselmann
JOB_IDS_KEY = "jobs"
635 6a373640 Michael Hanselmann
636 6bb65e3a Guido Trotter
# runparts results
637 6bb65e3a Guido Trotter
(RUNPARTS_SKIP,
638 6bb65e3a Guido Trotter
 RUNPARTS_RUN,
639 6bb65e3a Guido Trotter
 RUNPARTS_ERR) = range(3)
640 6bb65e3a Guido Trotter
641 b8028dcf Michael Hanselmann
RUNPARTS_STATUS = compat.UniqueFrozenset([
642 b8028dcf Michael Hanselmann
  RUNPARTS_SKIP,
643 b8028dcf Michael Hanselmann
  RUNPARTS_RUN,
644 b8028dcf Michael Hanselmann
  RUNPARTS_ERR,
645 b8028dcf Michael Hanselmann
  ])
646 6bb65e3a Guido Trotter
647 12bce260 Michael Hanselmann
# RPC constants
648 12bce260 Michael Hanselmann
(RPC_ENCODING_NONE,
649 12bce260 Michael Hanselmann
 RPC_ENCODING_ZLIB_BASE64) = range(2)
650 12bce260 Michael Hanselmann
651 2ff587d4 Agata Murawska
# Various time constants for the timeout table
652 2ff587d4 Agata Murawska
RPC_TMO_URGENT = 60 # one minute
653 2ff587d4 Agata Murawska
RPC_TMO_FAST = 5 * 60 # five minutes
654 2ff587d4 Agata Murawska
RPC_TMO_NORMAL = 15 * 60 # 15 minutes
655 2ff587d4 Agata Murawska
RPC_TMO_SLOW = 3600 # one hour
656 2ff587d4 Agata Murawska
RPC_TMO_4HRS = 4 * 3600
657 2ff587d4 Agata Murawska
RPC_TMO_1DAY = 86400
658 2ff587d4 Agata Murawska
659 2ff587d4 Agata Murawska
# Timeout for connecting to nodes (seconds)
660 2ff587d4 Agata Murawska
RPC_CONNECT_TIMEOUT = 5
661 2ff587d4 Agata Murawska
662 ded1c679 Guido Trotter
# os related constants
663 d0c8c01d Iustin Pop
OS_SCRIPT_CREATE = "create"
664 d0c8c01d Iustin Pop
OS_SCRIPT_IMPORT = "import"
665 d0c8c01d Iustin Pop
OS_SCRIPT_EXPORT = "export"
666 d0c8c01d Iustin Pop
OS_SCRIPT_RENAME = "rename"
667 d0c8c01d Iustin Pop
OS_SCRIPT_VERIFY = "verify"
668 b8028dcf Michael Hanselmann
OS_SCRIPTS = compat.UniqueFrozenset([
669 21daa4a8 Stephen Shirley
  OS_SCRIPT_CREATE,
670 21daa4a8 Stephen Shirley
  OS_SCRIPT_IMPORT,
671 21daa4a8 Stephen Shirley
  OS_SCRIPT_EXPORT,
672 21daa4a8 Stephen Shirley
  OS_SCRIPT_RENAME,
673 3c286190 Dimitris Aragiorgis
  OS_SCRIPT_VERIFY,
674 21daa4a8 Stephen Shirley
  ])
675 37482e7b Guido Trotter
676 d0c8c01d Iustin Pop
OS_API_FILE = "ganeti_api_version"
677 d0c8c01d Iustin Pop
OS_VARIANTS_FILE = "variants.list"
678 d0c8c01d Iustin Pop
OS_PARAMETERS_FILE = "parameters.list"
679 b41b3516 Iustin Pop
680 d0c8c01d Iustin Pop
OS_VALIDATE_PARAMETERS = "parameters"
681 b8028dcf Michael Hanselmann
OS_VALIDATE_CALLS = compat.UniqueFrozenset([OS_VALIDATE_PARAMETERS])
682 b6b45e0d Guido Trotter
683 376631d1 Constantinos Venetsanopoulos
# External Storage (ES) related constants
684 376631d1 Constantinos Venetsanopoulos
ES_ACTION_CREATE = "create"
685 376631d1 Constantinos Venetsanopoulos
ES_ACTION_REMOVE = "remove"
686 376631d1 Constantinos Venetsanopoulos
ES_ACTION_GROW = "grow"
687 376631d1 Constantinos Venetsanopoulos
ES_ACTION_ATTACH = "attach"
688 376631d1 Constantinos Venetsanopoulos
ES_ACTION_DETACH = "detach"
689 376631d1 Constantinos Venetsanopoulos
ES_ACTION_SETINFO = "setinfo"
690 938adc87 Constantinos Venetsanopoulos
ES_ACTION_VERIFY = "verify"
691 376631d1 Constantinos Venetsanopoulos
692 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_CREATE = ES_ACTION_CREATE
693 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_REMOVE = ES_ACTION_REMOVE
694 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_GROW = ES_ACTION_GROW
695 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_ATTACH = ES_ACTION_ATTACH
696 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_DETACH = ES_ACTION_DETACH
697 376631d1 Constantinos Venetsanopoulos
ES_SCRIPT_SETINFO = ES_ACTION_SETINFO
698 938adc87 Constantinos Venetsanopoulos
ES_SCRIPT_VERIFY = ES_ACTION_VERIFY
699 376631d1 Constantinos Venetsanopoulos
ES_SCRIPTS = frozenset([
700 376631d1 Constantinos Venetsanopoulos
  ES_SCRIPT_CREATE,
701 376631d1 Constantinos Venetsanopoulos
  ES_SCRIPT_REMOVE,
702 376631d1 Constantinos Venetsanopoulos
  ES_SCRIPT_GROW,
703 376631d1 Constantinos Venetsanopoulos
  ES_SCRIPT_ATTACH,
704 376631d1 Constantinos Venetsanopoulos
  ES_SCRIPT_DETACH,
705 938adc87 Constantinos Venetsanopoulos
  ES_SCRIPT_SETINFO,
706 938adc87 Constantinos Venetsanopoulos
  ES_SCRIPT_VERIFY
707 376631d1 Constantinos Venetsanopoulos
  ])
708 376631d1 Constantinos Venetsanopoulos
709 938adc87 Constantinos Venetsanopoulos
ES_PARAMETERS_FILE = "parameters.list"
710 938adc87 Constantinos Venetsanopoulos
711 007a2f3e Alexander Schreiber
# reboot types
712 8a7a197a Jose A. Lopes
INSTANCE_REBOOT_SOFT = _constants.INSTANCE_REBOOT_SOFT
713 8a7a197a Jose A. Lopes
INSTANCE_REBOOT_HARD = _constants.INSTANCE_REBOOT_HARD
714 8a7a197a Jose A. Lopes
INSTANCE_REBOOT_FULL = _constants.INSTANCE_REBOOT_FULL
715 8a7a197a Jose A. Lopes
REBOOT_TYPES = _constants.REBOOT_TYPES
716 990ade2d Stephen Shirley
717 990ade2d Stephen Shirley
# instance reboot behaviors
718 990ade2d Stephen Shirley
INSTANCE_REBOOT_ALLOWED = "reboot"
719 990ade2d Stephen Shirley
INSTANCE_REBOOT_EXIT = "exit"
720 990ade2d Stephen Shirley
721 b8028dcf Michael Hanselmann
REBOOT_BEHAVIORS = compat.UniqueFrozenset([
722 990ade2d Stephen Shirley
  INSTANCE_REBOOT_ALLOWED,
723 3c286190 Dimitris Aragiorgis
  INSTANCE_REBOOT_EXIT,
724 990ade2d Stephen Shirley
  ])
725 00f91f29 Iustin Pop
726 2ff95a6b Jose A. Lopes
VTYPE_STRING = _constants.VTYPE_STRING
727 2ff95a6b Jose A. Lopes
VTYPE_MAYBE_STRING = _constants.VTYPE_MAYBE_STRING
728 2ff95a6b Jose A. Lopes
VTYPE_BOOL = _constants.VTYPE_BOOL
729 2ff95a6b Jose A. Lopes
VTYPE_SIZE = _constants.VTYPE_SIZE
730 2ff95a6b Jose A. Lopes
VTYPE_INT = _constants.VTYPE_INT
731 2ff95a6b Jose A. Lopes
ENFORCEABLE_TYPES = _constants.ENFORCEABLE_TYPES
732 a5728081 Guido Trotter
733 b1cb62bd Andrea Spadaccini
# Constant representing that the user does not specify any IP version
734 b1cb62bd Andrea Spadaccini
IFACE_NO_IP_VERSION_SPECIFIED = 0
735 b1cb62bd Andrea Spadaccini
736 14fd6c81 Guido Trotter
VALID_SERIAL_SPEEDS = compat.UniqueFrozenset([
737 14fd6c81 Guido Trotter
  75,
738 14fd6c81 Guido Trotter
  110,
739 14fd6c81 Guido Trotter
  300,
740 14fd6c81 Guido Trotter
  600,
741 14fd6c81 Guido Trotter
  1200,
742 14fd6c81 Guido Trotter
  1800,
743 14fd6c81 Guido Trotter
  2400,
744 14fd6c81 Guido Trotter
  4800,
745 14fd6c81 Guido Trotter
  9600,
746 14fd6c81 Guido Trotter
  14400,
747 14fd6c81 Guido Trotter
  19200,
748 14fd6c81 Guido Trotter
  28800,
749 14fd6c81 Guido Trotter
  38400,
750 14fd6c81 Guido Trotter
  57600,
751 14fd6c81 Guido Trotter
  115200,
752 14fd6c81 Guido Trotter
  230400,
753 14fd6c81 Guido Trotter
  345600,
754 14fd6c81 Guido Trotter
  460800,
755 14fd6c81 Guido Trotter
  ])
756 14fd6c81 Guido Trotter
757 e64b8beb Iustin Pop
# HV parameter names (global namespace)
758 e64b8beb Iustin Pop
HV_BOOT_ORDER = "boot_order"
759 e64b8beb Iustin Pop
HV_CDROM_IMAGE_PATH = "cdrom_image_path"
760 cc130cc7 Marco Casavecchia
HV_KVM_CDROM2_IMAGE_PATH = "cdrom2_image_path"
761 cc130cc7 Marco Casavecchia
HV_KVM_FLOPPY_IMAGE_PATH = "floppy_image_path"
762 e64b8beb Iustin Pop
HV_NIC_TYPE = "nic_type"
763 e64b8beb Iustin Pop
HV_DISK_TYPE = "disk_type"
764 cc130cc7 Marco Casavecchia
HV_KVM_CDROM_DISK_TYPE = "cdrom_disk_type"
765 e64b8beb Iustin Pop
HV_VNC_BIND_ADDRESS = "vnc_bind_address"
766 6e6bb8d5 Guido Trotter
HV_VNC_PASSWORD_FILE = "vnc_password_file"
767 8b2d1013 Guido Trotter
HV_VNC_TLS = "vnc_tls"
768 8b2d1013 Guido Trotter
HV_VNC_X509 = "vnc_x509_path"
769 8b2d1013 Guido Trotter
HV_VNC_X509_VERIFY = "vnc_x509_verify"
770 b1cb62bd Andrea Spadaccini
HV_KVM_SPICE_BIND = "spice_bind"
771 b1cb62bd Andrea Spadaccini
HV_KVM_SPICE_IP_VERSION = "spice_ip_version"
772 b451c4c7 Andrea Spadaccini
HV_KVM_SPICE_PASSWORD_FILE = "spice_password_file"
773 ea064d24 Andrea Spadaccini
HV_KVM_SPICE_LOSSLESS_IMG_COMPR = "spice_image_compression"
774 ea064d24 Andrea Spadaccini
HV_KVM_SPICE_JPEG_IMG_COMPR = "spice_jpeg_wan_compression"
775 ea064d24 Andrea Spadaccini
HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR = "spice_zlib_glz_wan_compression"
776 ea064d24 Andrea Spadaccini
HV_KVM_SPICE_STREAMING_VIDEO_DETECTION = "spice_streaming_video"
777 ea064d24 Andrea Spadaccini
HV_KVM_SPICE_AUDIO_COMPR = "spice_playback_compression"
778 bfe86c76 Andrea Spadaccini
HV_KVM_SPICE_USE_TLS = "spice_use_tls"
779 3e40b587 Andrea Spadaccini
HV_KVM_SPICE_TLS_CIPHERS = "spice_tls_ciphers"
780 3e40b587 Andrea Spadaccini
HV_KVM_SPICE_USE_VDAGENT = "spice_use_vdagent"
781 e64b8beb Iustin Pop
HV_ACPI = "acpi"
782 e64b8beb Iustin Pop
HV_PAE = "pae"
783 2f2dbb4b Jun Futagawa
HV_USE_BOOTLOADER = "use_bootloader"
784 2f2dbb4b Jun Futagawa
HV_BOOTLOADER_ARGS = "bootloader_args"
785 2f2dbb4b Jun Futagawa
HV_BOOTLOADER_PATH = "bootloader_path"
786 f9d6542d Iustin Pop
HV_KERNEL_ARGS = "kernel_args"
787 e64b8beb Iustin Pop
HV_KERNEL_PATH = "kernel_path"
788 e64b8beb Iustin Pop
HV_INITRD_PATH = "initrd_path"
789 074ca009 Guido Trotter
HV_ROOT_PATH = "root_path"
790 a2faf9ee Guido Trotter
HV_SERIAL_CONSOLE = "serial_console"
791 14fd6c81 Guido Trotter
HV_SERIAL_SPEED = "serial_speed"
792 11344a50 Guido Trotter
HV_USB_MOUSE = "usb_mouse"
793 4f580fef Sébastien Bocahu
HV_KEYMAP = "keymap"
794 09ea8710 Iustin Pop
HV_DEVICE_MODEL = "device_model"
795 48297fa2 Iustin Pop
HV_INIT_SCRIPT = "init_script"
796 78411c60 Iustin Pop
HV_MIGRATION_PORT = "migration_port"
797 e43d4f9f Apollon Oikonomopoulos
HV_MIGRATION_BANDWIDTH = "migration_bandwidth"
798 e43d4f9f Apollon Oikonomopoulos
HV_MIGRATION_DOWNTIME = "migration_downtime"
799 783a6c0b Iustin Pop
HV_MIGRATION_MODE = "migration_mode"
800 6b970cef Jun Futagawa
HV_USE_LOCALTIME = "use_localtime"
801 ea0f3d7a Iustin Pop
HV_DISK_CACHE = "disk_cache"
802 3424767f Guido Trotter
HV_SECURITY_MODEL = "security_model"
803 3424767f Guido Trotter
HV_SECURITY_DOMAIN = "security_domain"
804 7ba594c0 Guido Trotter
HV_KVM_FLAG = "kvm_flag"
805 fbe27e2b Guido Trotter
HV_VHOST_NET = "vhost_net"
806 84c08e4e Balazs Lecz
HV_KVM_USE_CHROOT = "use_chroot"
807 e3ed5316 Balazs Lecz
HV_CPU_MASK = "cpu_mask"
808 4f958b0b Miguel Di Ciurcio Filho
HV_MEM_PATH = "mem_path"
809 87f0aa48 Jack
HV_PASSTHROUGH = "pci_pass"
810 525011bc Maciej Bliziński
HV_BLOCKDEV_PREFIX = "blockdev_prefix"
811 990ade2d Stephen Shirley
HV_REBOOT_BEHAVIOR = "reboot_behavior"
812 7cb42171 Nikita Staroverov
HV_CPU_TYPE = "cpu_type"
813 8bd977e9 Sébastien Bocahu
HV_CPU_CAP = "cpu_cap"
814 8bd977e9 Sébastien Bocahu
HV_CPU_WEIGHT = "cpu_weight"
815 4888a609 Guido Trotter
HV_CPU_CORES = "cpu_cores"
816 4888a609 Guido Trotter
HV_CPU_THREADS = "cpu_threads"
817 4888a609 Guido Trotter
HV_CPU_SOCKETS = "cpu_sockets"
818 2fddb144 Guido Trotter
HV_SOUNDHW = "soundhw"
819 156681c1 Guido Trotter
HV_USB_DEVICES = "usb_devices"
820 7589346f Guido Trotter
HV_VGA = "vga"
821 e6f24d89 Guido Trotter
HV_KVM_EXTRA = "kvm_extra"
822 4ab75599 Dimitris Aragiorgis
HV_KVM_MACHINE_VERSION = "machine_version"
823 4b9638dc Guido Trotter
HV_KVM_PATH = "kvm_path"
824 05440845 Helga Velroyen
HV_VIF_TYPE = "vif_type"
825 397b7844 Dimitris Aragiorgis
HV_VIF_SCRIPT = "vif_script"
826 740394bc Helga Velroyen
HV_XEN_CMD = "xen_cmd"
827 295ed29b Santi Raffa
HV_XEN_CPUID = "cpuid"
828 8a534fbe Stratos Psomdakis
HV_VNET_HDR = "vnet_hdr"
829 ffc27116 Thomas Thrainer
HV_VIRIDIAN = "viridian"
830 8bd977e9 Sébastien Bocahu
831 e64b8beb Iustin Pop
832 a5728081 Guido Trotter
HVS_PARAMETER_TYPES = {
833 4b9638dc Guido Trotter
  HV_KVM_PATH: VTYPE_STRING,
834 a5728081 Guido Trotter
  HV_BOOT_ORDER: VTYPE_STRING,
835 cc130cc7 Marco Casavecchia
  HV_KVM_FLOPPY_IMAGE_PATH: VTYPE_STRING,
836 a5728081 Guido Trotter
  HV_CDROM_IMAGE_PATH: VTYPE_STRING,
837 cc130cc7 Marco Casavecchia
  HV_KVM_CDROM2_IMAGE_PATH: VTYPE_STRING,
838 a5728081 Guido Trotter
  HV_NIC_TYPE: VTYPE_STRING,
839 a5728081 Guido Trotter
  HV_DISK_TYPE: VTYPE_STRING,
840 cc130cc7 Marco Casavecchia
  HV_KVM_CDROM_DISK_TYPE: VTYPE_STRING,
841 6e6bb8d5 Guido Trotter
  HV_VNC_PASSWORD_FILE: VTYPE_STRING,
842 a5728081 Guido Trotter
  HV_VNC_BIND_ADDRESS: VTYPE_STRING,
843 a5728081 Guido Trotter
  HV_VNC_TLS: VTYPE_BOOL,
844 a5728081 Guido Trotter
  HV_VNC_X509: VTYPE_STRING,
845 a5728081 Guido Trotter
  HV_VNC_X509_VERIFY: VTYPE_BOOL,
846 b1cb62bd Andrea Spadaccini
  HV_KVM_SPICE_BIND: VTYPE_STRING,
847 b1cb62bd Andrea Spadaccini
  HV_KVM_SPICE_IP_VERSION: VTYPE_INT,
848 b451c4c7 Andrea Spadaccini
  HV_KVM_SPICE_PASSWORD_FILE: VTYPE_STRING,
849 ea064d24 Andrea Spadaccini
  HV_KVM_SPICE_LOSSLESS_IMG_COMPR: VTYPE_STRING,
850 ea064d24 Andrea Spadaccini
  HV_KVM_SPICE_JPEG_IMG_COMPR: VTYPE_STRING,
851 ea064d24 Andrea Spadaccini
  HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: VTYPE_STRING,
852 ea064d24 Andrea Spadaccini
  HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: VTYPE_STRING,
853 ea064d24 Andrea Spadaccini
  HV_KVM_SPICE_AUDIO_COMPR: VTYPE_BOOL,
854 bfe86c76 Andrea Spadaccini
  HV_KVM_SPICE_USE_TLS: VTYPE_BOOL,
855 3e40b587 Andrea Spadaccini
  HV_KVM_SPICE_TLS_CIPHERS: VTYPE_STRING,
856 3e40b587 Andrea Spadaccini
  HV_KVM_SPICE_USE_VDAGENT: VTYPE_BOOL,
857 a5728081 Guido Trotter
  HV_ACPI: VTYPE_BOOL,
858 a5728081 Guido Trotter
  HV_PAE: VTYPE_BOOL,
859 2f2dbb4b Jun Futagawa
  HV_USE_BOOTLOADER: VTYPE_BOOL,
860 2f2dbb4b Jun Futagawa
  HV_BOOTLOADER_PATH: VTYPE_STRING,
861 2f2dbb4b Jun Futagawa
  HV_BOOTLOADER_ARGS: VTYPE_STRING,
862 a5728081 Guido Trotter
  HV_KERNEL_PATH: VTYPE_STRING,
863 f9d6542d Iustin Pop
  HV_KERNEL_ARGS: VTYPE_STRING,
864 a5728081 Guido Trotter
  HV_INITRD_PATH: VTYPE_STRING,
865 7adf7814 René Nussbaumer
  HV_ROOT_PATH: VTYPE_MAYBE_STRING,
866 a5728081 Guido Trotter
  HV_SERIAL_CONSOLE: VTYPE_BOOL,
867 14fd6c81 Guido Trotter
  HV_SERIAL_SPEED: VTYPE_INT,
868 a5728081 Guido Trotter
  HV_USB_MOUSE: VTYPE_STRING,
869 4f580fef Sébastien Bocahu
  HV_KEYMAP: VTYPE_STRING,
870 09ea8710 Iustin Pop
  HV_DEVICE_MODEL: VTYPE_STRING,
871 48297fa2 Iustin Pop
  HV_INIT_SCRIPT: VTYPE_STRING,
872 78411c60 Iustin Pop
  HV_MIGRATION_PORT: VTYPE_INT,
873 e43d4f9f Apollon Oikonomopoulos
  HV_MIGRATION_BANDWIDTH: VTYPE_INT,
874 e43d4f9f Apollon Oikonomopoulos
  HV_MIGRATION_DOWNTIME: VTYPE_INT,
875 783a6c0b Iustin Pop
  HV_MIGRATION_MODE: VTYPE_STRING,
876 6b970cef Jun Futagawa
  HV_USE_LOCALTIME: VTYPE_BOOL,
877 ea0f3d7a Iustin Pop
  HV_DISK_CACHE: VTYPE_STRING,
878 3424767f Guido Trotter
  HV_SECURITY_MODEL: VTYPE_STRING,
879 3424767f Guido Trotter
  HV_SECURITY_DOMAIN: VTYPE_STRING,
880 7ba594c0 Guido Trotter
  HV_KVM_FLAG: VTYPE_STRING,
881 fbe27e2b Guido Trotter
  HV_VHOST_NET: VTYPE_BOOL,
882 84c08e4e Balazs Lecz
  HV_KVM_USE_CHROOT: VTYPE_BOOL,
883 e3ed5316 Balazs Lecz
  HV_CPU_MASK: VTYPE_STRING,
884 4f958b0b Miguel Di Ciurcio Filho
  HV_MEM_PATH: VTYPE_STRING,
885 87f0aa48 Jack
  HV_PASSTHROUGH: VTYPE_STRING,
886 525011bc Maciej Bliziński
  HV_BLOCKDEV_PREFIX: VTYPE_STRING,
887 990ade2d Stephen Shirley
  HV_REBOOT_BEHAVIOR: VTYPE_STRING,
888 7cb42171 Nikita Staroverov
  HV_CPU_TYPE: VTYPE_STRING,
889 8bd977e9 Sébastien Bocahu
  HV_CPU_CAP: VTYPE_INT,
890 8bd977e9 Sébastien Bocahu
  HV_CPU_WEIGHT: VTYPE_INT,
891 4888a609 Guido Trotter
  HV_CPU_CORES: VTYPE_INT,
892 4888a609 Guido Trotter
  HV_CPU_THREADS: VTYPE_INT,
893 4888a609 Guido Trotter
  HV_CPU_SOCKETS: VTYPE_INT,
894 2fddb144 Guido Trotter
  HV_SOUNDHW: VTYPE_STRING,
895 156681c1 Guido Trotter
  HV_USB_DEVICES: VTYPE_STRING,
896 7589346f Guido Trotter
  HV_VGA: VTYPE_STRING,
897 e6f24d89 Guido Trotter
  HV_KVM_EXTRA: VTYPE_STRING,
898 4ab75599 Dimitris Aragiorgis
  HV_KVM_MACHINE_VERSION: VTYPE_STRING,
899 05440845 Helga Velroyen
  HV_VIF_TYPE: VTYPE_STRING,
900 397b7844 Dimitris Aragiorgis
  HV_VIF_SCRIPT: VTYPE_STRING,
901 740394bc Helga Velroyen
  HV_XEN_CMD: VTYPE_STRING,
902 295ed29b Santi Raffa
  HV_XEN_CPUID: VTYPE_STRING,
903 8a534fbe Stratos Psomdakis
  HV_VNET_HDR: VTYPE_BOOL,
904 ffc27116 Thomas Thrainer
  HV_VIRIDIAN: VTYPE_BOOL,
905 a5728081 Guido Trotter
  }
906 a5728081 Guido Trotter
907 a5728081 Guido Trotter
HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
908 5018a335 Iustin Pop
909 a6c7e2a2 Iustin Pop
HVS_PARAMETER_TITLES = {
910 a6c7e2a2 Iustin Pop
  HV_ACPI: "ACPI",
911 a6c7e2a2 Iustin Pop
  HV_BOOT_ORDER: "Boot_order",
912 a6c7e2a2 Iustin Pop
  HV_CDROM_IMAGE_PATH: "CDROM_image_path",
913 a6c7e2a2 Iustin Pop
  HV_DISK_TYPE: "Disk_type",
914 a6c7e2a2 Iustin Pop
  HV_INITRD_PATH: "Initrd_path",
915 a6c7e2a2 Iustin Pop
  HV_KERNEL_PATH: "Kernel_path",
916 a6c7e2a2 Iustin Pop
  HV_NIC_TYPE: "NIC_type",
917 a6c7e2a2 Iustin Pop
  HV_PAE: "PAE",
918 a6c7e2a2 Iustin Pop
  HV_VNC_BIND_ADDRESS: "VNC_bind_address",
919 a6c7e2a2 Iustin Pop
  HV_PASSTHROUGH: "pci_pass",
920 a6c7e2a2 Iustin Pop
  HV_CPU_TYPE: "cpu_type",
921 a6c7e2a2 Iustin Pop
  }
922 a6c7e2a2 Iustin Pop
923 6a1434d7 Andrea Spadaccini
# Migration statuses
924 6a1434d7 Andrea Spadaccini
HV_MIGRATION_COMPLETED = "completed"
925 6a1434d7 Andrea Spadaccini
HV_MIGRATION_ACTIVE = "active"
926 6a1434d7 Andrea Spadaccini
HV_MIGRATION_FAILED = "failed"
927 6a1434d7 Andrea Spadaccini
HV_MIGRATION_CANCELLED = "cancelled"
928 6a1434d7 Andrea Spadaccini
929 b8028dcf Michael Hanselmann
HV_MIGRATION_VALID_STATUSES = compat.UniqueFrozenset([
930 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_COMPLETED,
931 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_ACTIVE,
932 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_FAILED,
933 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_CANCELLED,
934 6a1434d7 Andrea Spadaccini
  ])
935 6a1434d7 Andrea Spadaccini
936 b8028dcf Michael Hanselmann
HV_MIGRATION_FAILED_STATUSES = compat.UniqueFrozenset([
937 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_FAILED,
938 6a1434d7 Andrea Spadaccini
  HV_MIGRATION_CANCELLED,
939 6a1434d7 Andrea Spadaccini
  ])
940 6a1434d7 Andrea Spadaccini
941 6a1434d7 Andrea Spadaccini
# KVM-specific statuses
942 6a1434d7 Andrea Spadaccini
HV_KVM_MIGRATION_VALID_STATUSES = HV_MIGRATION_VALID_STATUSES
943 6a1434d7 Andrea Spadaccini
944 34fbc862 Andrea Spadaccini
# Node info keys
945 34fbc862 Andrea Spadaccini
HV_NODEINFO_KEY_VERSION = "hv_version"
946 34fbc862 Andrea Spadaccini
947 5b49ed09 René Nussbaumer
# Hypervisor state
948 5b49ed09 René Nussbaumer
HVST_MEMORY_TOTAL = "mem_total"
949 5b49ed09 René Nussbaumer
HVST_MEMORY_NODE = "mem_node"
950 5b49ed09 René Nussbaumer
HVST_MEMORY_HV = "mem_hv"
951 5b49ed09 René Nussbaumer
HVST_CPU_TOTAL = "cpu_total"
952 5b49ed09 René Nussbaumer
HVST_CPU_NODE = "cpu_node"
953 5b49ed09 René Nussbaumer
954 2da9f556 René Nussbaumer
HVST_DEFAULTS = {
955 2da9f556 René Nussbaumer
  HVST_MEMORY_TOTAL: 0,
956 2da9f556 René Nussbaumer
  HVST_MEMORY_NODE: 0,
957 2da9f556 René Nussbaumer
  HVST_MEMORY_HV: 0,
958 2da9f556 René Nussbaumer
  HVST_CPU_TOTAL: 1,
959 2da9f556 René Nussbaumer
  HVST_CPU_NODE: 1,
960 2da9f556 René Nussbaumer
  }
961 2da9f556 René Nussbaumer
962 5b49ed09 René Nussbaumer
HVSTS_PARAMETER_TYPES = {
963 5b49ed09 René Nussbaumer
  HVST_MEMORY_TOTAL: VTYPE_INT,
964 5b49ed09 René Nussbaumer
  HVST_MEMORY_NODE: VTYPE_INT,
965 5b49ed09 René Nussbaumer
  HVST_MEMORY_HV: VTYPE_INT,
966 5b49ed09 René Nussbaumer
  HVST_CPU_TOTAL: VTYPE_INT,
967 5b49ed09 René Nussbaumer
  HVST_CPU_NODE: VTYPE_INT,
968 5b49ed09 René Nussbaumer
  }
969 5b49ed09 René Nussbaumer
970 5b49ed09 René Nussbaumer
HVSTS_PARAMETERS = frozenset(HVSTS_PARAMETER_TYPES.keys())
971 5b49ed09 René Nussbaumer
972 5b49ed09 René Nussbaumer
# Disk state
973 5b49ed09 René Nussbaumer
DS_DISK_TOTAL = "disk_total"
974 5b49ed09 René Nussbaumer
DS_DISK_RESERVED = "disk_reserved"
975 5b49ed09 René Nussbaumer
DS_DISK_OVERHEAD = "disk_overhead"
976 5b49ed09 René Nussbaumer
977 2da9f556 René Nussbaumer
DS_DEFAULTS = {
978 2da9f556 René Nussbaumer
  DS_DISK_TOTAL: 0,
979 2da9f556 René Nussbaumer
  DS_DISK_RESERVED: 0,
980 2da9f556 René Nussbaumer
  DS_DISK_OVERHEAD: 0,
981 2da9f556 René Nussbaumer
  }
982 2da9f556 René Nussbaumer
983 5b49ed09 René Nussbaumer
DSS_PARAMETER_TYPES = {
984 5b49ed09 René Nussbaumer
  DS_DISK_TOTAL: VTYPE_INT,
985 5b49ed09 René Nussbaumer
  DS_DISK_RESERVED: VTYPE_INT,
986 5b49ed09 René Nussbaumer
  DS_DISK_OVERHEAD: VTYPE_INT,
987 5b49ed09 René Nussbaumer
  }
988 5b49ed09 René Nussbaumer
989 5b49ed09 René Nussbaumer
DSS_PARAMETERS = frozenset(DSS_PARAMETER_TYPES.keys())
990 cd3b4ff4 Helga Velroyen
DS_VALID_TYPES = compat.UniqueFrozenset([DT_PLAIN])
991 5b49ed09 René Nussbaumer
992 3d5ebbf0 Stephen Shirley
# Backend parameter names
993 8c72ab2b Guido Trotter
BE_MEMORY = "memory" # deprecated and replaced by max and min mem
994 8c72ab2b Guido Trotter
BE_MAXMEM = "maxmem"
995 8c72ab2b Guido Trotter
BE_MINMEM = "minmem"
996 e64b8beb Iustin Pop
BE_VCPUS = "vcpus"
997 c0f2b229 Iustin Pop
BE_AUTO_BALANCE = "auto_balance"
998 11dc66f3 Bernardo Dal Seno
BE_ALWAYS_FAILOVER = "always_failover"
999 34700f5b René Nussbaumer
BE_SPINDLE_USE = "spindle_use"
1000 e64b8beb Iustin Pop
1001 a5728081 Guido Trotter
BES_PARAMETER_TYPES = {
1002 2e1a6024 Guido Trotter
  BE_MAXMEM: VTYPE_SIZE,
1003 2e1a6024 Guido Trotter
  BE_MINMEM: VTYPE_SIZE,
1004 2e1a6024 Guido Trotter
  BE_VCPUS: VTYPE_INT,
1005 2e1a6024 Guido Trotter
  BE_AUTO_BALANCE: VTYPE_BOOL,
1006 11dc66f3 Bernardo Dal Seno
  BE_ALWAYS_FAILOVER: VTYPE_BOOL,
1007 34700f5b René Nussbaumer
  BE_SPINDLE_USE: VTYPE_INT,
1008 2e1a6024 Guido Trotter
  }
1009 a5728081 Guido Trotter
1010 a6c7e2a2 Iustin Pop
BES_PARAMETER_TITLES = {
1011 a6c7e2a2 Iustin Pop
  BE_AUTO_BALANCE: "Auto_balance",
1012 a6c7e2a2 Iustin Pop
  BE_MAXMEM: "ConfigMaxMem",
1013 a6c7e2a2 Iustin Pop
  BE_MINMEM: "ConfigMinMem",
1014 a6c7e2a2 Iustin Pop
  BE_VCPUS: "ConfigVCPUs",
1015 a6c7e2a2 Iustin Pop
  }
1016 a6c7e2a2 Iustin Pop
1017 b2e233a5 Guido Trotter
BES_PARAMETER_COMPAT = {
1018 b2e233a5 Guido Trotter
  BE_MEMORY: VTYPE_SIZE,
1019 b2e233a5 Guido Trotter
  }
1020 b2e233a5 Guido Trotter
BES_PARAMETER_COMPAT.update(BES_PARAMETER_TYPES)
1021 b2e233a5 Guido Trotter
1022 a5728081 Guido Trotter
BES_PARAMETERS = frozenset(BES_PARAMETER_TYPES.keys())
1023 cd3ab26e Iustin Pop
1024 918eb80b Agata Murawska
# instance specs
1025 4f725341 Agata Murawska
ISPEC_MEM_SIZE = "memory-size"
1026 4f725341 Agata Murawska
ISPEC_CPU_COUNT = "cpu-count"
1027 4f725341 Agata Murawska
ISPEC_DISK_COUNT = "disk-count"
1028 4f725341 Agata Murawska
ISPEC_DISK_SIZE = "disk-size"
1029 4f725341 Agata Murawska
ISPEC_NIC_COUNT = "nic-count"
1030 553cb5f7 René Nussbaumer
ISPEC_SPINDLE_USE = "spindle-use"
1031 918eb80b Agata Murawska
1032 918eb80b Agata Murawska
ISPECS_PARAMETER_TYPES = {
1033 4f725341 Agata Murawska
  ISPEC_MEM_SIZE: VTYPE_INT,
1034 4f725341 Agata Murawska
  ISPEC_CPU_COUNT: VTYPE_INT,
1035 4f725341 Agata Murawska
  ISPEC_DISK_COUNT: VTYPE_INT,
1036 4f725341 Agata Murawska
  ISPEC_DISK_SIZE: VTYPE_INT,
1037 4f725341 Agata Murawska
  ISPEC_NIC_COUNT: VTYPE_INT,
1038 553cb5f7 René Nussbaumer
  ISPEC_SPINDLE_USE: VTYPE_INT,
1039 918eb80b Agata Murawska
  }
1040 918eb80b Agata Murawska
1041 918eb80b Agata Murawska
ISPECS_PARAMETERS = frozenset(ISPECS_PARAMETER_TYPES.keys())
1042 918eb80b Agata Murawska
1043 da5f09ef Bernardo Dal Seno
ISPECS_MINMAX = "minmax"
1044 4f725341 Agata Murawska
ISPECS_MIN = "min"
1045 4f725341 Agata Murawska
ISPECS_MAX = "max"
1046 4f725341 Agata Murawska
ISPECS_STD = "std"
1047 784b6603 René Nussbaumer
IPOLICY_DTS = "disk-templates"
1048 784b6603 René Nussbaumer
IPOLICY_VCPU_RATIO = "vcpu-ratio"
1049 a194dc28 Iustin Pop
IPOLICY_SPINDLE_RATIO = "spindle-ratio"
1050 918eb80b Agata Murawska
1051 da5f09ef Bernardo Dal Seno
ISPECS_MINMAX_KEYS = compat.UniqueFrozenset([
1052 4f725341 Agata Murawska
  ISPECS_MIN,
1053 4f725341 Agata Murawska
  ISPECS_MAX,
1054 918eb80b Agata Murawska
  ])
1055 ff6c5e55 Iustin Pop
1056 b8028dcf Michael Hanselmann
IPOLICY_PARAMETERS = compat.UniqueFrozenset([
1057 ff6c5e55 Iustin Pop
  IPOLICY_VCPU_RATIO,
1058 a194dc28 Iustin Pop
  IPOLICY_SPINDLE_RATIO,
1059 ff6c5e55 Iustin Pop
  ])
1060 ff6c5e55 Iustin Pop
1061 da5f09ef Bernardo Dal Seno
IPOLICY_ALL_KEYS = (IPOLICY_PARAMETERS |
1062 da5f09ef Bernardo Dal Seno
                    frozenset([ISPECS_MINMAX, ISPECS_STD, IPOLICY_DTS]))
1063 918eb80b Agata Murawska
1064 095e71aa René Nussbaumer
# Node parameter names
1065 095e71aa René Nussbaumer
ND_OOB_PROGRAM = "oob_program"
1066 432e8e2f Iustin Pop
ND_SPINDLE_COUNT = "spindle_count"
1067 0ea11dcb Bernardo Dal Seno
ND_EXCLUSIVE_STORAGE = "exclusive_storage"
1068 807d8853 Sebastian Gebhard
ND_OVS = "ovs"
1069 807d8853 Sebastian Gebhard
ND_OVS_NAME = "ovs_name"
1070 807d8853 Sebastian Gebhard
ND_OVS_LINK = "ovs_link"
1071 095e71aa René Nussbaumer
1072 095e71aa René Nussbaumer
NDS_PARAMETER_TYPES = {
1073 1df4d430 Iustin Pop
  ND_OOB_PROGRAM: VTYPE_STRING,
1074 432e8e2f Iustin Pop
  ND_SPINDLE_COUNT: VTYPE_INT,
1075 0ea11dcb Bernardo Dal Seno
  ND_EXCLUSIVE_STORAGE: VTYPE_BOOL,
1076 807d8853 Sebastian Gebhard
  ND_OVS: VTYPE_BOOL,
1077 807d8853 Sebastian Gebhard
  ND_OVS_NAME: VTYPE_MAYBE_STRING,
1078 807d8853 Sebastian Gebhard
  ND_OVS_LINK: VTYPE_MAYBE_STRING,
1079 2e1a6024 Guido Trotter
  }
1080 095e71aa René Nussbaumer
1081 095e71aa René Nussbaumer
NDS_PARAMETERS = frozenset(NDS_PARAMETER_TYPES.keys())
1082 095e71aa René Nussbaumer
1083 a6c7e2a2 Iustin Pop
NDS_PARAMETER_TITLES = {
1084 a6c7e2a2 Iustin Pop
  ND_OOB_PROGRAM: "OutOfBandProgram",
1085 a6c7e2a2 Iustin Pop
  ND_SPINDLE_COUNT: "SpindleCount",
1086 0ea11dcb Bernardo Dal Seno
  ND_EXCLUSIVE_STORAGE: "ExclusiveStorage",
1087 f51e9849 Klaus Aehlig
  ND_OVS: "OpenvSwitch",
1088 807d8853 Sebastian Gebhard
  ND_OVS_NAME: "OpenvSwitchName",
1089 807d8853 Sebastian Gebhard
  ND_OVS_LINK: "OpenvSwitchLink",
1090 a6c7e2a2 Iustin Pop
  }
1091 a6c7e2a2 Iustin Pop
1092 bc5d0215 Andrea Spadaccini
# Logical Disks parameters
1093 ac00bf1b Andrea Spadaccini
LDP_RESYNC_RATE = "resync-rate"
1094 ac00bf1b Andrea Spadaccini
LDP_STRIPES = "stripes"
1095 ac00bf1b Andrea Spadaccini
LDP_BARRIERS = "disabled-barriers"
1096 ac00bf1b Andrea Spadaccini
LDP_NO_META_FLUSH = "disable-meta-flush"
1097 8002e46b Andrea Spadaccini
LDP_DEFAULT_METAVG = "default-metavg"
1098 ad1dd4c7 Andrea Spadaccini
LDP_DISK_CUSTOM = "disk-custom"
1099 ad1dd4c7 Andrea Spadaccini
LDP_NET_CUSTOM = "net-custom"
1100 65fc2388 Thomas Thrainer
LDP_PROTOCOL = "protocol"
1101 f2f57b6e Andrea Spadaccini
LDP_DYNAMIC_RESYNC = "dynamic-resync"
1102 8584e922 Andrea Spadaccini
LDP_PLAN_AHEAD = "c-plan-ahead"
1103 8584e922 Andrea Spadaccini
LDP_FILL_TARGET = "c-fill-target"
1104 8584e922 Andrea Spadaccini
LDP_DELAY_TARGET = "c-delay-target"
1105 8584e922 Andrea Spadaccini
LDP_MAX_RATE = "c-max-rate"
1106 8584e922 Andrea Spadaccini
LDP_MIN_RATE = "c-min-rate"
1107 7181fba0 Constantinos Venetsanopoulos
LDP_POOL = "pool"
1108 bc5d0215 Andrea Spadaccini
DISK_LD_TYPES = {
1109 ac00bf1b Andrea Spadaccini
  LDP_RESYNC_RATE: VTYPE_INT,
1110 ac00bf1b Andrea Spadaccini
  LDP_STRIPES: VTYPE_INT,
1111 ac00bf1b Andrea Spadaccini
  LDP_BARRIERS: VTYPE_STRING,
1112 ac00bf1b Andrea Spadaccini
  LDP_NO_META_FLUSH: VTYPE_BOOL,
1113 8002e46b Andrea Spadaccini
  LDP_DEFAULT_METAVG: VTYPE_STRING,
1114 ad1dd4c7 Andrea Spadaccini
  LDP_DISK_CUSTOM: VTYPE_STRING,
1115 ad1dd4c7 Andrea Spadaccini
  LDP_NET_CUSTOM: VTYPE_STRING,
1116 65fc2388 Thomas Thrainer
  LDP_PROTOCOL: VTYPE_STRING,
1117 f2f57b6e Andrea Spadaccini
  LDP_DYNAMIC_RESYNC: VTYPE_BOOL,
1118 8584e922 Andrea Spadaccini
  LDP_PLAN_AHEAD: VTYPE_INT,
1119 8584e922 Andrea Spadaccini
  LDP_FILL_TARGET: VTYPE_INT,
1120 8584e922 Andrea Spadaccini
  LDP_DELAY_TARGET: VTYPE_INT,
1121 8584e922 Andrea Spadaccini
  LDP_MAX_RATE: VTYPE_INT,
1122 8584e922 Andrea Spadaccini
  LDP_MIN_RATE: VTYPE_INT,
1123 7181fba0 Constantinos Venetsanopoulos
  LDP_POOL: VTYPE_STRING,
1124 bc5d0215 Andrea Spadaccini
  }
1125 bc5d0215 Andrea Spadaccini
DISK_LD_PARAMETERS = frozenset(DISK_LD_TYPES.keys())
1126 bc5d0215 Andrea Spadaccini
1127 f2f57b6e Andrea Spadaccini
# Disk template parameters (can be set/changed by the user via gnt-cluster and
1128 f2f57b6e Andrea Spadaccini
# gnt-group)
1129 6e9814a1 Andrea Spadaccini
DRBD_RESYNC_RATE = "resync-rate"
1130 43e11798 Andrea Spadaccini
DRBD_DATA_STRIPES = "data-stripes"
1131 43e11798 Andrea Spadaccini
DRBD_META_STRIPES = "meta-stripes"
1132 8a69b3a8 Andrea Spadaccini
DRBD_DISK_BARRIERS = "disk-barriers"
1133 8a69b3a8 Andrea Spadaccini
DRBD_META_BARRIERS = "meta-barriers"
1134 8002e46b Andrea Spadaccini
DRBD_DEFAULT_METAVG = "metavg"
1135 ad1dd4c7 Andrea Spadaccini
DRBD_DISK_CUSTOM = "disk-custom"
1136 ad1dd4c7 Andrea Spadaccini
DRBD_NET_CUSTOM = "net-custom"
1137 65fc2388 Thomas Thrainer
DRBD_PROTOCOL = "protocol"
1138 f2f57b6e Andrea Spadaccini
DRBD_DYNAMIC_RESYNC = "dynamic-resync"
1139 8584e922 Andrea Spadaccini
DRBD_PLAN_AHEAD = "c-plan-ahead"
1140 8584e922 Andrea Spadaccini
DRBD_FILL_TARGET = "c-fill-target"
1141 8584e922 Andrea Spadaccini
DRBD_DELAY_TARGET = "c-delay-target"
1142 8584e922 Andrea Spadaccini
DRBD_MAX_RATE = "c-max-rate"
1143 8584e922 Andrea Spadaccini
DRBD_MIN_RATE = "c-min-rate"
1144 43e11798 Andrea Spadaccini
LV_STRIPES = "stripes"
1145 7181fba0 Constantinos Venetsanopoulos
RBD_POOL = "pool"
1146 bc5d0215 Andrea Spadaccini
DISK_DT_TYPES = {
1147 6e9814a1 Andrea Spadaccini
  DRBD_RESYNC_RATE: VTYPE_INT,
1148 43e11798 Andrea Spadaccini
  DRBD_DATA_STRIPES: VTYPE_INT,
1149 43e11798 Andrea Spadaccini
  DRBD_META_STRIPES: VTYPE_INT,
1150 8a69b3a8 Andrea Spadaccini
  DRBD_DISK_BARRIERS: VTYPE_STRING,
1151 8a69b3a8 Andrea Spadaccini
  DRBD_META_BARRIERS: VTYPE_BOOL,
1152 8002e46b Andrea Spadaccini
  DRBD_DEFAULT_METAVG: VTYPE_STRING,
1153 ad1dd4c7 Andrea Spadaccini
  DRBD_DISK_CUSTOM: VTYPE_STRING,
1154 ad1dd4c7 Andrea Spadaccini
  DRBD_NET_CUSTOM: VTYPE_STRING,
1155 65fc2388 Thomas Thrainer
  DRBD_PROTOCOL: VTYPE_STRING,
1156 f2f57b6e Andrea Spadaccini
  DRBD_DYNAMIC_RESYNC: VTYPE_BOOL,
1157 8584e922 Andrea Spadaccini
  DRBD_PLAN_AHEAD: VTYPE_INT,
1158 8584e922 Andrea Spadaccini
  DRBD_FILL_TARGET: VTYPE_INT,
1159 8584e922 Andrea Spadaccini
  DRBD_DELAY_TARGET: VTYPE_INT,
1160 8584e922 Andrea Spadaccini
  DRBD_MAX_RATE: VTYPE_INT,
1161 8584e922 Andrea Spadaccini
  DRBD_MIN_RATE: VTYPE_INT,
1162 43e11798 Andrea Spadaccini
  LV_STRIPES: VTYPE_INT,
1163 7181fba0 Constantinos Venetsanopoulos
  RBD_POOL: VTYPE_STRING,
1164 bc5d0215 Andrea Spadaccini
  }
1165 bc5d0215 Andrea Spadaccini
1166 bc5d0215 Andrea Spadaccini
DISK_DT_PARAMETERS = frozenset(DISK_DT_TYPES.keys())
1167 bc5d0215 Andrea Spadaccini
1168 0c3d9c7c Thomas Thrainer
# dynamic disk parameters
1169 0c3d9c7c Thomas Thrainer
DDP_LOCAL_IP = "local-ip"
1170 0c3d9c7c Thomas Thrainer
DDP_REMOTE_IP = "remote-ip"
1171 0c3d9c7c Thomas Thrainer
DDP_PORT = "port"
1172 0c3d9c7c Thomas Thrainer
DDP_LOCAL_MINOR = "local-minor"
1173 0c3d9c7c Thomas Thrainer
DDP_REMOTE_MINOR = "remote-minor"
1174 0c3d9c7c Thomas Thrainer
1175 b2f29800 René Nussbaumer
# OOB supported commands
1176 8a7a197a Jose A. Lopes
OOB_POWER_ON = _constants.OOB_POWER_ON
1177 8a7a197a Jose A. Lopes
OOB_POWER_OFF = _constants.OOB_POWER_OFF
1178 8a7a197a Jose A. Lopes
OOB_POWER_CYCLE = _constants.OOB_POWER_CYCLE
1179 8a7a197a Jose A. Lopes
OOB_POWER_STATUS = _constants.OOB_POWER_STATUS
1180 8a7a197a Jose A. Lopes
OOB_HEALTH = _constants.OOB_HEALTH
1181 8a7a197a Jose A. Lopes
OOB_COMMANDS = _constants.OOB_COMMANDS
1182 b528a12d René Nussbaumer
1183 8a7a197a Jose A. Lopes
OOB_POWER_STATUS_POWERED = _constants.OOB_POWER_STATUS_POWERED
1184 445f735d René Nussbaumer
1185 8a7a197a Jose A. Lopes
OOB_TIMEOUT = _constants.OOB_TIMEOUT
1186 8a7a197a Jose A. Lopes
OOB_POWER_DELAY = _constants.OOB_POWER_DELAY
1187 445f735d René Nussbaumer
1188 8a7a197a Jose A. Lopes
OOB_STATUS_OK = _constants.OOB_STATUS_OK
1189 8a7a197a Jose A. Lopes
OOB_STATUS_WARNING = _constants.OOB_STATUS_WARNING
1190 8a7a197a Jose A. Lopes
OOB_STATUS_CRITICAL = _constants.OOB_STATUS_CRITICAL
1191 8a7a197a Jose A. Lopes
OOB_STATUS_UNKNOWN = _constants.OOB_STATUS_UNKNOWN
1192 8a7a197a Jose A. Lopes
OOB_STATUSES = _constants.OOB_STATUSES
1193 445f735d René Nussbaumer
1194 4ef7f423 Guido Trotter
# Instance Parameters Profile
1195 4ef7f423 Guido Trotter
PP_DEFAULT = "default"
1196 e64b8beb Iustin Pop
1197 246f4067 Guido Trotter
# NIC_* constants are used inside the ganeti config
1198 8a7a197a Jose A. Lopes
NIC_MODE = _constants.NIC_MODE
1199 8a7a197a Jose A. Lopes
NIC_LINK = _constants.NIC_LINK
1200 8a7a197a Jose A. Lopes
NIC_VLAN = _constants.NIC_VLAN
1201 8a7a197a Jose A. Lopes
1202 8a7a197a Jose A. Lopes
NIC_MODE_BRIDGED = _constants.NIC_MODE_BRIDGED
1203 8a7a197a Jose A. Lopes
NIC_MODE_ROUTED = _constants.NIC_MODE_ROUTED
1204 8a7a197a Jose A. Lopes
NIC_MODE_OVS = _constants.NIC_MODE_OVS
1205 8a7a197a Jose A. Lopes
NIC_IP_POOL = _constants.NIC_IP_POOL
1206 8a7a197a Jose A. Lopes
NIC_VALID_MODES = _constants.NIC_VALID_MODES
1207 ac061be9 Guido Trotter
1208 2556424d Iustin Pop
RESERVE_ACTION = "reserve"
1209 2556424d Iustin Pop
RELEASE_ACTION = "release"
1210 e81eef56 Dimitris Aragiorgis
1211 ac061be9 Guido Trotter
NICS_PARAMETER_TYPES = {
1212 2e1a6024 Guido Trotter
  NIC_MODE: VTYPE_STRING,
1213 2e1a6024 Guido Trotter
  NIC_LINK: VTYPE_STRING,
1214 7ad422ec Sebastian Gebhard
  NIC_VLAN: VTYPE_MAYBE_STRING,
1215 2e1a6024 Guido Trotter
  }
1216 ac061be9 Guido Trotter
1217 ac061be9 Guido Trotter
NICS_PARAMETERS = frozenset(NICS_PARAMETER_TYPES.keys())
1218 e64b8beb Iustin Pop
1219 246f4067 Guido Trotter
# IDISK_* constants are used in opcodes, to create/change disks
1220 bd061c35 Guido Trotter
IDISK_SIZE = "size"
1221 c615590c Bernardo Dal Seno
IDISK_SPINDLES = "spindles"
1222 bd061c35 Guido Trotter
IDISK_MODE = "mode"
1223 8494604f Apollon Oikonomopoulos
IDISK_ADOPT = "adopt"
1224 7af3534e Dmitry Chernyak
IDISK_VG = "vg"
1225 87001920 Iustin Pop
IDISK_METAVG = "metavg"
1226 938adc87 Constantinos Venetsanopoulos
IDISK_PROVIDER = "provider"
1227 ae860154 Christos Stavrakakis
IDISK_NAME = "name"
1228 8494604f Apollon Oikonomopoulos
IDISK_PARAMS_TYPES = {
1229 8494604f Apollon Oikonomopoulos
  IDISK_SIZE: VTYPE_SIZE,
1230 c615590c Bernardo Dal Seno
  IDISK_SPINDLES: VTYPE_INT,
1231 8494604f Apollon Oikonomopoulos
  IDISK_MODE: VTYPE_STRING,
1232 8494604f Apollon Oikonomopoulos
  IDISK_ADOPT: VTYPE_STRING,
1233 7af3534e Dmitry Chernyak
  IDISK_VG: VTYPE_STRING,
1234 87001920 Iustin Pop
  IDISK_METAVG: VTYPE_STRING,
1235 938adc87 Constantinos Venetsanopoulos
  IDISK_PROVIDER: VTYPE_STRING,
1236 ae860154 Christos Stavrakakis
  IDISK_NAME: VTYPE_MAYBE_STRING,
1237 8494604f Apollon Oikonomopoulos
  }
1238 cc87d736 Michael Hanselmann
IDISK_PARAMS = frozenset(IDISK_PARAMS_TYPES.keys())
1239 cc87d736 Michael Hanselmann
1240 246f4067 Guido Trotter
# INIC_* constants are used in opcodes, to create/change nics
1241 bd061c35 Guido Trotter
INIC_MAC = "mac"
1242 bd061c35 Guido Trotter
INIC_IP = "ip"
1243 bd061c35 Guido Trotter
INIC_MODE = "mode"
1244 bd061c35 Guido Trotter
INIC_LINK = "link"
1245 eaa4c57c Dimitris Aragiorgis
INIC_NETWORK = "network"
1246 ae860154 Christos Stavrakakis
INIC_NAME = "name"
1247 7ad422ec Sebastian Gebhard
INIC_VLAN = "vlan"
1248 4c98734a Jose A. Lopes
INIC_BRIDGE = "bridge"
1249 cc87d736 Michael Hanselmann
INIC_PARAMS_TYPES = {
1250 cc87d736 Michael Hanselmann
  INIC_IP: VTYPE_MAYBE_STRING,
1251 cc87d736 Michael Hanselmann
  INIC_LINK: VTYPE_STRING,
1252 cc87d736 Michael Hanselmann
  INIC_MAC: VTYPE_STRING,
1253 cc87d736 Michael Hanselmann
  INIC_MODE: VTYPE_STRING,
1254 eaa4c57c Dimitris Aragiorgis
  INIC_NETWORK: VTYPE_MAYBE_STRING,
1255 ae860154 Christos Stavrakakis
  INIC_NAME: VTYPE_MAYBE_STRING,
1256 7ad422ec Sebastian Gebhard
  INIC_VLAN: VTYPE_MAYBE_STRING,
1257 4c98734a Jose A. Lopes
  INIC_BRIDGE: VTYPE_MAYBE_STRING
1258 cc87d736 Michael Hanselmann
  }
1259 cc87d736 Michael Hanselmann
INIC_PARAMS = frozenset(INIC_PARAMS_TYPES.keys())
1260 bd061c35 Guido Trotter
1261 2584d4a4 Alexander Schreiber
# Hypervisor constants
1262 8a7a197a Jose A. Lopes
HT_XEN_PVM = _constants.HT_XEN_PVM
1263 8a7a197a Jose A. Lopes
HT_FAKE = _constants.HT_FAKE
1264 8a7a197a Jose A. Lopes
HT_XEN_HVM = _constants.HT_XEN_HVM
1265 8a7a197a Jose A. Lopes
HT_KVM = _constants.HT_KVM
1266 8a7a197a Jose A. Lopes
HT_CHROOT = _constants.HT_CHROOT
1267 8a7a197a Jose A. Lopes
HT_LXC = _constants.HT_LXC
1268 8a7a197a Jose A. Lopes
HYPER_TYPES = _constants.HYPER_TYPES
1269 8a7a197a Jose A. Lopes
HTS_REQ_PORT = _constants.HTS_REQ_PORT
1270 2584d4a4 Alexander Schreiber
1271 377d74c9 Guido Trotter
VNC_BASE_PORT = 5900
1272 0d2cd893 Manuel Franceschini
VNC_DEFAULT_BIND_ADDRESS = IP4_ADDRESS_ANY
1273 e54c4c5e Guido Trotter
1274 835528af Iustin Pop
# NIC types
1275 d08f6067 Guido Trotter
HT_NIC_RTL8139 = "rtl8139"
1276 d08f6067 Guido Trotter
HT_NIC_NE2K_PCI = "ne2k_pci"
1277 d08f6067 Guido Trotter
HT_NIC_NE2K_ISA = "ne2k_isa"
1278 43440815 Guido Trotter
HT_NIC_I82551 = "i82551"
1279 43440815 Guido Trotter
HT_NIC_I85557B = "i82557b"
1280 43440815 Guido Trotter
HT_NIC_I8259ER = "i82559er"
1281 43440815 Guido Trotter
HT_NIC_PCNET = "pcnet"
1282 43440815 Guido Trotter
HT_NIC_E1000 = "e1000"
1283 d08f6067 Guido Trotter
HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
1284 43440815 Guido Trotter
1285 b8028dcf Michael Hanselmann
HT_HVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
1286 21daa4a8 Stephen Shirley
  HT_NIC_RTL8139,
1287 21daa4a8 Stephen Shirley
  HT_NIC_NE2K_PCI,
1288 21daa4a8 Stephen Shirley
  HT_NIC_E1000,
1289 21daa4a8 Stephen Shirley
  HT_NIC_NE2K_ISA,
1290 3c286190 Dimitris Aragiorgis
  HT_NIC_PARAVIRTUAL,
1291 21daa4a8 Stephen Shirley
  ])
1292 b8028dcf Michael Hanselmann
HT_KVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
1293 21daa4a8 Stephen Shirley
  HT_NIC_RTL8139,
1294 21daa4a8 Stephen Shirley
  HT_NIC_NE2K_PCI,
1295 21daa4a8 Stephen Shirley
  HT_NIC_NE2K_ISA,
1296 21daa4a8 Stephen Shirley
  HT_NIC_I82551,
1297 21daa4a8 Stephen Shirley
  HT_NIC_I85557B,
1298 21daa4a8 Stephen Shirley
  HT_NIC_I8259ER,
1299 21daa4a8 Stephen Shirley
  HT_NIC_PCNET,
1300 21daa4a8 Stephen Shirley
  HT_NIC_E1000,
1301 3c286190 Dimitris Aragiorgis
  HT_NIC_PARAVIRTUAL,
1302 21daa4a8 Stephen Shirley
  ])
1303 21daa4a8 Stephen Shirley
1304 05440845 Helga Velroyen
# Vif types
1305 05440845 Helga Velroyen
# default vif type in xen-hvm
1306 05440845 Helga Velroyen
HT_HVM_VIF_IOEMU = "ioemu"
1307 05440845 Helga Velroyen
HT_HVM_VIF_VIF = "vif"
1308 05440845 Helga Velroyen
HT_HVM_VALID_VIF_TYPES = compat.UniqueFrozenset([
1309 05440845 Helga Velroyen
  HT_HVM_VIF_IOEMU,
1310 05440845 Helga Velroyen
  HT_HVM_VIF_VIF,
1311 05440845 Helga Velroyen
  ])
1312 05440845 Helga Velroyen
1313 835528af Iustin Pop
# Disk types
1314 835528af Iustin Pop
HT_DISK_IOEMU = "ioemu"
1315 835528af Iustin Pop
HT_DISK_IDE = "ide"
1316 835528af Iustin Pop
HT_DISK_SCSI = "scsi"
1317 835528af Iustin Pop
HT_DISK_SD = "sd"
1318 835528af Iustin Pop
HT_DISK_MTD = "mtd"
1319 835528af Iustin Pop
HT_DISK_PFLASH = "pflash"
1320 835528af Iustin Pop
1321 ea0f3d7a Iustin Pop
HT_CACHE_DEFAULT = "default"
1322 ea0f3d7a Iustin Pop
HT_CACHE_NONE = "none"
1323 ea0f3d7a Iustin Pop
HT_CACHE_WTHROUGH = "writethrough"
1324 ea0f3d7a Iustin Pop
HT_CACHE_WBACK = "writeback"
1325 b8028dcf Michael Hanselmann
HT_VALID_CACHE_TYPES = compat.UniqueFrozenset([
1326 21daa4a8 Stephen Shirley
  HT_CACHE_DEFAULT,
1327 21daa4a8 Stephen Shirley
  HT_CACHE_NONE,
1328 21daa4a8 Stephen Shirley
  HT_CACHE_WTHROUGH,
1329 3c286190 Dimitris Aragiorgis
  HT_CACHE_WBACK,
1330 21daa4a8 Stephen Shirley
  ])
1331 ea0f3d7a Iustin Pop
1332 b8028dcf Michael Hanselmann
HT_HVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
1333 b8028dcf Michael Hanselmann
  HT_DISK_PARAVIRTUAL,
1334 b8028dcf Michael Hanselmann
  HT_DISK_IOEMU,
1335 b8028dcf Michael Hanselmann
  ])
1336 b8028dcf Michael Hanselmann
HT_KVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
1337 21daa4a8 Stephen Shirley
  HT_DISK_PARAVIRTUAL,
1338 21daa4a8 Stephen Shirley
  HT_DISK_IDE,
1339 21daa4a8 Stephen Shirley
  HT_DISK_SCSI,
1340 21daa4a8 Stephen Shirley
  HT_DISK_SD,
1341 21daa4a8 Stephen Shirley
  HT_DISK_MTD,
1342 3c286190 Dimitris Aragiorgis
  HT_DISK_PFLASH,
1343 21daa4a8 Stephen Shirley
  ])
1344 b894f5a8 Alexander Schreiber
1345 835528af Iustin Pop
# Mouse types:
1346 835528af Iustin Pop
HT_MOUSE_MOUSE = "mouse"
1347 835528af Iustin Pop
HT_MOUSE_TABLET = "tablet"
1348 835528af Iustin Pop
1349 b8028dcf Michael Hanselmann
HT_KVM_VALID_MOUSE_TYPES = compat.UniqueFrozenset([
1350 b8028dcf Michael Hanselmann
  HT_MOUSE_MOUSE,
1351 b8028dcf Michael Hanselmann
  HT_MOUSE_TABLET,
1352 b8028dcf Michael Hanselmann
  ])
1353 835528af Iustin Pop
1354 835528af Iustin Pop
# Boot order
1355 cc130cc7 Marco Casavecchia
HT_BO_FLOPPY = "floppy"
1356 835528af Iustin Pop
HT_BO_CDROM = "cdrom"
1357 835528af Iustin Pop
HT_BO_DISK = "disk"
1358 835528af Iustin Pop
HT_BO_NETWORK = "network"
1359 835528af Iustin Pop
1360 b8028dcf Michael Hanselmann
HT_KVM_VALID_BO_TYPES = compat.UniqueFrozenset([
1361 21daa4a8 Stephen Shirley
  HT_BO_FLOPPY,
1362 21daa4a8 Stephen Shirley
  HT_BO_CDROM,
1363 21daa4a8 Stephen Shirley
  HT_BO_DISK,
1364 3c286190 Dimitris Aragiorgis
  HT_BO_NETWORK,
1365 21daa4a8 Stephen Shirley
  ])
1366 835528af Iustin Pop
1367 ea064d24 Andrea Spadaccini
# SPICE lossless image compression options
1368 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ = "auto_glz"
1369 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ = "auto_lz"
1370 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC = "quic"
1371 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ = "glz"
1372 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ = "lz"
1373 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF = "off"
1374 ea064d24 Andrea Spadaccini
1375 b8028dcf Michael Hanselmann
HT_KVM_SPICE_VALID_LOSSLESS_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
1376 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ,
1377 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ,
1378 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC,
1379 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ,
1380 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ,
1381 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF,
1382 ea064d24 Andrea Spadaccini
  ])
1383 ea064d24 Andrea Spadaccini
1384 ea064d24 Andrea Spadaccini
# SPICE lossy image compression options (valid for both jpeg and zlib-glz)
1385 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO = "auto"
1386 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER = "never"
1387 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS = "always"
1388 ea064d24 Andrea Spadaccini
1389 b8028dcf Michael Hanselmann
HT_KVM_SPICE_VALID_LOSSY_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
1390 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO,
1391 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER,
1392 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS,
1393 ea064d24 Andrea Spadaccini
  ])
1394 ea064d24 Andrea Spadaccini
1395 ea064d24 Andrea Spadaccini
# SPICE video stream detection
1396 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF = "off"
1397 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL = "all"
1398 ea064d24 Andrea Spadaccini
HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER = "filter"
1399 ea064d24 Andrea Spadaccini
1400 b8028dcf Michael Hanselmann
HT_KVM_SPICE_VALID_VIDEO_STREAM_DETECTION_OPTIONS = compat.UniqueFrozenset([
1401 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF,
1402 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL,
1403 ea064d24 Andrea Spadaccini
  HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER,
1404 ea064d24 Andrea Spadaccini
  ])
1405 ea064d24 Andrea Spadaccini
1406 3424767f Guido Trotter
# Security models
1407 3424767f Guido Trotter
HT_SM_NONE = "none"
1408 3424767f Guido Trotter
HT_SM_USER = "user"
1409 3424767f Guido Trotter
HT_SM_POOL = "pool"
1410 3424767f Guido Trotter
1411 b8028dcf Michael Hanselmann
HT_KVM_VALID_SM_TYPES = compat.UniqueFrozenset([
1412 b8028dcf Michael Hanselmann
  HT_SM_NONE,
1413 b8028dcf Michael Hanselmann
  HT_SM_USER,
1414 b8028dcf Michael Hanselmann
  HT_SM_POOL,
1415 b8028dcf Michael Hanselmann
  ])
1416 3424767f Guido Trotter
1417 7ba594c0 Guido Trotter
# Kvm flag values
1418 7ba594c0 Guido Trotter
HT_KVM_ENABLED = "enabled"
1419 7ba594c0 Guido Trotter
HT_KVM_DISABLED = "disabled"
1420 7ba594c0 Guido Trotter
1421 b8028dcf Michael Hanselmann
HT_KVM_FLAG_VALUES = compat.UniqueFrozenset([HT_KVM_ENABLED, HT_KVM_DISABLED])
1422 7ba594c0 Guido Trotter
1423 e71b9ef4 Iustin Pop
# Migration type
1424 8a7a197a Jose A. Lopes
HT_MIGRATION_LIVE = _constants.HT_MIGRATION_LIVE
1425 8a7a197a Jose A. Lopes
HT_MIGRATION_NONLIVE = _constants.HT_MIGRATION_NONLIVE
1426 8a7a197a Jose A. Lopes
HT_MIGRATION_MODES = _constants.HT_MIGRATION_MODES
1427 e71b9ef4 Iustin Pop
1428 e54c4c5e Guido Trotter
# Cluster Verify steps
1429 8a7a197a Jose A. Lopes
VERIFY_NPLUSONE_MEM = _constants.VERIFY_NPLUSONE_MEM
1430 8a7a197a Jose A. Lopes
VERIFY_OPTIONAL_CHECKS = _constants.VERIFY_OPTIONAL_CHECKS
1431 e54c4c5e Guido Trotter
1432 eedf99b5 Andrea Spadaccini
# Cluster Verify error classes
1433 8a7a197a Jose A. Lopes
CV_TCLUSTER = _constants.CV_TCLUSTER
1434 8a7a197a Jose A. Lopes
CV_TGROUP = _constants.CV_TGROUP
1435 8a7a197a Jose A. Lopes
CV_TNODE = _constants.CV_TNODE
1436 8a7a197a Jose A. Lopes
CV_TINSTANCE = _constants.CV_TINSTANCE
1437 eedf99b5 Andrea Spadaccini
1438 3ac3f5e4 Andrea Spadaccini
# Cluster Verify error codes and documentation
1439 8a7a197a Jose A. Lopes
CV_ECLUSTERCFG = _constants.CV_ECLUSTERCFG
1440 8a7a197a Jose A. Lopes
CV_ECLUSTERCERT = _constants.CV_ECLUSTERCERT
1441 8a7a197a Jose A. Lopes
CV_ECLUSTERFILECHECK = _constants.CV_ECLUSTERFILECHECK
1442 8a7a197a Jose A. Lopes
CV_ECLUSTERDANGLINGNODES = _constants.CV_ECLUSTERDANGLINGNODES
1443 8a7a197a Jose A. Lopes
CV_ECLUSTERDANGLINGINST = _constants.CV_ECLUSTERDANGLINGINST
1444 8a7a197a Jose A. Lopes
CV_EGROUPDIFFERENTPVSIZE = _constants.CV_EGROUPDIFFERENTPVSIZE
1445 8a7a197a Jose A. Lopes
CV_EINSTANCEBADNODE = _constants.CV_EINSTANCEBADNODE
1446 8a7a197a Jose A. Lopes
CV_EINSTANCEDOWN = _constants.CV_EINSTANCEDOWN
1447 8a7a197a Jose A. Lopes
CV_EINSTANCELAYOUT = _constants.CV_EINSTANCELAYOUT
1448 8a7a197a Jose A. Lopes
CV_EINSTANCEMISSINGDISK = _constants.CV_EINSTANCEMISSINGDISK
1449 8a7a197a Jose A. Lopes
CV_EINSTANCEFAULTYDISK = _constants.CV_EINSTANCEFAULTYDISK
1450 8a7a197a Jose A. Lopes
CV_EINSTANCEWRONGNODE = _constants.CV_EINSTANCEWRONGNODE
1451 8a7a197a Jose A. Lopes
CV_EINSTANCESPLITGROUPS = _constants.CV_EINSTANCESPLITGROUPS
1452 8a7a197a Jose A. Lopes
CV_EINSTANCEPOLICY = _constants.CV_EINSTANCEPOLICY
1453 8a7a197a Jose A. Lopes
CV_EINSTANCEUNSUITABLENODE = _constants.CV_EINSTANCEUNSUITABLENODE
1454 8a7a197a Jose A. Lopes
CV_EINSTANCEMISSINGCFGPARAMETER = _constants.CV_EINSTANCEMISSINGCFGPARAMETER
1455 8a7a197a Jose A. Lopes
CV_ENODEDRBD = _constants.CV_ENODEDRBD
1456 8a7a197a Jose A. Lopes
CV_ENODEDRBDVERSION = _constants.CV_ENODEDRBDVERSION
1457 8a7a197a Jose A. Lopes
CV_ENODEDRBDHELPER = _constants.CV_ENODEDRBDHELPER
1458 8a7a197a Jose A. Lopes
CV_ENODEFILECHECK = _constants.CV_ENODEFILECHECK
1459 8a7a197a Jose A. Lopes
CV_ENODEHOOKS = _constants.CV_ENODEHOOKS
1460 8a7a197a Jose A. Lopes
CV_ENODEHV = _constants.CV_ENODEHV
1461 8a7a197a Jose A. Lopes
CV_ENODELVM = _constants.CV_ENODELVM
1462 8a7a197a Jose A. Lopes
CV_ENODEN1 = _constants.CV_ENODEN1
1463 8a7a197a Jose A. Lopes
CV_ENODENET = _constants.CV_ENODENET
1464 8a7a197a Jose A. Lopes
CV_ENODEOS = _constants.CV_ENODEOS
1465 8a7a197a Jose A. Lopes
CV_ENODEORPHANINSTANCE = _constants.CV_ENODEORPHANINSTANCE
1466 8a7a197a Jose A. Lopes
CV_ENODEORPHANLV = _constants.CV_ENODEORPHANLV
1467 8a7a197a Jose A. Lopes
CV_ENODERPC = _constants.CV_ENODERPC
1468 8a7a197a Jose A. Lopes
CV_ENODESSH = _constants.CV_ENODESSH
1469 8a7a197a Jose A. Lopes
CV_ENODEVERSION = _constants.CV_ENODEVERSION
1470 8a7a197a Jose A. Lopes
CV_ENODESETUP = _constants.CV_ENODESETUP
1471 8a7a197a Jose A. Lopes
CV_ENODETIME = _constants.CV_ENODETIME
1472 8a7a197a Jose A. Lopes
CV_ENODEOOBPATH = _constants.CV_ENODEOOBPATH
1473 8a7a197a Jose A. Lopes
CV_ENODEUSERSCRIPTS = _constants.CV_ENODEUSERSCRIPTS
1474 8a7a197a Jose A. Lopes
CV_ENODEFILESTORAGEPATHS = _constants.CV_ENODEFILESTORAGEPATHS
1475 8a7a197a Jose A. Lopes
CV_ENODEFILESTORAGEPATHUNUSABLE = _constants.CV_ENODEFILESTORAGEPATHUNUSABLE
1476 4b322a76 Helga Velroyen
CV_ENODESHAREDFILESTORAGEPATHUNUSABLE = \
1477 8a7a197a Jose A. Lopes
  _constants.CV_ENODESHAREDFILESTORAGEPATHUNUSABLE
1478 eedf99b5 Andrea Spadaccini
1479 8a7a197a Jose A. Lopes
CV_ALL_ECODES = _constants.CV_ALL_ECODES
1480 8a7a197a Jose A. Lopes
CV_ALL_ECODES_STRINGS = _constants.CV_ALL_ECODES_STRINGS
1481 eedf99b5 Andrea Spadaccini
1482 25361b9a Iustin Pop
# Node verify constants
1483 8c3d6797 Bernardo Dal Seno
NV_BRIDGES = "bridges"
1484 7ef40fbe Luca Bigliardi
NV_DRBDHELPER = "drbd-helper"
1485 5bb0a1cb Thomas Thrainer
NV_DRBDVERSION = "drbd-version"
1486 b0d85178 Iustin Pop
NV_DRBDLIST = "drbd-list"
1487 d5a690cb Bernardo Dal Seno
NV_EXCLUSIVEPVS = "exclusive-pvs"
1488 25361b9a Iustin Pop
NV_FILELIST = "filelist"
1489 13a6c760 Helga Velroyen
NV_ACCEPTED_STORAGE_PATHS = "allowed-file-storage-paths"
1490 13a6c760 Helga Velroyen
NV_FILE_STORAGE_PATH = "file-storage-path"
1491 13a6c760 Helga Velroyen
NV_SHARED_FILE_STORAGE_PATH = "shared-file-storage-path"
1492 25361b9a Iustin Pop
NV_HVINFO = "hvinfo"
1493 58a59652 Iustin Pop
NV_HVPARAMS = "hvparms"
1494 8c3d6797 Bernardo Dal Seno
NV_HYPERVISOR = "hypervisor"
1495 25361b9a Iustin Pop
NV_INSTANCELIST = "instancelist"
1496 b0d85178 Iustin Pop
NV_LVLIST = "lvlist"
1497 b0d85178 Iustin Pop
NV_MASTERIP = "master-ip"
1498 25361b9a Iustin Pop
NV_NODELIST = "nodelist"
1499 25361b9a Iustin Pop
NV_NODENETTEST = "node-net-test"
1500 7c0aa8e9 Iustin Pop
NV_NODESETUP = "nodesetup"
1501 8c3d6797 Bernardo Dal Seno
NV_OOB_PATHS = "oob-paths"
1502 b0d85178 Iustin Pop
NV_OSLIST = "oslist"
1503 b0d85178 Iustin Pop
NV_PVLIST = "pvlist"
1504 313b2dd4 Michael Hanselmann
NV_TIME = "time"
1505 8c3d6797 Bernardo Dal Seno
NV_USERSCRIPTS = "user-scripts"
1506 b0d85178 Iustin Pop
NV_VERSION = "version"
1507 b0d85178 Iustin Pop
NV_VGLIST = "vglist"
1508 8964ee14 Iustin Pop
NV_VMNODES = "vmnodes"
1509 25361b9a Iustin Pop
1510 61a980a9 Michael Hanselmann
# Instance status
1511 8a7a197a Jose A. Lopes
INSTST_RUNNING = _constants.INSTST_RUNNING
1512 8a7a197a Jose A. Lopes
INSTST_ADMINDOWN = _constants.INSTST_ADMINDOWN
1513 8a7a197a Jose A. Lopes
INSTST_ADMINOFFLINE = _constants.INSTST_ADMINOFFLINE
1514 8a7a197a Jose A. Lopes
INSTST_NODEOFFLINE = _constants.INSTST_NODEOFFLINE
1515 8a7a197a Jose A. Lopes
INSTST_NODEDOWN = _constants.INSTST_NODEDOWN
1516 8a7a197a Jose A. Lopes
INSTST_WRONGNODE = _constants.INSTST_WRONGNODE
1517 8a7a197a Jose A. Lopes
INSTST_ERRORUP = _constants.INSTST_ERRORUP
1518 8a7a197a Jose A. Lopes
INSTST_ERRORDOWN = _constants.INSTST_ERRORDOWN
1519 8a7a197a Jose A. Lopes
INSTST_ALL = _constants.INSTST_ALL
1520 61a980a9 Michael Hanselmann
1521 9ca8a7c5 Agata Murawska
# Admin states
1522 acf9af53 Jose A. Lopes
ADMINST_UP = _constants.ADMINST_UP
1523 acf9af53 Jose A. Lopes
ADMINST_DOWN = _constants.ADMINST_DOWN
1524 acf9af53 Jose A. Lopes
ADMINST_OFFLINE = _constants.ADMINST_OFFLINE
1525 2b1c5a63 Jose A. Lopes
ADMINST_ALL = _constants.ADMINST_ALL
1526 9ca8a7c5 Agata Murawska
1527 1e28e3b8 Michael Hanselmann
# Node roles
1528 2ff95a6b Jose A. Lopes
NR_REGULAR = _constants.NR_REGULAR
1529 2ff95a6b Jose A. Lopes
NR_MASTER = _constants.NR_MASTER
1530 2ff95a6b Jose A. Lopes
NR_MCANDIDATE = _constants.NR_MCANDIDATE
1531 2ff95a6b Jose A. Lopes
NR_DRAINED = _constants.NR_DRAINED
1532 2ff95a6b Jose A. Lopes
NR_OFFLINE = _constants.NR_OFFLINE
1533 2ff95a6b Jose A. Lopes
NR_ALL = _constants.NR_ALL
1534 1e28e3b8 Michael Hanselmann
1535 b98bf262 Michael Hanselmann
# SSL certificate check constants (in days)
1536 b98bf262 Michael Hanselmann
SSL_CERT_EXPIRATION_WARN = 30
1537 b98bf262 Michael Hanselmann
SSL_CERT_EXPIRATION_ERROR = 7
1538 b98bf262 Michael Hanselmann
1539 d61df03e Iustin Pop
# Allocator framework constants
1540 8a7a197a Jose A. Lopes
IALLOCATOR_VERSION = _constants.IALLOCATOR_VERSION
1541 8a7a197a Jose A. Lopes
IALLOCATOR_DIR_IN = _constants.IALLOCATOR_DIR_IN
1542 8a7a197a Jose A. Lopes
IALLOCATOR_DIR_OUT = _constants.IALLOCATOR_DIR_OUT
1543 8a7a197a Jose A. Lopes
VALID_IALLOCATOR_DIRECTIONS = _constants.VALID_IALLOCATOR_DIRECTIONS
1544 8a7a197a Jose A. Lopes
1545 8a7a197a Jose A. Lopes
IALLOCATOR_MODE_ALLOC = _constants.IALLOCATOR_MODE_ALLOC
1546 8a7a197a Jose A. Lopes
IALLOCATOR_MODE_RELOC = _constants.IALLOCATOR_MODE_RELOC
1547 8a7a197a Jose A. Lopes
IALLOCATOR_MODE_CHG_GROUP = _constants.IALLOCATOR_MODE_CHG_GROUP
1548 8a7a197a Jose A. Lopes
IALLOCATOR_MODE_NODE_EVAC = _constants.IALLOCATOR_MODE_NODE_EVAC
1549 8a7a197a Jose A. Lopes
IALLOCATOR_MODE_MULTI_ALLOC = _constants.IALLOCATOR_MODE_MULTI_ALLOC
1550 8a7a197a Jose A. Lopes
VALID_IALLOCATOR_MODES = _constants.VALID_IALLOCATOR_MODES
1551 8a7a197a Jose A. Lopes
1552 8a7a197a Jose A. Lopes
IALLOCATOR_SEARCH_PATH = _constants.IALLOCATOR_SEARCH_PATH
1553 8a7a197a Jose A. Lopes
DEFAULT_IALLOCATOR_SHORTCUT = _constants.DEFAULT_IALLOCATOR_SHORTCUT
1554 8a7a197a Jose A. Lopes
1555 8a7a197a Jose A. Lopes
IALLOCATOR_NEVAC_PRI = _constants.IALLOCATOR_NEVAC_PRI
1556 8a7a197a Jose A. Lopes
IALLOCATOR_NEVAC_SEC = _constants.IALLOCATOR_NEVAC_SEC
1557 8a7a197a Jose A. Lopes
IALLOCATOR_NEVAC_ALL = _constants.IALLOCATOR_NEVAC_ALL
1558 8a7a197a Jose A. Lopes
IALLOCATOR_NEVAC_MODES = _constants.IALLOCATOR_NEVAC_MODES
1559 60152bbe Michael Hanselmann
1560 cb92e7a1 Michael Hanselmann
# Node evacuation
1561 8a7a197a Jose A. Lopes
NODE_EVAC_PRI = _constants.NODE_EVAC_PRI
1562 8a7a197a Jose A. Lopes
NODE_EVAC_SEC = _constants.NODE_EVAC_SEC
1563 8a7a197a Jose A. Lopes
NODE_EVAC_ALL = _constants.NODE_EVAC_ALL
1564 8a7a197a Jose A. Lopes
NODE_EVAC_MODES = _constants.NODE_EVAC_MODES
1565 cb92e7a1 Michael Hanselmann
1566 f1da30e6 Michael Hanselmann
# Job queue
1567 f1da30e6 Michael Hanselmann
JOB_QUEUE_VERSION = 1
1568 f87b405e Michael Hanselmann
JOB_QUEUE_SIZE_HARD_LIMIT = 5000
1569 fe05a931 Michele Tartara
JOB_QUEUE_FILES_PERMS = 0640
1570 f1da30e6 Michael Hanselmann
1571 bac5ffc3 Oleksiy Mishchenko
JOB_ID_TEMPLATE = r"\d+"
1572 cb66225d Michael Hanselmann
JOB_FILE_RE = re.compile(r"^job-(%s)$" % JOB_ID_TEMPLATE)
1573 bac5ffc3 Oleksiy Mishchenko
1574 5c735209 Iustin Pop
# unchanged job return
1575 5c735209 Iustin Pop
JOB_NOTCHANGED = "nochange"
1576 5c735209 Iustin Pop
1577 5f33b613 Michael Hanselmann
# Job status
1578 8a7a197a Jose A. Lopes
JOB_STATUS_QUEUED = _constants.JOB_STATUS_QUEUED
1579 8a7a197a Jose A. Lopes
JOB_STATUS_WAITING = _constants.JOB_STATUS_WAITING
1580 8a7a197a Jose A. Lopes
JOB_STATUS_CANCELING = _constants.JOB_STATUS_CANCELING
1581 8a7a197a Jose A. Lopes
JOB_STATUS_RUNNING = _constants.JOB_STATUS_RUNNING
1582 8a7a197a Jose A. Lopes
JOB_STATUS_CANCELED = _constants.JOB_STATUS_CANCELED
1583 8a7a197a Jose A. Lopes
JOB_STATUS_SUCCESS = _constants.JOB_STATUS_SUCCESS
1584 8a7a197a Jose A. Lopes
JOB_STATUS_ERROR = _constants.JOB_STATUS_ERROR
1585 8a7a197a Jose A. Lopes
JOBS_PENDING = _constants.JOBS_PENDING
1586 8a7a197a Jose A. Lopes
JOBS_FINALIZED = _constants.JOBS_FINALIZED
1587 8a7a197a Jose A. Lopes
JOB_STATUS_ALL = _constants.JOB_STATUS_ALL
1588 5f33b613 Michael Hanselmann
1589 34327f51 Iustin Pop
# OpCode status
1590 34327f51 Iustin Pop
# not yet finalized
1591 8a7a197a Jose A. Lopes
OP_STATUS_QUEUED = _constants.OP_STATUS_QUEUED
1592 8a7a197a Jose A. Lopes
OP_STATUS_WAITING = _constants.OP_STATUS_WAITING
1593 8a7a197a Jose A. Lopes
OP_STATUS_CANCELING = _constants.OP_STATUS_CANCELING
1594 8a7a197a Jose A. Lopes
OP_STATUS_RUNNING = _constants.OP_STATUS_RUNNING
1595 34327f51 Iustin Pop
# finalized
1596 8a7a197a Jose A. Lopes
OP_STATUS_CANCELED = _constants.OP_STATUS_CANCELED
1597 8a7a197a Jose A. Lopes
OP_STATUS_SUCCESS = _constants.OP_STATUS_SUCCESS
1598 8a7a197a Jose A. Lopes
OP_STATUS_ERROR = _constants.OP_STATUS_ERROR
1599 8a7a197a Jose A. Lopes
OPS_FINALIZED = _constants.OPS_FINALIZED
1600 f1048938 Iustin Pop
1601 e5d8774b Michael Hanselmann
# OpCode priority
1602 8a7a197a Jose A. Lopes
OP_PRIO_LOWEST = _constants.OP_PRIO_LOWEST
1603 8a7a197a Jose A. Lopes
OP_PRIO_HIGHEST = _constants.OP_PRIO_HIGHEST
1604 8a7a197a Jose A. Lopes
OP_PRIO_LOW = _constants.OP_PRIO_LOW
1605 8a7a197a Jose A. Lopes
OP_PRIO_NORMAL = _constants.OP_PRIO_NORMAL
1606 8a7a197a Jose A. Lopes
OP_PRIO_HIGH = _constants.OP_PRIO_HIGH
1607 8a7a197a Jose A. Lopes
OP_PRIO_SUBMIT_VALID = _constants.OP_PRIO_SUBMIT_VALID
1608 8a7a197a Jose A. Lopes
OP_PRIO_DEFAULT = _constants.OP_PRIO_DEFAULT
1609 e5d8774b Michael Hanselmann
1610 0b04b188 Michael Hanselmann
# Lock recalculate mode
1611 0b04b188 Michael Hanselmann
LOCKS_REPLACE = "replace"
1612 0b04b188 Michael Hanselmann
LOCKS_APPEND = "append"
1613 0b04b188 Michael Hanselmann
1614 0b04b188 Michael Hanselmann
# Lock timeout (sum) before we should go into blocking acquire (still
1615 0b04b188 Michael Hanselmann
# can be reset by priority change); computed as max time (10 hours)
1616 0b04b188 Michael Hanselmann
# before we should actually go into blocking acquire given that we
1617 0b04b188 Michael Hanselmann
# start from default priority level; in seconds
1618 0b04b188 Michael Hanselmann
# TODO
1619 0b04b188 Michael Hanselmann
LOCK_ATTEMPTS_TIMEOUT = 10 * 3600 / (OP_PRIO_DEFAULT - OP_PRIO_HIGHEST)
1620 0b04b188 Michael Hanselmann
LOCK_ATTEMPTS_MAXWAIT = 15.0
1621 0b04b188 Michael Hanselmann
LOCK_ATTEMPTS_MINWAIT = 1.0
1622 0b04b188 Michael Hanselmann
1623 f1048938 Iustin Pop
# Execution log types
1624 8a7a197a Jose A. Lopes
ELOG_MESSAGE = _constants.ELOG_MESSAGE
1625 8a7a197a Jose A. Lopes
ELOG_REMOTE_IMPORT = _constants.ELOG_REMOTE_IMPORT
1626 8a7a197a Jose A. Lopes
ELOG_JQUEUE_TEST = _constants.ELOG_JQUEUE_TEST
1627 e58f87a9 Michael Hanselmann
1628 19ddc57a René Nussbaumer
# /etc/hosts modification
1629 19ddc57a René Nussbaumer
ETC_HOSTS_ADD = "add"
1630 19ddc57a René Nussbaumer
ETC_HOSTS_REMOVE = "remove"
1631 19ddc57a René Nussbaumer
1632 e58f87a9 Michael Hanselmann
# Job queue test
1633 e58f87a9 Michael Hanselmann
JQT_MSGPREFIX = "TESTMSG="
1634 e58f87a9 Michael Hanselmann
JQT_EXPANDNAMES = "expandnames"
1635 e58f87a9 Michael Hanselmann
JQT_EXEC = "exec"
1636 e58f87a9 Michael Hanselmann
JQT_LOGMSG = "logmsg"
1637 f99010b2 Michael Hanselmann
JQT_STARTMSG = "startmsg"
1638 b8028dcf Michael Hanselmann
JQT_ALL = compat.UniqueFrozenset([
1639 e58f87a9 Michael Hanselmann
  JQT_EXPANDNAMES,
1640 e58f87a9 Michael Hanselmann
  JQT_EXEC,
1641 e58f87a9 Michael Hanselmann
  JQT_LOGMSG,
1642 f99010b2 Michael Hanselmann
  JQT_STARTMSG,
1643 e58f87a9 Michael Hanselmann
  ])
1644 d4104181 Iustin Pop
1645 4a917de6 Michael Hanselmann
# Query resources
1646 dff5f600 Michael Hanselmann
QR_CLUSTER = "cluster"
1647 4a917de6 Michael Hanselmann
QR_INSTANCE = "instance"
1648 4a917de6 Michael Hanselmann
QR_NODE = "node"
1649 24d16f76 Michael Hanselmann
QR_LOCK = "lock"
1650 e070c663 Adeodato Simo
QR_GROUP = "group"
1651 be3a4b14 Michael Hanselmann
QR_OS = "os"
1652 9665bb3a Michael Hanselmann
QR_JOB = "job"
1653 0fdf247d Michael Hanselmann
QR_EXPORT = "export"
1654 eaa4c57c Dimitris Aragiorgis
QR_NETWORK = "network"
1655 b954f097 Constantinos Venetsanopoulos
QR_EXTSTORAGE = "extstorage"
1656 4a917de6 Michael Hanselmann
1657 4a917de6 Michael Hanselmann
#: List of resources which can be queried using L{opcodes.OpQuery}
1658 b8028dcf Michael Hanselmann
QR_VIA_OP = compat.UniqueFrozenset([
1659 dff5f600 Michael Hanselmann
  QR_CLUSTER,
1660 0fdf247d Michael Hanselmann
  QR_INSTANCE,
1661 0fdf247d Michael Hanselmann
  QR_NODE,
1662 0fdf247d Michael Hanselmann
  QR_GROUP,
1663 0fdf247d Michael Hanselmann
  QR_OS,
1664 0fdf247d Michael Hanselmann
  QR_EXPORT,
1665 eaa4c57c Dimitris Aragiorgis
  QR_NETWORK,
1666 b954f097 Constantinos Venetsanopoulos
  QR_EXTSTORAGE,
1667 0fdf247d Michael Hanselmann
  ])
1668 4a917de6 Michael Hanselmann
1669 3d5ebbf0 Stephen Shirley
#: List of resources which can be queried using Local UniX Interface
1670 abd66bf8 Michael Hanselmann
QR_VIA_LUXI = QR_VIA_OP.union([
1671 24d16f76 Michael Hanselmann
  QR_LOCK,
1672 9665bb3a Michael Hanselmann
  QR_JOB,
1673 28b71a76 Michael Hanselmann
  ])
1674 28b71a76 Michael Hanselmann
1675 abd66bf8 Michael Hanselmann
#: List of resources which can be queried using RAPI
1676 abd66bf8 Michael Hanselmann
QR_VIA_RAPI = QR_VIA_LUXI
1677 abd66bf8 Michael Hanselmann
1678 4a917de6 Michael Hanselmann
# Query field types
1679 4a917de6 Michael Hanselmann
QFT_UNKNOWN = "unknown"
1680 4a917de6 Michael Hanselmann
QFT_TEXT = "text"
1681 4a917de6 Michael Hanselmann
QFT_BOOL = "bool"
1682 4a917de6 Michael Hanselmann
QFT_NUMBER = "number"
1683 4a917de6 Michael Hanselmann
QFT_UNIT = "unit"
1684 4a917de6 Michael Hanselmann
QFT_TIMESTAMP = "timestamp"
1685 4a917de6 Michael Hanselmann
QFT_OTHER = "other"
1686 4a917de6 Michael Hanselmann
1687 4a917de6 Michael Hanselmann
#: All query field types
1688 b8028dcf Michael Hanselmann
QFT_ALL = compat.UniqueFrozenset([
1689 4a917de6 Michael Hanselmann
  QFT_UNKNOWN,
1690 4a917de6 Michael Hanselmann
  QFT_TEXT,
1691 4a917de6 Michael Hanselmann
  QFT_BOOL,
1692 4a917de6 Michael Hanselmann
  QFT_NUMBER,
1693 4a917de6 Michael Hanselmann
  QFT_UNIT,
1694 4a917de6 Michael Hanselmann
  QFT_TIMESTAMP,
1695 4a917de6 Michael Hanselmann
  QFT_OTHER,
1696 4a917de6 Michael Hanselmann
  ])
1697 4a917de6 Michael Hanselmann
1698 a6070ef7 Michael Hanselmann
# Query result field status (don't change or reuse values as they're used by
1699 a6070ef7 Michael Hanselmann
# clients)
1700 4a917de6 Michael Hanselmann
#: Normal field status
1701 cfb084ae René Nussbaumer
RS_NORMAL = 0
1702 4a917de6 Michael Hanselmann
#: Unknown field
1703 cfb084ae René Nussbaumer
RS_UNKNOWN = 1
1704 cfb084ae René Nussbaumer
#: No data (e.g. RPC error), can be used instead of L{RS_OFFLINE}
1705 cfb084ae René Nussbaumer
RS_NODATA = 2
1706 dcb9946c Iustin Pop
#: Value unavailable/unsupported for item; if this field is supported
1707 e18c6c47 Iustin Pop
#: but we cannot get the data for the moment, RS_NODATA or
1708 e18c6c47 Iustin Pop
#: RS_OFFLINE should be used
1709 cfb084ae René Nussbaumer
RS_UNAVAIL = 3
1710 a6070ef7 Michael Hanselmann
#: Resource marked offline
1711 cfb084ae René Nussbaumer
RS_OFFLINE = 4
1712 cfb084ae René Nussbaumer
1713 b8028dcf Michael Hanselmann
RS_ALL = compat.UniqueFrozenset([
1714 cfb084ae René Nussbaumer
  RS_NORMAL,
1715 cfb084ae René Nussbaumer
  RS_UNKNOWN,
1716 cfb084ae René Nussbaumer
  RS_NODATA,
1717 cfb084ae René Nussbaumer
  RS_UNAVAIL,
1718 cfb084ae René Nussbaumer
  RS_OFFLINE,
1719 ee3aedff Michael Hanselmann
  ])
1720 ee3aedff Michael Hanselmann
1721 f0b1bafe Iustin Pop
#: Dictionary with special field cases and their verbose/terse formatting
1722 f0b1bafe Iustin Pop
RSS_DESCRIPTION = {
1723 f0b1bafe Iustin Pop
  RS_UNKNOWN: ("(unknown)", "??"),
1724 e687ec01 Michael Hanselmann
  RS_NODATA: ("(nodata)", "?"),
1725 f0b1bafe Iustin Pop
  RS_OFFLINE: ("(offline)", "*"),
1726 f0b1bafe Iustin Pop
  RS_UNAVAIL: ("(unavail)", "-"),
1727 f0b1bafe Iustin Pop
  }
1728 f0b1bafe Iustin Pop
1729 c5e489f7 Iustin Pop
# max dynamic devices
1730 24991749 Iustin Pop
MAX_NICS = 8
1731 24991749 Iustin Pop
MAX_DISKS = 16
1732 24991749 Iustin Pop
1733 c09254c2 Iustin Pop
# SSCONF file prefix
1734 c09254c2 Iustin Pop
SSCONF_FILEPREFIX = "ssconf_"
1735 93384844 Iustin Pop
# SSCONF keys
1736 93384844 Iustin Pop
SS_CLUSTER_NAME = "cluster_name"
1737 5d60b3bd Iustin Pop
SS_CLUSTER_TAGS = "cluster_tags"
1738 93384844 Iustin Pop
SS_FILE_STORAGE_DIR = "file_storage_dir"
1739 4b97f902 Apollon Oikonomopoulos
SS_SHARED_FILE_STORAGE_DIR = "shared_file_storage_dir"
1740 f56618e0 Iustin Pop
SS_MASTER_CANDIDATES = "master_candidates"
1741 8113a52e Luca Bigliardi
SS_MASTER_CANDIDATES_IPS = "master_candidates_ips"
1742 93384844 Iustin Pop
SS_MASTER_IP = "master_ip"
1743 93384844 Iustin Pop
SS_MASTER_NETDEV = "master_netdev"
1744 5a8648eb Andrea Spadaccini
SS_MASTER_NETMASK = "master_netmask"
1745 93384844 Iustin Pop
SS_MASTER_NODE = "master_node"
1746 93384844 Iustin Pop
SS_NODE_LIST = "node_list"
1747 f9780ccd Luca Bigliardi
SS_NODE_PRIMARY_IPS = "node_primary_ips"
1748 f9780ccd Luca Bigliardi
SS_NODE_SECONDARY_IPS = "node_secondary_ips"
1749 a3316e4a Iustin Pop
SS_OFFLINE_NODES = "offline_nodes"
1750 81a49123 Iustin Pop
SS_ONLINE_NODES = "online_nodes"
1751 868a98ca Manuel Franceschini
SS_PRIMARY_IP_FAMILY = "primary_ip_family"
1752 81a49123 Iustin Pop
SS_INSTANCE_LIST = "instance_list"
1753 8a113c7a Iustin Pop
SS_RELEASE_VERSION = "release_version"
1754 4f7a6a10 Iustin Pop
SS_HYPERVISOR_LIST = "hypervisor_list"
1755 5c465a95 Iustin Pop
SS_MAINTAIN_NODE_HEALTH = "maintain_node_health"
1756 0fbae49a Balazs Lecz
SS_UID_POOL = "uid_pool"
1757 6f076453 Guido Trotter
SS_NODEGROUPS = "nodegroups"
1758 eaa4c57c Dimitris Aragiorgis
SS_NETWORKS = "networks"
1759 93384844 Iustin Pop
1760 def6577f Helga Velroyen
# This is not a complete SSCONF key, but the prefix for the hypervisor keys
1761 def6577f Helga Velroyen
SS_HVPARAMS_PREF = "hvparams_"
1762 def6577f Helga Velroyen
1763 def6577f Helga Velroyen
# Hvparams keys:
1764 def6577f Helga Velroyen
SS_HVPARAMS_XEN_PVM = SS_HVPARAMS_PREF + HT_XEN_PVM
1765 def6577f Helga Velroyen
SS_HVPARAMS_XEN_FAKE = SS_HVPARAMS_PREF + HT_FAKE
1766 def6577f Helga Velroyen
SS_HVPARAMS_XEN_HVM = SS_HVPARAMS_PREF + HT_XEN_HVM
1767 def6577f Helga Velroyen
SS_HVPARAMS_XEN_KVM = SS_HVPARAMS_PREF + HT_KVM
1768 def6577f Helga Velroyen
SS_HVPARAMS_XEN_CHROOT = SS_HVPARAMS_PREF + HT_CHROOT
1769 def6577f Helga Velroyen
SS_HVPARAMS_XEN_LXC = SS_HVPARAMS_PREF + HT_LXC
1770 def6577f Helga Velroyen
1771 def6577f Helga Velroyen
VALID_SS_HVPARAMS_KEYS = compat.UniqueFrozenset([
1772 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_PVM,
1773 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_FAKE,
1774 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_HVM,
1775 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_KVM,
1776 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_CHROOT,
1777 def6577f Helga Velroyen
  SS_HVPARAMS_XEN_LXC,
1778 def6577f Helga Velroyen
  ])
1779 def6577f Helga Velroyen
1780 cd57bab6 Michael Hanselmann
SS_FILE_PERMS = 0444
1781 cd57bab6 Michael Hanselmann
1782 7888a614 Alexander Schreiber
# cluster wide default parameters
1783 7888a614 Alexander Schreiber
DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM
1784 7888a614 Alexander Schreiber
1785 7888a614 Alexander Schreiber
HVC_DEFAULTS = {
1786 bd0ff7c2 Iustin Pop
  HT_XEN_PVM: {
1787 2f2dbb4b Jun Futagawa
    HV_USE_BOOTLOADER: False,
1788 2f2dbb4b Jun Futagawa
    HV_BOOTLOADER_PATH: XEN_BOOTLOADER,
1789 d0c8c01d Iustin Pop
    HV_BOOTLOADER_ARGS: "",
1790 3c4afa2e Iustin Pop
    HV_KERNEL_PATH: XEN_KERNEL,
1791 d0c8c01d Iustin Pop
    HV_INITRD_PATH: "",
1792 ae8de7e3 Guido Trotter
    HV_ROOT_PATH: "/dev/xvda1",
1793 d0c8c01d Iustin Pop
    HV_KERNEL_ARGS: "ro",
1794 78411c60 Iustin Pop
    HV_MIGRATION_PORT: 8002,
1795 783a6c0b Iustin Pop
    HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1796 525011bc Maciej Bliziński
    HV_BLOCKDEV_PREFIX: "sd",
1797 990ade2d Stephen Shirley
    HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1798 7e7629c6 Tsachy Shacham
    HV_CPU_MASK: CPU_PINNING_ALL,
1799 8bd977e9 Sébastien Bocahu
    HV_CPU_CAP: 0,
1800 8bd977e9 Sébastien Bocahu
    HV_CPU_WEIGHT: 256,
1801 397b7844 Dimitris Aragiorgis
    HV_VIF_SCRIPT: "",
1802 740394bc Helga Velroyen
    HV_XEN_CMD: XEN_CMD_XM,
1803 295ed29b Santi Raffa
    HV_XEN_CPUID: "",
1804 bd0ff7c2 Iustin Pop
    },
1805 bd0ff7c2 Iustin Pop
  HT_XEN_HVM: {
1806 bd0ff7c2 Iustin Pop
    HV_BOOT_ORDER: "cd",
1807 d0c8c01d Iustin Pop
    HV_CDROM_IMAGE_PATH: "",
1808 d08f6067 Guido Trotter
    HV_NIC_TYPE: HT_NIC_RTL8139,
1809 43440815 Guido Trotter
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1810 9769bb78 Manuel Franceschini
    HV_VNC_BIND_ADDRESS: IP4_ADDRESS_ANY,
1811 9f2265bc Michael Hanselmann
    HV_VNC_PASSWORD_FILE: pathutils.VNC_PASSWORD_FILE,
1812 bd0ff7c2 Iustin Pop
    HV_ACPI: True,
1813 bd0ff7c2 Iustin Pop
    HV_PAE: True,
1814 e2ee1cea Iustin Pop
    HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
1815 09ea8710 Iustin Pop
    HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
1816 78411c60 Iustin Pop
    HV_MIGRATION_PORT: 8002,
1817 783a6c0b Iustin Pop
    HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
1818 6b970cef Jun Futagawa
    HV_USE_LOCALTIME: False,
1819 525011bc Maciej Bliziński
    HV_BLOCKDEV_PREFIX: "hd",
1820 87f0aa48 Jack
    HV_PASSTHROUGH: "",
1821 990ade2d Stephen Shirley
    HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1822 7e7629c6 Tsachy Shacham
    HV_CPU_MASK: CPU_PINNING_ALL,
1823 8bd977e9 Sébastien Bocahu
    HV_CPU_CAP: 0,
1824 8bd977e9 Sébastien Bocahu
    HV_CPU_WEIGHT: 256,
1825 05440845 Helga Velroyen
    HV_VIF_TYPE: HT_HVM_VIF_IOEMU,
1826 397b7844 Dimitris Aragiorgis
    HV_VIF_SCRIPT: "",
1827 ffc27116 Thomas Thrainer
    HV_VIRIDIAN: False,
1828 740394bc Helga Velroyen
    HV_XEN_CMD: XEN_CMD_XM,
1829 295ed29b Santi Raffa
    HV_XEN_CPUID: "",
1830 bd0ff7c2 Iustin Pop
    },
1831 bd0ff7c2 Iustin Pop
  HT_KVM: {
1832 4b9638dc Guido Trotter
    HV_KVM_PATH: KVM_PATH,
1833 b8203e1e Iustin Pop
    HV_KERNEL_PATH: KVM_KERNEL,
1834 d0c8c01d Iustin Pop
    HV_INITRD_PATH: "",
1835 d0c8c01d Iustin Pop
    HV_KERNEL_ARGS: "ro",
1836 d0c8c01d Iustin Pop
    HV_ROOT_PATH: "/dev/vda1",
1837 bd0ff7c2 Iustin Pop
    HV_ACPI: True,
1838 bd0ff7c2 Iustin Pop
    HV_SERIAL_CONSOLE: True,
1839 14fd6c81 Guido Trotter
    HV_SERIAL_SPEED: 38400,
1840 d0c8c01d Iustin Pop
    HV_VNC_BIND_ADDRESS: "",
1841 8b2d1013 Guido Trotter
    HV_VNC_TLS: False,
1842 d0c8c01d Iustin Pop
    HV_VNC_X509: "",
1843 8b2d1013 Guido Trotter
    HV_VNC_X509_VERIFY: False,
1844 d0c8c01d Iustin Pop
    HV_VNC_PASSWORD_FILE: "",
1845 b1cb62bd Andrea Spadaccini
    HV_KVM_SPICE_BIND: "",
1846 b1cb62bd Andrea Spadaccini
    HV_KVM_SPICE_IP_VERSION: IFACE_NO_IP_VERSION_SPECIFIED,
1847 b451c4c7 Andrea Spadaccini
    HV_KVM_SPICE_PASSWORD_FILE: "",
1848 ea064d24 Andrea Spadaccini
    HV_KVM_SPICE_LOSSLESS_IMG_COMPR: "",
1849 ea064d24 Andrea Spadaccini
    HV_KVM_SPICE_JPEG_IMG_COMPR: "",
1850 ea064d24 Andrea Spadaccini
    HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: "",
1851 ea064d24 Andrea Spadaccini
    HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: "",
1852 ea064d24 Andrea Spadaccini
    HV_KVM_SPICE_AUDIO_COMPR: True,
1853 bfe86c76 Andrea Spadaccini
    HV_KVM_SPICE_USE_TLS: False,
1854 3e40b587 Andrea Spadaccini
    HV_KVM_SPICE_TLS_CIPHERS: OPENSSL_CIPHERS,
1855 3e40b587 Andrea Spadaccini
    HV_KVM_SPICE_USE_VDAGENT: True,
1856 d0c8c01d Iustin Pop
    HV_KVM_FLOPPY_IMAGE_PATH: "",
1857 d0c8c01d Iustin Pop
    HV_CDROM_IMAGE_PATH: "",
1858 d0c8c01d Iustin Pop
    HV_KVM_CDROM2_IMAGE_PATH: "",
1859 835528af Iustin Pop
    HV_BOOT_ORDER: HT_BO_DISK,
1860 43440815 Guido Trotter
    HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
1861 43440815 Guido Trotter
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1862 d0c8c01d Iustin Pop
    HV_KVM_CDROM_DISK_TYPE: "",
1863 d0c8c01d Iustin Pop
    HV_USB_MOUSE: "",
1864 4f580fef Sébastien Bocahu
    HV_KEYMAP: "",
1865 3c075436 Iustin Pop
    HV_MIGRATION_PORT: 8102,
1866 e43d4f9f Apollon Oikonomopoulos
    HV_MIGRATION_BANDWIDTH: 32, # MiB/s
1867 e43d4f9f Apollon Oikonomopoulos
    HV_MIGRATION_DOWNTIME: 30,  # ms
1868 783a6c0b Iustin Pop
    HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1869 6b970cef Jun Futagawa
    HV_USE_LOCALTIME: False,
1870 ea0f3d7a Iustin Pop
    HV_DISK_CACHE: HT_CACHE_DEFAULT,
1871 d19d94db Guido Trotter
    HV_SECURITY_MODEL: HT_SM_NONE,
1872 d0c8c01d Iustin Pop
    HV_SECURITY_DOMAIN: "",
1873 7ba594c0 Guido Trotter
    HV_KVM_FLAG: "",
1874 fbe27e2b Guido Trotter
    HV_VHOST_NET: False,
1875 84c08e4e Balazs Lecz
    HV_KVM_USE_CHROOT: False,
1876 4f958b0b Miguel Di Ciurcio Filho
    HV_MEM_PATH: "",
1877 990ade2d Stephen Shirley
    HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1878 7e7629c6 Tsachy Shacham
    HV_CPU_MASK: CPU_PINNING_ALL,
1879 7cb42171 Nikita Staroverov
    HV_CPU_TYPE: "",
1880 4888a609 Guido Trotter
    HV_CPU_CORES: 0,
1881 4888a609 Guido Trotter
    HV_CPU_THREADS: 0,
1882 4888a609 Guido Trotter
    HV_CPU_SOCKETS: 0,
1883 2fddb144 Guido Trotter
    HV_SOUNDHW: "",
1884 156681c1 Guido Trotter
    HV_USB_DEVICES: "",
1885 7589346f Guido Trotter
    HV_VGA: "",
1886 e6f24d89 Guido Trotter
    HV_KVM_EXTRA: "",
1887 4ab75599 Dimitris Aragiorgis
    HV_KVM_MACHINE_VERSION: "",
1888 8a534fbe Stratos Psomdakis
    HV_VNET_HDR: True,
1889 bd0ff7c2 Iustin Pop
    },
1890 d76880d8 Thomas Thrainer
  HT_FAKE: {
1891 d76880d8 Thomas Thrainer
    HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1892 d76880d8 Thomas Thrainer
  },
1893 48297fa2 Iustin Pop
  HT_CHROOT: {
1894 48297fa2 Iustin Pop
    HV_INIT_SCRIPT: "/ganeti-chroot",
1895 48297fa2 Iustin Pop
    },
1896 4b5e40a5 Iustin Pop
  HT_LXC: {
1897 e3ed5316 Balazs Lecz
    HV_CPU_MASK: "",
1898 4b5e40a5 Iustin Pop
    },
1899 bd0ff7c2 Iustin Pop
  }
1900 7888a614 Alexander Schreiber
1901 b8028dcf Michael Hanselmann
HVC_GLOBALS = compat.UniqueFrozenset([
1902 7736a5f2 Iustin Pop
  HV_MIGRATION_PORT,
1903 e43d4f9f Apollon Oikonomopoulos
  HV_MIGRATION_BANDWIDTH,
1904 783a6c0b Iustin Pop
  HV_MIGRATION_MODE,
1905 3361ab37 Helga Velroyen
  HV_XEN_CMD,
1906 7736a5f2 Iustin Pop
  ])
1907 7736a5f2 Iustin Pop
1908 7888a614 Alexander Schreiber
BEC_DEFAULTS = {
1909 8c72ab2b Guido Trotter
  BE_MINMEM: 128,
1910 8c72ab2b Guido Trotter
  BE_MAXMEM: 128,
1911 bd0ff7c2 Iustin Pop
  BE_VCPUS: 1,
1912 bd0ff7c2 Iustin Pop
  BE_AUTO_BALANCE: True,
1913 11dc66f3 Bernardo Dal Seno
  BE_ALWAYS_FAILOVER: False,
1914 34700f5b René Nussbaumer
  BE_SPINDLE_USE: 1,
1915 bd0ff7c2 Iustin Pop
  }
1916 c3e618cc Guido Trotter
1917 095e71aa René Nussbaumer
NDC_DEFAULTS = {
1918 1df4d430 Iustin Pop
  ND_OOB_PROGRAM: "",
1919 432e8e2f Iustin Pop
  ND_SPINDLE_COUNT: 1,
1920 0ea11dcb Bernardo Dal Seno
  ND_EXCLUSIVE_STORAGE: False,
1921 807d8853 Sebastian Gebhard
  ND_OVS: False,
1922 807d8853 Sebastian Gebhard
  ND_OVS_NAME: DEFAULT_OVS,
1923 807d8853 Sebastian Gebhard
  ND_OVS_LINK: ""
1924 095e71aa René Nussbaumer
  }
1925 095e71aa René Nussbaumer
1926 250a9404 Bernardo Dal Seno
NDC_GLOBALS = compat.UniqueFrozenset([
1927 250a9404 Bernardo Dal Seno
  ND_EXCLUSIVE_STORAGE,
1928 250a9404 Bernardo Dal Seno
  ])
1929 250a9404 Bernardo Dal Seno
1930 bc5d0215 Andrea Spadaccini
DISK_LD_DEFAULTS = {
1931 cd3b4ff4 Helga Velroyen
  DT_DRBD8: {
1932 ac00bf1b Andrea Spadaccini
    LDP_RESYNC_RATE: CLASSIC_DRBD_SYNC_SPEED,
1933 e0d672fa Jose A. Lopes
    LDP_BARRIERS: _constants.DRBD_BARRIERS,
1934 e0d672fa Jose A. Lopes
    LDP_NO_META_FLUSH: _constants.DRBD_NO_META_FLUSH,
1935 8002e46b Andrea Spadaccini
    LDP_DEFAULT_METAVG: DEFAULT_VG,
1936 ad1dd4c7 Andrea Spadaccini
    LDP_DISK_CUSTOM: "",
1937 ad1dd4c7 Andrea Spadaccini
    LDP_NET_CUSTOM: "",
1938 65fc2388 Thomas Thrainer
    LDP_PROTOCOL: DRBD_DEFAULT_NET_PROTOCOL,
1939 f2f57b6e Andrea Spadaccini
    LDP_DYNAMIC_RESYNC: False,
1940 8584e922 Andrea Spadaccini
1941 0c9d7319 Iustin Pop
    # The default values for the DRBD dynamic resync speed algorithm
1942 0c9d7319 Iustin Pop
    # are taken from the drbsetup 8.3.11 man page, except for
1943 0c9d7319 Iustin Pop
    # c-plan-ahead (that we don't need to set to 0, because we have a
1944 0c9d7319 Iustin Pop
    # separate option to enable it) and for c-max-rate, that we cap to
1945 0c9d7319 Iustin Pop
    # the default value for the static resync rate.
1946 8584e922 Andrea Spadaccini
    LDP_PLAN_AHEAD: 20, # ds
1947 8584e922 Andrea Spadaccini
    LDP_FILL_TARGET: 0, # sectors
1948 8584e922 Andrea Spadaccini
    LDP_DELAY_TARGET: 1, # ds
1949 8584e922 Andrea Spadaccini
    LDP_MAX_RATE: CLASSIC_DRBD_SYNC_SPEED, # KiB/s
1950 8584e922 Andrea Spadaccini
    LDP_MIN_RATE: 4 * 1024, # KiB/s
1951 bc5d0215 Andrea Spadaccini
    },
1952 cd3b4ff4 Helga Velroyen
  DT_PLAIN: {
1953 e0d672fa Jose A. Lopes
    LDP_STRIPES: _constants.LVM_STRIPECOUNT
1954 bc5d0215 Andrea Spadaccini
    },
1955 cd3b4ff4 Helga Velroyen
  DT_FILE: {},
1956 cd3b4ff4 Helga Velroyen
  DT_SHARED_FILE: {},
1957 cd3b4ff4 Helga Velroyen
  DT_BLOCK: {},
1958 cd3b4ff4 Helga Velroyen
  DT_RBD: {
1959 7181fba0 Constantinos Venetsanopoulos
    LDP_POOL: "rbd"
1960 7181fba0 Constantinos Venetsanopoulos
    },
1961 cd3b4ff4 Helga Velroyen
  DT_EXT: {},
1962 bc5d0215 Andrea Spadaccini
  }
1963 bc5d0215 Andrea Spadaccini
1964 8584e922 Andrea Spadaccini
# readability shortcuts
1965 6da90c0a Helga Velroyen
_LV_DEFAULTS = DISK_LD_DEFAULTS[DT_PLAIN]
1966 6da90c0a Helga Velroyen
_DRBD_DEFAULTS = DISK_LD_DEFAULTS[DT_DRBD8]
1967 8584e922 Andrea Spadaccini
1968 bc5d0215 Andrea Spadaccini
DISK_DT_DEFAULTS = {
1969 bc5d0215 Andrea Spadaccini
  DT_PLAIN: {
1970 6da90c0a Helga Velroyen
    LV_STRIPES: DISK_LD_DEFAULTS[DT_PLAIN][LDP_STRIPES],
1971 bc5d0215 Andrea Spadaccini
    },
1972 bc5d0215 Andrea Spadaccini
  DT_DRBD8: {
1973 8584e922 Andrea Spadaccini
    DRBD_RESYNC_RATE: _DRBD_DEFAULTS[LDP_RESYNC_RATE],
1974 8584e922 Andrea Spadaccini
    DRBD_DATA_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1975 8584e922 Andrea Spadaccini
    DRBD_META_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1976 8584e922 Andrea Spadaccini
    DRBD_DISK_BARRIERS: _DRBD_DEFAULTS[LDP_BARRIERS],
1977 8584e922 Andrea Spadaccini
    DRBD_META_BARRIERS: _DRBD_DEFAULTS[LDP_NO_META_FLUSH],
1978 8584e922 Andrea Spadaccini
    DRBD_DEFAULT_METAVG: _DRBD_DEFAULTS[LDP_DEFAULT_METAVG],
1979 8584e922 Andrea Spadaccini
    DRBD_DISK_CUSTOM: _DRBD_DEFAULTS[LDP_DISK_CUSTOM],
1980 8584e922 Andrea Spadaccini
    DRBD_NET_CUSTOM: _DRBD_DEFAULTS[LDP_NET_CUSTOM],
1981 65fc2388 Thomas Thrainer
    DRBD_PROTOCOL: _DRBD_DEFAULTS[LDP_PROTOCOL],
1982 8584e922 Andrea Spadaccini
    DRBD_DYNAMIC_RESYNC: _DRBD_DEFAULTS[LDP_DYNAMIC_RESYNC],
1983 8584e922 Andrea Spadaccini
    DRBD_PLAN_AHEAD: _DRBD_DEFAULTS[LDP_PLAN_AHEAD],
1984 8584e922 Andrea Spadaccini
    DRBD_FILL_TARGET: _DRBD_DEFAULTS[LDP_FILL_TARGET],
1985 8584e922 Andrea Spadaccini
    DRBD_DELAY_TARGET: _DRBD_DEFAULTS[LDP_DELAY_TARGET],
1986 8584e922 Andrea Spadaccini
    DRBD_MAX_RATE: _DRBD_DEFAULTS[LDP_MAX_RATE],
1987 8584e922 Andrea Spadaccini
    DRBD_MIN_RATE: _DRBD_DEFAULTS[LDP_MIN_RATE],
1988 bc5d0215 Andrea Spadaccini
    },
1989 5ae4945a Iustin Pop
  DT_DISKLESS: {},
1990 5ae4945a Iustin Pop
  DT_FILE: {},
1991 5ae4945a Iustin Pop
  DT_SHARED_FILE: {},
1992 5ae4945a Iustin Pop
  DT_BLOCK: {},
1993 7181fba0 Constantinos Venetsanopoulos
  DT_RBD: {
1994 6da90c0a Helga Velroyen
    RBD_POOL: DISK_LD_DEFAULTS[DT_RBD][LDP_POOL]
1995 7181fba0 Constantinos Venetsanopoulos
    },
1996 376631d1 Constantinos Venetsanopoulos
  DT_EXT: {},
1997 bc5d0215 Andrea Spadaccini
  }
1998 bc5d0215 Andrea Spadaccini
1999 8584e922 Andrea Spadaccini
# we don't want to export the shortcuts
2000 8584e922 Andrea Spadaccini
del _LV_DEFAULTS, _DRBD_DEFAULTS
2001 8584e922 Andrea Spadaccini
2002 ac061be9 Guido Trotter
NICC_DEFAULTS = {
2003 ac061be9 Guido Trotter
  NIC_MODE: NIC_MODE_BRIDGED,
2004 ac061be9 Guido Trotter
  NIC_LINK: DEFAULT_BRIDGE,
2005 b17dd379 Michele Tartara
  NIC_VLAN: VALUE_HS_NOTHING,
2006 ac061be9 Guido Trotter
  }
2007 ac061be9 Guido Trotter
2008 a194dc28 Iustin Pop
# All of the following values are quite arbitrarily - there are no
2009 a194dc28 Iustin Pop
# "good" defaults, these must be customised per-site
2010 da5f09ef Bernardo Dal Seno
ISPECS_MINMAX_DEFAULTS = {
2011 4f725341 Agata Murawska
  ISPECS_MIN: {
2012 4f725341 Agata Murawska
    ISPEC_MEM_SIZE: 128,
2013 4f725341 Agata Murawska
    ISPEC_CPU_COUNT: 1,
2014 4f725341 Agata Murawska
    ISPEC_DISK_COUNT: 1,
2015 4f725341 Agata Murawska
    ISPEC_DISK_SIZE: 1024,
2016 4f725341 Agata Murawska
    ISPEC_NIC_COUNT: 1,
2017 553cb5f7 René Nussbaumer
    ISPEC_SPINDLE_USE: 1,
2018 918eb80b Agata Murawska
    },
2019 4f725341 Agata Murawska
  ISPECS_MAX: {
2020 b32f3c0c Iustin Pop
    ISPEC_MEM_SIZE: 32768,
2021 b32f3c0c Iustin Pop
    ISPEC_CPU_COUNT: 8,
2022 b32f3c0c Iustin Pop
    ISPEC_DISK_COUNT: MAX_DISKS,
2023 b32f3c0c Iustin Pop
    ISPEC_DISK_SIZE: 1024 * 1024,
2024 b32f3c0c Iustin Pop
    ISPEC_NIC_COUNT: MAX_NICS,
2025 553cb5f7 René Nussbaumer
    ISPEC_SPINDLE_USE: 12,
2026 918eb80b Agata Murawska
    },
2027 da5f09ef Bernardo Dal Seno
  }
2028 da5f09ef Bernardo Dal Seno
IPOLICY_DEFAULTS = {
2029 41044e04 Bernardo Dal Seno
  ISPECS_MINMAX: [ISPECS_MINMAX_DEFAULTS],
2030 4f725341 Agata Murawska
  ISPECS_STD: {
2031 4f725341 Agata Murawska
    ISPEC_MEM_SIZE: 128,
2032 4f725341 Agata Murawska
    ISPEC_CPU_COUNT: 1,
2033 4f725341 Agata Murawska
    ISPEC_DISK_COUNT: 1,
2034 4f725341 Agata Murawska
    ISPEC_DISK_SIZE: 1024,
2035 4f725341 Agata Murawska
    ISPEC_NIC_COUNT: 1,
2036 553cb5f7 René Nussbaumer
    ISPEC_SPINDLE_USE: 1,
2037 2cc673a3 Iustin Pop
    },
2038 e38bc4eb Bernardo Dal Seno
  IPOLICY_DTS: list(DISK_TEMPLATES),
2039 ff6c5e55 Iustin Pop
  IPOLICY_VCPU_RATIO: 4.0,
2040 a194dc28 Iustin Pop
  IPOLICY_SPINDLE_RATIO: 32.0,
2041 918eb80b Agata Murawska
  }
2042 918eb80b Agata Murawska
2043 c3e618cc Guido Trotter
MASTER_POOL_SIZE_DEFAULT = 10
2044 ea1518af Guido Trotter
2045 63c73073 Bernardo Dal Seno
# Exclusive storage:
2046 63c73073 Bernardo Dal Seno
# Error margin used to compare physical disks
2047 63c73073 Bernardo Dal Seno
PART_MARGIN = .01
2048 63c73073 Bernardo Dal Seno
# Space reserved when creating instance disks
2049 63c73073 Bernardo Dal Seno
PART_RESERVED = .02
2050 63c73073 Bernardo Dal Seno
2051 ea1518af Guido Trotter
CONFD_PROTOCOL_VERSION = 1
2052 ea1518af Guido Trotter
2053 09444532 Guido Trotter
CONFD_REQ_PING = 0
2054 ea1518af Guido Trotter
CONFD_REQ_NODE_ROLE_BYNAME = 1
2055 ea1518af Guido Trotter
CONFD_REQ_NODE_PIP_BY_INSTANCE_IP = 2
2056 48166551 Guido Trotter
CONFD_REQ_CLUSTER_MASTER = 3
2057 efbb4fd2 Luca Bigliardi
CONFD_REQ_NODE_PIP_LIST = 4
2058 efbb4fd2 Luca Bigliardi
CONFD_REQ_MC_PIP_LIST = 5
2059 d01ae714 Luca Bigliardi
CONFD_REQ_INSTANCES_IPS_LIST = 6
2060 792f8e55 Iustin Pop
CONFD_REQ_NODE_DRBD = 7
2061 332a83ca Michele Tartara
CONFD_REQ_NODE_INSTANCES = 8
2062 ea1518af Guido Trotter
2063 19351457 Guido Trotter
# Confd request query fields. These are used to narrow down queries.
2064 19351457 Guido Trotter
# These must be strings rather than integers, because json-encoding
2065 19351457 Guido Trotter
# converts them to strings anyway, as they're used as dict-keys.
2066 19351457 Guido Trotter
CONFD_REQQ_LINK = "0"
2067 19351457 Guido Trotter
CONFD_REQQ_IP = "1"
2068 19351457 Guido Trotter
CONFD_REQQ_IPLIST = "2"
2069 250554a9 Guido Trotter
CONFD_REQQ_FIELDS = "3"
2070 250554a9 Guido Trotter
2071 250554a9 Guido Trotter
CONFD_REQFIELD_NAME = "0"
2072 250554a9 Guido Trotter
CONFD_REQFIELD_IP = "1"
2073 43dc8496 Guido Trotter
CONFD_REQFIELD_MNODE_PIP = "2"
2074 19351457 Guido Trotter
2075 b8028dcf Michael Hanselmann
CONFD_REQS = compat.UniqueFrozenset([
2076 09444532 Guido Trotter
  CONFD_REQ_PING,
2077 ea1518af Guido Trotter
  CONFD_REQ_NODE_ROLE_BYNAME,
2078 ea1518af Guido Trotter
  CONFD_REQ_NODE_PIP_BY_INSTANCE_IP,
2079 48166551 Guido Trotter
  CONFD_REQ_CLUSTER_MASTER,
2080 efbb4fd2 Luca Bigliardi
  CONFD_REQ_NODE_PIP_LIST,
2081 efbb4fd2 Luca Bigliardi
  CONFD_REQ_MC_PIP_LIST,
2082 d01ae714 Luca Bigliardi
  CONFD_REQ_INSTANCES_IPS_LIST,
2083 792f8e55 Iustin Pop
  CONFD_REQ_NODE_DRBD,
2084 ea1518af Guido Trotter
  ])
2085 ea1518af Guido Trotter
2086 31c2a99e Guido Trotter
CONFD_REPL_STATUS_OK = 0
2087 31c2a99e Guido Trotter
CONFD_REPL_STATUS_ERROR = 1
2088 31c2a99e Guido Trotter
CONFD_REPL_STATUS_NOTIMPLEMENTED = 2
2089 31c2a99e Guido Trotter
2090 b8028dcf Michael Hanselmann
CONFD_REPL_STATUSES = compat.UniqueFrozenset([
2091 31c2a99e Guido Trotter
  CONFD_REPL_STATUS_OK,
2092 31c2a99e Guido Trotter
  CONFD_REPL_STATUS_ERROR,
2093 31c2a99e Guido Trotter
  CONFD_REPL_STATUS_NOTIMPLEMENTED,
2094 31c2a99e Guido Trotter
  ])
2095 31c2a99e Guido Trotter
2096 89c52785 Guido Trotter
(CONFD_NODE_ROLE_MASTER,
2097 89c52785 Guido Trotter
 CONFD_NODE_ROLE_CANDIDATE,
2098 89c52785 Guido Trotter
 CONFD_NODE_ROLE_OFFLINE,
2099 197b0f5d Guido Trotter
 CONFD_NODE_ROLE_DRAINED,
2100 197b0f5d Guido Trotter
 CONFD_NODE_ROLE_REGULAR,
2101 197b0f5d Guido Trotter
 ) = range(5)
2102 89c52785 Guido Trotter
2103 ca2a5b13 Guido Trotter
# A few common errors for confd
2104 f5bfed26 Jose A. Lopes
CONFD_ERROR_UNKNOWN_ENTRY = _constants.CONFD_ERROR_UNKNOWN_ENTRY
2105 f5bfed26 Jose A. Lopes
CONFD_ERROR_INTERNAL = _constants.CONFD_ERROR_INTERNAL
2106 f5bfed26 Jose A. Lopes
CONFD_ERROR_ARGUMENT = _constants.CONFD_ERROR_ARGUMENT
2107 ca2a5b13 Guido Trotter
2108 71f27d19 Guido Trotter
# Each request is "salted" by the current timestamp.
2109 71f27d19 Guido Trotter
# This constants decides how many seconds of skew to accept.
2110 71f27d19 Guido Trotter
# TODO: make this a default and allow the value to be more configurable
2111 f5bfed26 Jose A. Lopes
CONFD_MAX_CLOCK_SKEW = _constants.CONFD_MAX_CLOCK_SKEW
2112 84c3ab28 Guido Trotter
2113 7e7fa841 Iustin Pop
# When we haven't reloaded the config for more than this amount of
2114 7e7fa841 Iustin Pop
# seconds, we force a test to see if inotify is betraying us. Using a
2115 7e7fa841 Iustin Pop
# prime number to ensure we get less chance of 'same wakeup' with
2116 7e7fa841 Iustin Pop
# other processes.
2117 f5bfed26 Jose A. Lopes
CONFD_CONFIG_RELOAD_TIMEOUT = _constants.CONFD_CONFIG_RELOAD_TIMEOUT
2118 84c3ab28 Guido Trotter
2119 7e7fa841 Iustin Pop
# If we receive more than one update in this amount of microseconds,
2120 7e7fa841 Iustin Pop
# we move to polling every RATELIMIT seconds, rather than relying on
2121 7e7fa841 Iustin Pop
# inotify, to be able to serve more requests.
2122 f5bfed26 Jose A. Lopes
CONFD_CONFIG_RELOAD_RATELIMIT = _constants.CONFD_CONFIG_RELOAD_RATELIMIT
2123 c8eded0b Guido Trotter
2124 a3758ab2 Guido Trotter
# Magic number prepended to all confd queries.
2125 a3758ab2 Guido Trotter
# This allows us to distinguish different types of confd protocols and handle
2126 a3758ab2 Guido Trotter
# them. For example by changing this we can move the whole payload to be
2127 a3758ab2 Guido Trotter
# compressed, or move away from json.
2128 f5bfed26 Jose A. Lopes
CONFD_MAGIC_FOURCC = _constants.CONFD_MAGIC_FOURCC
2129 a3758ab2 Guido Trotter
2130 e4ccf6cd Guido Trotter
# By default a confd request is sent to the minimum between this number and all
2131 e4ccf6cd Guido Trotter
# MCs. 6 was chosen because even in the case of a disastrous 50% response rate,
2132 e4ccf6cd Guido Trotter
# we should have enough answers to be able to compare more than one.
2133 f5bfed26 Jose A. Lopes
CONFD_DEFAULT_REQ_COVERAGE = _constants.CONFD_DEFAULT_REQ_COVERAGE
2134 e4ccf6cd Guido Trotter
2135 e4ccf6cd Guido Trotter
# Timeout in seconds to expire pending query request in the confd client
2136 e4ccf6cd Guido Trotter
# library. We don't actually expect any answer more than 10 seconds after we
2137 e4ccf6cd Guido Trotter
# sent a request.
2138 f5bfed26 Jose A. Lopes
CONFD_CLIENT_EXPIRE_TIMEOUT = _constants.CONFD_CLIENT_EXPIRE_TIMEOUT
2139 e4ccf6cd Guido Trotter
2140 c8eded0b Guido Trotter
# Maximum UDP datagram size.
2141 c8eded0b Guido Trotter
# On IPv4: 64K - 20 (ip header size) - 8 (udp header size) = 65507
2142 c8eded0b Guido Trotter
# On IPv6: 64K - 40 (ip6 header size) - 8 (udp header size) = 65487
2143 c8eded0b Guido Trotter
#   (assuming we can't use jumbo frames)
2144 c8eded0b Guido Trotter
# We just set this to 60K, which should be enough
2145 c8eded0b Guido Trotter
MAX_UDP_DATA_SIZE = 61440
2146 6d127406 Balazs Lecz
2147 6d127406 Balazs Lecz
# User-id pool minimum/maximum acceptable user-ids.
2148 6d127406 Balazs Lecz
UIDPOOL_UID_MIN = 0
2149 e687ec01 Michael Hanselmann
UIDPOOL_UID_MAX = 2 ** 32 - 1 # Assuming 32 bit user-ids
2150 649bcdd8 Balazs Lecz
2151 649bcdd8 Balazs Lecz
# Name or path of the pgrep command
2152 649bcdd8 Balazs Lecz
PGREP = "pgrep"
2153 75cf411a Adeodato Simo
2154 75cf411a Adeodato Simo
# Name of the node group that gets created at cluster init or upgrade
2155 75cf411a Adeodato Simo
INITIAL_NODE_GROUP_NAME = "default"
2156 90e99856 Adeodato Simo
2157 90e99856 Adeodato Simo
# Possible values for NodeGroup.alloc_policy
2158 f2cf4da2 Jose A. Lopes
ALLOC_POLICY_PREFERRED = _constants.ALLOC_POLICY_PREFERRED
2159 f2cf4da2 Jose A. Lopes
ALLOC_POLICY_LAST_RESORT = _constants.ALLOC_POLICY_LAST_RESORT
2160 f2cf4da2 Jose A. Lopes
ALLOC_POLICY_UNALLOCABLE = _constants.ALLOC_POLICY_UNALLOCABLE
2161 f2cf4da2 Jose A. Lopes
VALID_ALLOC_POLICIES = _constants.VALID_ALLOC_POLICIES
2162 b6135bbc Apollon Oikonomopoulos
2163 b6135bbc Apollon Oikonomopoulos
# Temporary external/shared storage parameters
2164 f2cf4da2 Jose A. Lopes
BLOCKDEV_DRIVER_MANUAL = _constants.BLOCKDEV_DRIVER_MANUAL
2165 e5395072 Iustin Pop
2166 a002ed79 Agata Murawska
# qemu-img path, required for ovfconverter
2167 e0d672fa Jose A. Lopes
QEMUIMG_PATH = _constants.QEMUIMG_PATH
2168 a002ed79 Agata Murawska
2169 e5395072 Iustin Pop
# Whether htools was enabled at compilation time
2170 e0d672fa Jose A. Lopes
HTOOLS = _constants.HTOOLS
2171 e5395072 Iustin Pop
# The hail iallocator
2172 e5395072 Iustin Pop
IALLOC_HAIL = "hail"
2173 b8d51bb2 Michael Hanselmann
2174 2d88fdd3 Andrea Spadaccini
# Fake opcodes for functions that have hooks attached to them via
2175 2d88fdd3 Andrea Spadaccini
# backend.RunLocalHooks
2176 2d88fdd3 Andrea Spadaccini
FAKE_OP_MASTER_TURNUP = "OP_CLUSTER_IP_TURNUP"
2177 2d88fdd3 Andrea Spadaccini
FAKE_OP_MASTER_TURNDOWN = "OP_CLUSTER_IP_TURNDOWN"
2178 2d88fdd3 Andrea Spadaccini
2179 8a3c9e8a Michael Hanselmann
# SSH key types
2180 8a3c9e8a Michael Hanselmann
SSHK_RSA = "rsa"
2181 8a3c9e8a Michael Hanselmann
SSHK_DSA = "dsa"
2182 b8028dcf Michael Hanselmann
SSHK_ALL = compat.UniqueFrozenset([SSHK_RSA, SSHK_DSA])
2183 8a3c9e8a Michael Hanselmann
2184 d12b9f66 Michael Hanselmann
# SSH authorized key types
2185 d12b9f66 Michael Hanselmann
SSHAK_RSA = "ssh-rsa"
2186 d12b9f66 Michael Hanselmann
SSHAK_DSS = "ssh-dss"
2187 b8028dcf Michael Hanselmann
SSHAK_ALL = compat.UniqueFrozenset([SSHAK_RSA, SSHAK_DSS])
2188 d12b9f66 Michael Hanselmann
2189 d12b9f66 Michael Hanselmann
# SSH setup
2190 d12b9f66 Michael Hanselmann
SSHS_CLUSTER_NAME = "cluster_name"
2191 d12b9f66 Michael Hanselmann
SSHS_SSH_HOST_KEY = "ssh_host_key"
2192 d12b9f66 Michael Hanselmann
SSHS_SSH_ROOT_KEY = "ssh_root_key"
2193 d12b9f66 Michael Hanselmann
SSHS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
2194 d12b9f66 Michael Hanselmann
2195 ebae9e37 Michael Hanselmann
#: Key files for SSH daemon
2196 ebae9e37 Michael Hanselmann
SSH_DAEMON_KEYFILES = {
2197 ebae9e37 Michael Hanselmann
  SSHK_RSA: (pathutils.SSH_HOST_RSA_PRIV, pathutils.SSH_HOST_RSA_PUB),
2198 ebae9e37 Michael Hanselmann
  SSHK_DSA: (pathutils.SSH_HOST_DSA_PRIV, pathutils.SSH_HOST_DSA_PUB),
2199 ebae9e37 Michael Hanselmann
  }
2200 ebae9e37 Michael Hanselmann
2201 69e5fefc Michael Hanselmann
# Node daemon setup
2202 69e5fefc Michael Hanselmann
NDS_CLUSTER_NAME = "cluster_name"
2203 69e5fefc Michael Hanselmann
NDS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
2204 69e5fefc Michael Hanselmann
NDS_SSCONF = "ssconf"
2205 69e5fefc Michael Hanselmann
NDS_START_NODE_DAEMON = "start_node_daemon"
2206 69e5fefc Michael Hanselmann
2207 80a0546b Michele Tartara
# Path generating random UUID
2208 06fd57e5 Jose A. Lopes
RANDOM_UUID_FILE = _constants.RANDOM_UUID_FILE
2209 80a0546b Michele Tartara
2210 80a0546b Michele Tartara
# Regex string for verifying a UUID
2211 80a0546b Michele Tartara
UUID_REGEX = "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
2212 80a0546b Michele Tartara
2213 3e77a36c Dato Simó
# Auto-repair tag prefixes
2214 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_TAG_PREFIX = _constants.AUTO_REPAIR_TAG_PREFIX
2215 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_TAG_ENABLED = _constants.AUTO_REPAIR_TAG_ENABLED
2216 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_TAG_SUSPENDED = _constants.AUTO_REPAIR_TAG_SUSPENDED
2217 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_TAG_PENDING = _constants.AUTO_REPAIR_TAG_PENDING
2218 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_TAG_RESULT = _constants.AUTO_REPAIR_TAG_RESULT
2219 3e77a36c Dato Simó
2220 3e77a36c Dato Simó
# Auto-repair levels
2221 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_FIX_STORAGE = _constants.AUTO_REPAIR_FIX_STORAGE
2222 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_MIGRATE = _constants.AUTO_REPAIR_MIGRATE
2223 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_FAILOVER = _constants.AUTO_REPAIR_FAILOVER
2224 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_REINSTALL = _constants.AUTO_REPAIR_REINSTALL
2225 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_ALL_TYPES = _constants.AUTO_REPAIR_ALL_TYPES
2226 3e77a36c Dato Simó
2227 3e77a36c Dato Simó
# Auto-repair results
2228 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_SUCCESS = _constants.AUTO_REPAIR_SUCCESS
2229 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_FAILURE = _constants.AUTO_REPAIR_FAILURE
2230 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_ENOPERM = _constants.AUTO_REPAIR_ENOPERM
2231 f2cf4da2 Jose A. Lopes
AUTO_REPAIR_ALL_RESULTS = _constants.AUTO_REPAIR_ALL_RESULTS
2232 3e77a36c Dato Simó
2233 13d3acab Michele Tartara
# The version identifier for builtin data collectors
2234 f2cf4da2 Jose A. Lopes
BUILTIN_DATA_COLLECTOR_VERSION = _constants.BUILTIN_DATA_COLLECTOR_VERSION
2235 13d3acab Michele Tartara
2236 1cc55342 Michele Tartara
# The reason trail opcode parameter name
2237 8d04ac5e Jose A. Lopes
OPCODE_REASON = _constants.OPCODE_REASON
2238 1cc55342 Michele Tartara
2239 1cc55342 Michele Tartara
# The source reasons for the execution of an OpCode
2240 1cc55342 Michele Tartara
OPCODE_REASON_SRC_CLIENT = "gnt:client"
2241 1cc55342 Michele Tartara
OPCODE_REASON_SRC_NODED = "gnt:daemon:noded"
2242 1cc55342 Michele Tartara
OPCODE_REASON_SRC_OPCODE = "gnt:opcode"
2243 1cc55342 Michele Tartara
OPCODE_REASON_SRC_RLIB2 = "gnt:library:rlib2"
2244 1cc55342 Michele Tartara
OPCODE_REASON_SRC_USER = "gnt:user"
2245 1cc55342 Michele Tartara
2246 1cc55342 Michele Tartara
OPCODE_REASON_SOURCES = compat.UniqueFrozenset([
2247 1cc55342 Michele Tartara
  OPCODE_REASON_SRC_CLIENT,
2248 1cc55342 Michele Tartara
  OPCODE_REASON_SRC_NODED,
2249 1cc55342 Michele Tartara
  OPCODE_REASON_SRC_OPCODE,
2250 1cc55342 Michele Tartara
  OPCODE_REASON_SRC_RLIB2,
2251 1cc55342 Michele Tartara
  OPCODE_REASON_SRC_USER,
2252 1cc55342 Michele Tartara
  ])
2253 1cc55342 Michele Tartara
2254 8d04ac5e Jose A. Lopes
DISKSTATS_FILE = _constants.DISKSTATS_FILE
2255 3dca2415 Michele Tartara
2256 2da679f7 Spyros Trigazis
# CPU load collector variables
2257 8d04ac5e Jose A. Lopes
STAT_FILE = _constants.STAT_FILE
2258 2da679f7 Spyros Trigazis
CPUAVGLOAD_BUFFER_SIZE = 150
2259 2da679f7 Spyros Trigazis
CPUAVGLOAD_WINDOW_SIZE = 600
2260 2da679f7 Spyros Trigazis
2261 3792fa8e Spyros Trigazis
# Mond's variable for periodical data collection
2262 8d04ac5e Jose A. Lopes
MOND_TIME_INTERVAL = _constants.MOND_TIME_INTERVAL
2263 3792fa8e Spyros Trigazis
2264 690e509d Spyros Trigazis
# MonD's latest API version
2265 690e509d Spyros Trigazis
MOND_LATEST_API_VERSION = 1
2266 690e509d Spyros Trigazis
2267 b8d51bb2 Michael Hanselmann
# Do not re-export imported modules
2268 e0d672fa Jose A. Lopes
del re, _vcsversion, _constants, socket, pathutils, compat
2269 884dc063 Jose A. Lopes
2270 884dc063 Jose A. Lopes
2271 884dc063 Jose A. Lopes
ALLOCATABLE_KEY = "allocatable"
2272 884dc063 Jose A. Lopes
FAILED_KEY = "failed"