Hs2Py constants: VNC
[ganeti-local] / lib / constants.py
1 #
2 #
3
4 # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Google Inc.
5 #
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 # General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 # 02110-1301, USA.
20
21
22 """Module holding different constants."""
23
24 import re
25 import socket
26
27 from ganeti import _constants
28 from ganeti import _vcsversion
29 from ganeti import compat
30 from ganeti import pathutils
31
32
33 # various versions
34 RELEASE_VERSION = _constants.RELEASE_VERSION
35 OS_API_V10 = _constants.OS_API_V10
36 OS_API_V15 = _constants.OS_API_V15
37 OS_API_V20 = _constants.OS_API_V20
38 OS_API_VERSIONS = _constants.OS_API_VERSIONS
39 VCS_VERSION = _vcsversion.VCS_VERSION
40 EXPORT_VERSION = _constants.EXPORT_VERSION
41 RAPI_VERSION = _constants.RAPI_VERSION
42
43 VERSION_MAJOR = _constants.VERSION_MAJOR
44 VERSION_MINOR = _constants.VERSION_MINOR
45 VERSION_REVISION = _constants.VERSION_REVISION
46
47 DIR_VERSION = _constants.DIR_VERSION
48
49 CONFIG_MAJOR = _constants.CONFIG_MAJOR
50 CONFIG_MINOR = _constants.CONFIG_MINOR
51 CONFIG_REVISION = _constants.CONFIG_REVISION
52 CONFIG_VERSION = _constants.CONFIG_VERSION
53
54 #: RPC protocol version
55 PROTOCOL_VERSION = _constants.PROTOCOL_VERSION
56
57 # user separation
58 DAEMONS_GROUP = _constants.DAEMONS_GROUP
59 ADMIN_GROUP = _constants.ADMIN_GROUP
60 MASTERD_USER = _constants.MASTERD_USER
61 MASTERD_GROUP = _constants.MASTERD_GROUP
62 RAPI_USER = _constants.RAPI_USER
63 RAPI_GROUP = _constants.RAPI_GROUP
64 CONFD_USER = _constants.CONFD_USER
65 CONFD_GROUP = _constants.CONFD_GROUP
66 LUXID_USER = _constants.LUXID_USER
67 LUXID_GROUP = _constants.LUXID_GROUP
68 NODED_USER = _constants.NODED_USER
69 NODED_GROUP = _constants.NODED_GROUP
70 MOND_USER = _constants.MOND_USER
71 MOND_GROUP = _constants.MOND_GROUP
72 SSH_LOGIN_USER = _constants.SSH_LOGIN_USER
73 SSH_CONSOLE_USER = _constants.SSH_CONSOLE_USER
74
75 CPU_PINNING_SEP = _constants.CPU_PINNING_SEP
76 CPU_PINNING_ALL = _constants.CPU_PINNING_ALL
77 CPU_PINNING_ALL_VAL = _constants.CPU_PINNING_ALL_VAL
78 CPU_PINNING_OFF = _constants.CPU_PINNING_OFF
79
80 CPU_PINNING_ALL_XEN = _constants.CPU_PINNING_ALL_XEN
81
82 CPU_PINNING_ALL_KVM = _constants.CPU_PINNING_ALL_KVM
83
84 DD_CMD = _constants.DD_CMD
85 MAX_WIPE_CHUNK = _constants.MAX_WIPE_CHUNK
86 MIN_WIPE_CHUNK_PERCENT = _constants.MIN_WIPE_CHUNK_PERCENT
87
88 RUN_DIRS_MODE = _constants.RUN_DIRS_MODE
89 SECURE_DIR_MODE = _constants.SECURE_DIR_MODE
90 SECURE_FILE_MODE = _constants.SECURE_FILE_MODE
91 ADOPTABLE_BLOCKDEV_ROOT = _constants.ADOPTABLE_BLOCKDEV_ROOT
92 ENABLE_CONFD = _constants.ENABLE_CONFD
93 ENABLE_MOND = _constants.ENABLE_MOND
94 ENABLE_SPLIT_QUERY = _constants.ENABLE_SPLIT_QUERY
95 ENABLE_RESTRICTED_COMMANDS = _constants.ENABLE_RESTRICTED_COMMANDS
96
97 # SSH constants
98 SSH = _constants.SSH
99 SCP = _constants.SCP
100
101 NODED = _constants.NODED
102 CONFD = _constants.CONFD
103 LUXID = _constants.LUXID
104 RAPI = _constants.RAPI
105 MASTERD = _constants.MASTERD
106 MOND = _constants.MOND
107
108 DAEMONS = _constants.DAEMONS
109
110 DAEMONS_PORTS = _constants.DAEMONS_PORTS
111
112 DEFAULT_NODED_PORT = _constants.DEFAULT_NODED_PORT
113 DEFAULT_CONFD_PORT = _constants.DEFAULT_CONFD_PORT
114 DEFAULT_MOND_PORT = _constants.DEFAULT_MOND_PORT
115 DEFAULT_RAPI_PORT = _constants.DEFAULT_RAPI_PORT
116
117 FIRST_DRBD_PORT = _constants.FIRST_DRBD_PORT
118 LAST_DRBD_PORT = _constants.LAST_DRBD_PORT
119
120 DAEMONS_LOGBASE = _constants.DAEMONS_LOGBASE
121
122 DAEMONS_LOGFILES = \
123     dict((daemon, pathutils.GetLogFilename(DAEMONS_LOGBASE[daemon]))
124          for daemon in DAEMONS_LOGBASE)
125
126 # Some daemons might require more than one logfile.
127 # Specifically, right now only the Haskell http library "snap", used by the
128 # monitoring daemon, requires multiple log files.
129
130 # These are the only valid reasons for having an extra logfile
131 EXTRA_LOGREASON_ACCESS = "access"
132 EXTRA_LOGREASON_ERROR = "error"
133
134 VALID_EXTRA_LOGREASONS = compat.UniqueFrozenset([
135   EXTRA_LOGREASON_ACCESS,
136   EXTRA_LOGREASON_ERROR,
137   ])
138
139 # These are the extra logfiles, grouped by daemon
140 DAEMONS_EXTRA_LOGBASE = {
141   MOND: {
142     EXTRA_LOGREASON_ACCESS: _constants.EXTRA_LOGREASON_ACCESS,
143     EXTRA_LOGREASON_ERROR: _constants.EXTRA_LOGREASON_ERROR,
144     }
145   }
146
147 DAEMONS_EXTRA_LOGFILES = \
148   dict((daemon, dict((extra,
149        pathutils.GetLogFilename(DAEMONS_EXTRA_LOGBASE[daemon][extra]))
150        for extra in DAEMONS_EXTRA_LOGBASE[daemon]))
151          for daemon in DAEMONS_EXTRA_LOGBASE)
152
153 DEV_CONSOLE = _constants.DEV_CONSOLE
154
155 PROC_MOUNTS = _constants.PROC_MOUNTS
156
157 LUXI_EOM = _constants.LUXI_EOM
158 LUXI_VERSION = _constants.LUXI_VERSION
159 LUXI_OVERRIDE = _constants.LUXI_OVERRIDE
160 LUXI_OVERRIDE_MASTER = _constants.LUXI_OVERRIDE_MASTER
161 LUXI_OVERRIDE_QUERY = _constants.LUXI_OVERRIDE_QUERY
162 # one of "no", "yes", "only"
163 SYSLOG_USAGE = _constants.SYSLOG_USAGE
164 SYSLOG_NO = _constants.SYSLOG_NO
165 SYSLOG_YES = _constants.SYSLOG_YES
166 SYSLOG_ONLY = _constants.SYSLOG_ONLY
167 SYSLOG_SOCKET = _constants.SYSLOG_SOCKET
168
169 EXPORT_CONF_FILE = _constants.EXPORT_CONF_FILE
170
171 XEN_BOOTLOADER = _constants.XEN_BOOTLOADER
172 XEN_KERNEL = _constants.XEN_KERNEL
173 XEN_INITRD = _constants.XEN_INITRD
174 XEN_CMD_XM = _constants.XEN_CMD_XM
175 XEN_CMD_XL = _constants.XEN_CMD_XL
176 KNOWN_XEN_COMMANDS = _constants.KNOWN_XEN_COMMANDS
177
178 # When the Xen toolstack used is "xl", live migration requires the source host
179 # to connect to the target host via ssh (xl runs this command). We need to pass
180 # the command xl runs some extra info so that it can use Ganeti's key
181 # verification and not fail. Note that this string is incomplete: it must be
182 # filled with the cluster name before being used.
183 XL_SSH_CMD = ("ssh -l %s -oGlobalKnownHostsFile=%s"
184               " -oUserKnownHostsFile=/dev/null"
185               " -oCheckHostIp=no -oStrictHostKeyChecking=yes"
186               " -oHostKeyAlias=%%s") % (SSH_LOGIN_USER,
187                                         pathutils.SSH_KNOWN_HOSTS_FILE)
188
189 KVM_PATH = _constants.KVM_PATH
190 KVM_KERNEL = _constants.KVM_KERNEL
191 SOCAT_PATH = _constants.SOCAT_PATH
192 SOCAT_USE_ESCAPE = _constants.SOCAT_USE_ESCAPE
193 SOCAT_USE_COMPRESS = _constants.SOCAT_USE_COMPRESS
194 SOCAT_ESCAPE_CODE = _constants.SOCAT_ESCAPE_CODE
195
196
197 CONS_SSH = _constants.CONS_SSH
198 CONS_VNC = _constants.CONS_VNC
199 CONS_SPICE = _constants.CONS_SPICE
200 CONS_MESSAGE = _constants.CONS_MESSAGE
201 CONS_ALL = _constants.CONS_ALL
202
203 RSA_KEY_BITS = _constants.RSA_KEY_BITS
204 OPENSSL_CIPHERS = _constants.OPENSSL_CIPHERS
205
206 X509_CERT_SIGN_DIGEST = _constants.X509_CERT_SIGN_DIGEST
207 X509_CERT_DEFAULT_VALIDITY = _constants.X509_CERT_DEFAULT_VALIDITY
208 X509_CERT_CN = _constants.X509_CERT_CN
209 X509_CERT_SIGNATURE_HEADER = _constants.X509_CERT_SIGNATURE_HEADER
210
211 # Import/export daemon mode
212 IEM_IMPORT = _constants.IEM_IMPORT
213 IEM_EXPORT = _constants.IEM_EXPORT
214
215 # Import/export transport compression
216 IEC_NONE = _constants.IEC_NONE
217 IEC_GZIP = _constants.IEC_GZIP
218 IEC_ALL = _constants.IEC_ALL
219
220 IE_CUSTOM_SIZE = _constants.IE_CUSTOM_SIZE
221
222 IE_MAGIC_RE = re.compile(r"^[-_.a-zA-Z0-9]{5,100}$")
223
224 IEIO_FILE = _constants.IEIO_FILE
225 IEIO_RAW_DISK = _constants.IEIO_RAW_DISK
226 IEIO_SCRIPT = _constants.IEIO_SCRIPT
227
228 VALUE_DEFAULT = "default"
229 VALUE_AUTO = "auto"
230 VALUE_GENERATE = "generate"
231 VALUE_NONE = "none"
232 VALUE_TRUE = "true"
233 VALUE_FALSE = "false"
234 VALUE_HS_NOTHING = {"Nothing": None}
235
236
237 # External script validation mask
238 EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$")
239
240 HOOKS_PHASE_PRE = _constants.HOOKS_PHASE_PRE
241 HOOKS_PHASE_POST = _constants.HOOKS_PHASE_POST
242 HOOKS_NAME_CFGUPDATE = _constants.HOOKS_NAME_CFGUPDATE
243 HOOKS_NAME_WATCHER = _constants.HOOKS_NAME_WATCHER
244 HOOKS_VERSION = _constants.HOOKS_VERSION
245 HOOKS_PATH = _constants.HOOKS_PATH
246
247 HTYPE_CLUSTER = _constants.HTYPE_CLUSTER
248 HTYPE_NODE = _constants.HTYPE_NODE
249 HTYPE_GROUP = _constants.HTYPE_GROUP
250 HTYPE_INSTANCE = _constants.HTYPE_INSTANCE
251 HTYPE_NETWORK = _constants.HTYPE_NETWORK
252
253 HKR_SKIP = _constants.HKR_SKIP
254 HKR_FAIL = _constants.HKR_FAIL
255 HKR_SUCCESS = _constants.HKR_SUCCESS
256
257 # Storage types
258 ST_BLOCK = _constants.ST_BLOCK
259 ST_DISKLESS = _constants.ST_DISKLESS
260 ST_EXT = _constants.ST_EXT
261 ST_FILE = _constants.ST_FILE
262 ST_LVM_PV = _constants.ST_LVM_PV
263 ST_LVM_VG = _constants.ST_LVM_VG
264 ST_RADOS = _constants.ST_RADOS
265 STORAGE_TYPES = _constants.STORAGE_TYPES
266 STS_REPORT = _constants.STS_REPORT
267
268 # Storage fields
269 # first two are valid in LU context only, not passed to backend
270 SF_NODE = _constants.SF_NODE
271 SF_TYPE = _constants.SF_TYPE
272 # and the rest are valid in backend
273 SF_NAME = _constants.SF_NAME
274 SF_SIZE = _constants.SF_SIZE
275 SF_FREE = _constants.SF_FREE
276 SF_USED = _constants.SF_USED
277 SF_ALLOCATABLE = _constants.SF_ALLOCATABLE
278 VALID_STORAGE_FIELDS = _constants.VALID_STORAGE_FIELDS
279 MODIFIABLE_STORAGE_FIELDS = _constants.MODIFIABLE_STORAGE_FIELDS
280
281 SO_FIX_CONSISTENCY = _constants.SO_FIX_CONSISTENCY
282 VALID_STORAGE_OPERATIONS = _constants.VALID_STORAGE_OPERATIONS
283
284 VF_DEV = _constants.VF_DEV
285 VF_INSTANCE = _constants.VF_INSTANCE
286 VF_NAME = _constants.VF_NAME
287 VF_NODE = _constants.VF_NODE
288 VF_PHYS = _constants.VF_PHYS
289 VF_SIZE = _constants.VF_SIZE
290 VF_VG = _constants.VF_VG
291
292 LDS_OKAY = _constants.LDS_OKAY
293 LDS_UNKNOWN = _constants.LDS_UNKNOWN
294 LDS_FAULTY = _constants.LDS_FAULTY
295 LDS_NAMES = _constants.LDS_NAMES
296
297 # disk template types
298 DT_BLOCK = _constants.DT_BLOCK
299 DT_DISKLESS = _constants.DT_DISKLESS
300 DT_DRBD8 = _constants.DT_DRBD8
301 DT_EXT = _constants.DT_EXT
302 DT_FILE = _constants.DT_FILE
303 DT_PLAIN = _constants.DT_PLAIN
304 DT_RBD = _constants.DT_RBD
305 DT_SHARED_FILE = _constants.DT_SHARED_FILE
306 DISK_TEMPLATE_PREFERENCE = _constants.DISK_TEMPLATE_PREFERENCE
307 DISK_TEMPLATES = _constants.DISK_TEMPLATES
308 DEFAULT_ENABLED_DISK_TEMPLATES = _constants.DEFAULT_ENABLED_DISK_TEMPLATES
309
310 MAP_DISK_TEMPLATE_STORAGE_TYPE = _constants.MAP_DISK_TEMPLATE_STORAGE_TYPE
311
312 DTS_INT_MIRROR = _constants.DTS_INT_MIRROR
313 DTS_EXT_MIRROR = _constants.DTS_EXT_MIRROR
314 DTS_NOT_LVM = _constants.DTS_NOT_LVM
315 DTS_GROWABLE = _constants.DTS_GROWABLE
316 DTS_MAY_ADOPT = _constants.DTS_MAY_ADOPT
317 DTS_MUST_ADOPT = _constants.DTS_MUST_ADOPT
318 DTS_MIRRORED = _constants.DTS_MIRRORED
319 DTS_FILEBASED = _constants.DTS_FILEBASED
320 DTS_COPYABLE = _constants.DTS_COPYABLE
321 DTS_EXCL_STORAGE = _constants.DTS_EXCL_STORAGE
322 DTS_NO_FREE_SPACE_CHECK = _constants.DTS_NO_FREE_SPACE_CHECK
323 DTS_BLOCK = _constants.DTS_BLOCK
324
325 DRBD_HMAC_ALG = _constants.DRBD_HMAC_ALG
326 DRBD_DEFAULT_NET_PROTOCOL = _constants.DRBD_DEFAULT_NET_PROTOCOL
327 DRBD_MIGRATION_NET_PROTOCOL = _constants.DRBD_MIGRATION_NET_PROTOCOL
328 DRBD_STATUS_FILE = _constants.DRBD_STATUS_FILE
329 DRBD_META_SIZE = _constants.DRBD_META_SIZE
330
331 DRBD_B_NONE = _constants.DRBD_B_NONE
332 DRBD_B_DISK_BARRIERS = _constants.DRBD_B_DISK_BARRIERS
333 DRBD_B_DISK_DRAIN = _constants.DRBD_B_DISK_DRAIN
334 DRBD_B_DISK_FLUSH = _constants.DRBD_B_DISK_FLUSH
335
336 # Valid barrier combinations: "n" or any non-null subset of "bfd"
337 DRBD_VALID_BARRIER_OPT = compat.UniqueFrozenset([
338   frozenset([DRBD_B_NONE]),
339   frozenset([DRBD_B_DISK_BARRIERS]),
340   frozenset([DRBD_B_DISK_DRAIN]),
341   frozenset([DRBD_B_DISK_FLUSH]),
342   frozenset([DRBD_B_DISK_DRAIN, DRBD_B_DISK_FLUSH]),
343   frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_DRAIN]),
344   frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_FLUSH]),
345   frozenset([DRBD_B_DISK_BARRIERS, DRBD_B_DISK_FLUSH, DRBD_B_DISK_DRAIN]),
346   ])
347
348 RBD_CMD = _constants.RBD_CMD
349
350 FD_BLKTAP = _constants.FD_BLKTAP
351 FD_LOOP = _constants.FD_LOOP
352 FILE_DRIVER = _constants.FILE_DRIVER
353
354 LDS_DRBD = _constants.LDS_DRBD
355
356 # disk access mode
357 DISK_RDONLY = _constants.DISK_RDONLY
358 DISK_RDWR = _constants.DISK_RDWR
359 DISK_ACCESS_SET = _constants.DISK_ACCESS_SET
360 DISK_USERSPACE = _constants.DISK_USERSPACE
361 DISK_KERNELSPACE = _constants.DISK_KERNELSPACE
362 DISK_VALID_ACCESS_MODES = _constants.DISK_VALID_ACCESS_MODES
363
364 REPLACE_DISK_PRI = _constants.REPLACE_DISK_PRI
365 REPLACE_DISK_SEC = _constants.REPLACE_DISK_SEC
366 REPLACE_DISK_CHG = _constants.REPLACE_DISK_CHG
367 REPLACE_DISK_AUTO = _constants.REPLACE_DISK_AUTO
368 REPLACE_MODES = _constants.REPLACE_MODES
369
370 # Instance export mode
371 EXPORT_MODE_LOCAL = _constants.EXPORT_MODE_LOCAL
372 EXPORT_MODE_REMOTE = _constants.EXPORT_MODE_REMOTE
373 EXPORT_MODES = _constants.EXPORT_MODES
374
375 # instance creation modes
376 INSTANCE_CREATE = _constants.INSTANCE_CREATE
377 INSTANCE_IMPORT = _constants.INSTANCE_IMPORT
378 INSTANCE_REMOTE_IMPORT = _constants.INSTANCE_REMOTE_IMPORT
379 INSTANCE_CREATE_MODES = _constants.INSTANCE_CREATE_MODES
380
381 RIE_VERSION = _constants.RIE_VERSION
382 RIE_HANDSHAKE = _constants.RIE_HANDSHAKE
383 RIE_CERT_VALIDITY = _constants.RIE_CERT_VALIDITY
384 RIE_CONNECT_TIMEOUT = _constants.RIE_CONNECT_TIMEOUT
385 RIE_CONNECT_ATTEMPT_TIMEOUT = _constants.RIE_CONNECT_ATTEMPT_TIMEOUT
386 RIE_CONNECT_RETRIES = _constants.RIE_CONNECT_RETRIES
387 CHILD_LINGER_TIMEOUT = _constants.CHILD_LINGER_TIMEOUT
388
389 INISECT_EXP = _constants.INISECT_EXP
390 INISECT_INS = _constants.INISECT_INS
391 INISECT_HYP = _constants.INISECT_HYP
392 INISECT_BEP = _constants.INISECT_BEP
393 INISECT_OSP = _constants.INISECT_OSP
394
395 # dynamic device modification
396 DDM_ADD = _constants.DDM_ADD
397 DDM_MODIFY = _constants.DDM_MODIFY
398 DDM_REMOVE = _constants.DDM_REMOVE
399 DDMS_VALUES = _constants.DDMS_VALUES
400 DDMS_VALUES_WITH_MODIFY = _constants.DDMS_VALUES_WITH_MODIFY
401 # TODO: DDM_SWAP, DDM_MOVE?
402
403 # common exit codes
404 EXIT_SUCCESS = _constants.EXIT_SUCCESS
405 EXIT_FAILURE = _constants.EXIT_FAILURE
406 EXIT_NOTCLUSTER = _constants.EXIT_NOTCLUSTER
407 EXIT_NOTMASTER = _constants.EXIT_NOTMASTER
408 EXIT_NODESETUP_ERROR = _constants.EXIT_NODESETUP_ERROR
409 EXIT_CONFIRMATION = _constants.EXIT_CONFIRMATION
410 EXIT_UNKNOWN_FIELD = _constants.EXIT_UNKNOWN_FIELD
411
412 # tags
413 TAG_CLUSTER = _constants.TAG_CLUSTER
414 TAG_NODEGROUP = _constants.TAG_NODEGROUP
415 TAG_NODE = _constants.TAG_NODE
416 TAG_INSTANCE = _constants.TAG_INSTANCE
417 TAG_NETWORK = _constants.TAG_NETWORK
418 VALID_TAG_TYPES = _constants.VALID_TAG_TYPES
419
420 MAX_TAG_LEN = _constants.MAX_TAG_LEN
421 MAX_TAGS_PER_OBJ = _constants.MAX_TAGS_PER_OBJ
422
423 # others
424 DEFAULT_BRIDGE = _constants.DEFAULT_BRIDGE
425 DEFAULT_OVS = _constants.DEFAULT_OVS
426 CLASSIC_DRBD_SYNC_SPEED = _constants.CLASSIC_DRBD_SYNC_SPEED
427 IP4_ADDRESS_LOCALHOST = _constants.IP4_ADDRESS_LOCALHOST
428 IP4_ADDRESS_ANY = _constants.IP4_ADDRESS_ANY
429 IP6_ADDRESS_LOCALHOST = _constants.IP6_ADDRESS_LOCALHOST
430 IP6_ADDRESS_ANY = _constants.IP6_ADDRESS_ANY
431 IP4_VERSION = _constants.IP4_VERSION
432 IP6_VERSION = _constants.IP6_VERSION
433 VALID_IP_VERSIONS = _constants.VALID_IP_VERSIONS
434 # for export to htools
435 IP4_FAMILY = socket.AF_INET
436 IP6_FAMILY = socket.AF_INET6
437
438 TCP_PING_TIMEOUT = _constants.TCP_PING_TIMEOUT
439 DEFAULT_VG = _constants.DEFAULT_VG
440 DEFAULT_DRBD_HELPER = _constants.DEFAULT_DRBD_HELPER
441 MIN_VG_SIZE = _constants.MIN_VG_SIZE
442 DEFAULT_MAC_PREFIX = _constants.DEFAULT_MAC_PREFIX
443 DEFAULT_SHUTDOWN_TIMEOUT = _constants.DEFAULT_SHUTDOWN_TIMEOUT
444 NODE_MAX_CLOCK_SKEW = _constants.NODE_MAX_CLOCK_SKEW
445 DISK_TRANSFER_CONNECT_TIMEOUT = _constants.DISK_TRANSFER_CONNECT_TIMEOUT
446 DISK_SEPARATOR = _constants.DISK_SEPARATOR
447 IP_COMMAND_PATH = _constants.IP_COMMAND_PATH
448 JOB_IDS_KEY = _constants.JOB_IDS_KEY
449
450 RUNPARTS_SKIP = _constants.RUNPARTS_SKIP
451 RUNPARTS_RUN = _constants.RUNPARTS_RUN
452 RUNPARTS_ERR = _constants.RUNPARTS_ERR
453 RUNPARTS_STATUS = _constants.RUNPARTS_STATUS
454
455 RPC_ENCODING_NONE = _constants.RPC_ENCODING_NONE
456 RPC_ENCODING_ZLIB_BASE64 = _constants.RPC_ENCODING_ZLIB_BASE64
457
458 RPC_TMO_URGENT = _constants.RPC_TMO_URGENT
459 RPC_TMO_FAST = _constants.RPC_TMO_FAST
460 RPC_TMO_NORMAL = _constants.RPC_TMO_NORMAL
461 RPC_TMO_SLOW = _constants.RPC_TMO_SLOW
462 RPC_TMO_4HRS = _constants.RPC_TMO_4HRS
463 RPC_TMO_1DAY = _constants.RPC_TMO_1DAY
464 RPC_CONNECT_TIMEOUT = _constants.RPC_CONNECT_TIMEOUT
465
466 OS_SCRIPT_CREATE = _constants.OS_SCRIPT_CREATE
467 OS_SCRIPT_IMPORT = _constants.OS_SCRIPT_IMPORT
468 OS_SCRIPT_EXPORT = _constants.OS_SCRIPT_EXPORT
469 OS_SCRIPT_RENAME = _constants.OS_SCRIPT_RENAME
470 OS_SCRIPT_VERIFY = _constants.OS_SCRIPT_VERIFY
471 OS_SCRIPTS = _constants.OS_SCRIPTS
472
473 OS_API_FILE = _constants.OS_API_FILE
474 OS_VARIANTS_FILE = _constants.OS_VARIANTS_FILE
475 OS_PARAMETERS_FILE = _constants.OS_PARAMETERS_FILE
476
477 OS_VALIDATE_PARAMETERS = _constants.OS_VALIDATE_PARAMETERS
478 OS_VALIDATE_CALLS = _constants.OS_VALIDATE_CALLS
479
480 ES_ACTION_CREATE = _constants.ES_ACTION_CREATE
481 ES_ACTION_REMOVE = _constants.ES_ACTION_REMOVE
482 ES_ACTION_GROW = _constants.ES_ACTION_GROW
483 ES_ACTION_ATTACH = _constants.ES_ACTION_ATTACH
484 ES_ACTION_DETACH = _constants.ES_ACTION_DETACH
485 ES_ACTION_SETINFO = _constants.ES_ACTION_SETINFO
486 ES_ACTION_VERIFY = _constants.ES_ACTION_VERIFY
487
488 ES_SCRIPT_CREATE = _constants.ES_SCRIPT_CREATE
489 ES_SCRIPT_REMOVE = _constants.ES_SCRIPT_REMOVE
490 ES_SCRIPT_GROW = _constants.ES_SCRIPT_GROW
491 ES_SCRIPT_ATTACH = _constants.ES_SCRIPT_ATTACH
492 ES_SCRIPT_DETACH = _constants.ES_SCRIPT_DETACH
493 ES_SCRIPT_SETINFO = _constants.ES_SCRIPT_SETINFO
494 ES_SCRIPT_VERIFY = _constants.ES_SCRIPT_VERIFY
495 ES_SCRIPTS = _constants.ES_SCRIPTS
496
497 ES_PARAMETERS_FILE = _constants.ES_PARAMETERS_FILE
498
499 # reboot types
500 INSTANCE_REBOOT_SOFT = _constants.INSTANCE_REBOOT_SOFT
501 INSTANCE_REBOOT_HARD = _constants.INSTANCE_REBOOT_HARD
502 INSTANCE_REBOOT_FULL = _constants.INSTANCE_REBOOT_FULL
503 REBOOT_TYPES = _constants.REBOOT_TYPES
504
505 INSTANCE_REBOOT_ALLOWED = _constants.INSTANCE_REBOOT_ALLOWED
506 INSTANCE_REBOOT_EXIT = _constants.INSTANCE_REBOOT_EXIT
507 REBOOT_BEHAVIORS = _constants.REBOOT_BEHAVIORS
508
509 VTYPE_STRING = _constants.VTYPE_STRING
510 VTYPE_MAYBE_STRING = _constants.VTYPE_MAYBE_STRING
511 VTYPE_BOOL = _constants.VTYPE_BOOL
512 VTYPE_SIZE = _constants.VTYPE_SIZE
513 VTYPE_INT = _constants.VTYPE_INT
514 ENFORCEABLE_TYPES = _constants.ENFORCEABLE_TYPES
515
516 IFACE_NO_IP_VERSION_SPECIFIED = _constants.IFACE_NO_IP_VERSION_SPECIFIED
517
518 VALID_SERIAL_SPEEDS = _constants.VALID_SERIAL_SPEEDS
519
520 HV_BOOT_ORDER = _constants.HV_BOOT_ORDER
521 HV_CDROM_IMAGE_PATH = _constants.HV_CDROM_IMAGE_PATH
522 HV_KVM_CDROM2_IMAGE_PATH = _constants.HV_KVM_CDROM2_IMAGE_PATH
523 HV_KVM_FLOPPY_IMAGE_PATH = _constants.HV_KVM_FLOPPY_IMAGE_PATH
524 HV_NIC_TYPE = _constants.HV_NIC_TYPE
525 HV_DISK_TYPE = _constants.HV_DISK_TYPE
526 HV_KVM_CDROM_DISK_TYPE = _constants.HV_KVM_CDROM_DISK_TYPE
527 HV_VNC_BIND_ADDRESS = _constants.HV_VNC_BIND_ADDRESS
528 HV_VNC_PASSWORD_FILE = _constants.HV_VNC_PASSWORD_FILE
529 HV_VNC_TLS = _constants.HV_VNC_TLS
530 HV_VNC_X509 = _constants.HV_VNC_X509
531 HV_VNC_X509_VERIFY = _constants.HV_VNC_X509_VERIFY
532 HV_KVM_SPICE_BIND = _constants.HV_KVM_SPICE_BIND
533 HV_KVM_SPICE_IP_VERSION = _constants.HV_KVM_SPICE_IP_VERSION
534 HV_KVM_SPICE_PASSWORD_FILE = _constants.HV_KVM_SPICE_PASSWORD_FILE
535 HV_KVM_SPICE_LOSSLESS_IMG_COMPR = _constants.HV_KVM_SPICE_LOSSLESS_IMG_COMPR
536 HV_KVM_SPICE_JPEG_IMG_COMPR = _constants.HV_KVM_SPICE_JPEG_IMG_COMPR
537 HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR = _constants.HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR
538 HV_KVM_SPICE_STREAMING_VIDEO_DETECTION = \
539   _constants.HV_KVM_SPICE_STREAMING_VIDEO_DETECTION
540 HV_KVM_SPICE_AUDIO_COMPR = _constants.HV_KVM_SPICE_AUDIO_COMPR
541 HV_KVM_SPICE_USE_TLS = _constants.HV_KVM_SPICE_USE_TLS
542 HV_KVM_SPICE_TLS_CIPHERS = _constants.HV_KVM_SPICE_TLS_CIPHERS
543 HV_KVM_SPICE_USE_VDAGENT = _constants.HV_KVM_SPICE_USE_VDAGENT
544 HV_ACPI = _constants.HV_ACPI
545 HV_PAE = _constants.HV_PAE
546 HV_USE_BOOTLOADER = _constants.HV_USE_BOOTLOADER
547 HV_BOOTLOADER_ARGS = _constants.HV_BOOTLOADER_ARGS
548 HV_BOOTLOADER_PATH = _constants.HV_BOOTLOADER_PATH
549 HV_KERNEL_ARGS = _constants.HV_KERNEL_ARGS
550 HV_KERNEL_PATH = _constants.HV_KERNEL_PATH
551 HV_INITRD_PATH = _constants.HV_INITRD_PATH
552 HV_ROOT_PATH = _constants.HV_ROOT_PATH
553 HV_SERIAL_CONSOLE = _constants.HV_SERIAL_CONSOLE
554 HV_SERIAL_SPEED = _constants.HV_SERIAL_SPEED
555 HV_USB_MOUSE = _constants.HV_USB_MOUSE
556 HV_KEYMAP = _constants.HV_KEYMAP
557 HV_DEVICE_MODEL = _constants.HV_DEVICE_MODEL
558 HV_INIT_SCRIPT = _constants.HV_INIT_SCRIPT
559 HV_MIGRATION_PORT = _constants.HV_MIGRATION_PORT
560 HV_MIGRATION_BANDWIDTH = _constants.HV_MIGRATION_BANDWIDTH
561 HV_MIGRATION_DOWNTIME = _constants.HV_MIGRATION_DOWNTIME
562 HV_MIGRATION_MODE = _constants.HV_MIGRATION_MODE
563 HV_USE_LOCALTIME = _constants.HV_USE_LOCALTIME
564 HV_DISK_CACHE = _constants.HV_DISK_CACHE
565 HV_SECURITY_MODEL = _constants.HV_SECURITY_MODEL
566 HV_SECURITY_DOMAIN = _constants.HV_SECURITY_DOMAIN
567 HV_KVM_FLAG = _constants.HV_KVM_FLAG
568 HV_VHOST_NET = _constants.HV_VHOST_NET
569 HV_KVM_USE_CHROOT = _constants.HV_KVM_USE_CHROOT
570 HV_CPU_MASK = _constants.HV_CPU_MASK
571 HV_MEM_PATH = _constants.HV_MEM_PATH
572 HV_PASSTHROUGH = _constants.HV_PASSTHROUGH
573 HV_BLOCKDEV_PREFIX = _constants.HV_BLOCKDEV_PREFIX
574 HV_REBOOT_BEHAVIOR = _constants.HV_REBOOT_BEHAVIOR
575 HV_CPU_TYPE = _constants.HV_CPU_TYPE
576 HV_CPU_CAP = _constants.HV_CPU_CAP
577 HV_CPU_WEIGHT = _constants.HV_CPU_WEIGHT
578 HV_CPU_CORES = _constants.HV_CPU_CORES
579 HV_CPU_THREADS = _constants.HV_CPU_THREADS
580 HV_CPU_SOCKETS = _constants.HV_CPU_SOCKETS
581 HV_SOUNDHW = _constants.HV_SOUNDHW
582 HV_USB_DEVICES = _constants.HV_USB_DEVICES
583 HV_VGA = _constants.HV_VGA
584 HV_KVM_EXTRA = _constants.HV_KVM_EXTRA
585 HV_KVM_MACHINE_VERSION = _constants.HV_KVM_MACHINE_VERSION
586 HV_KVM_PATH = _constants.HV_KVM_PATH
587 HV_VIF_TYPE = _constants.HV_VIF_TYPE
588 HV_VIF_SCRIPT = _constants.HV_VIF_SCRIPT
589 HV_XEN_CMD = _constants.HV_XEN_CMD
590 HV_XEN_CPUID = _constants.HV_XEN_CPUID
591 HV_VNET_HDR = _constants.HV_VNET_HDR
592 HV_VIRIDIAN = _constants.HV_VIRIDIAN
593
594 HVS_PARAMETER_TYPES = {
595   HV_KVM_PATH: VTYPE_STRING,
596   HV_BOOT_ORDER: VTYPE_STRING,
597   HV_KVM_FLOPPY_IMAGE_PATH: VTYPE_STRING,
598   HV_CDROM_IMAGE_PATH: VTYPE_STRING,
599   HV_KVM_CDROM2_IMAGE_PATH: VTYPE_STRING,
600   HV_NIC_TYPE: VTYPE_STRING,
601   HV_DISK_TYPE: VTYPE_STRING,
602   HV_KVM_CDROM_DISK_TYPE: VTYPE_STRING,
603   HV_VNC_PASSWORD_FILE: VTYPE_STRING,
604   HV_VNC_BIND_ADDRESS: VTYPE_STRING,
605   HV_VNC_TLS: VTYPE_BOOL,
606   HV_VNC_X509: VTYPE_STRING,
607   HV_VNC_X509_VERIFY: VTYPE_BOOL,
608   HV_KVM_SPICE_BIND: VTYPE_STRING,
609   HV_KVM_SPICE_IP_VERSION: VTYPE_INT,
610   HV_KVM_SPICE_PASSWORD_FILE: VTYPE_STRING,
611   HV_KVM_SPICE_LOSSLESS_IMG_COMPR: VTYPE_STRING,
612   HV_KVM_SPICE_JPEG_IMG_COMPR: VTYPE_STRING,
613   HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: VTYPE_STRING,
614   HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: VTYPE_STRING,
615   HV_KVM_SPICE_AUDIO_COMPR: VTYPE_BOOL,
616   HV_KVM_SPICE_USE_TLS: VTYPE_BOOL,
617   HV_KVM_SPICE_TLS_CIPHERS: VTYPE_STRING,
618   HV_KVM_SPICE_USE_VDAGENT: VTYPE_BOOL,
619   HV_ACPI: VTYPE_BOOL,
620   HV_PAE: VTYPE_BOOL,
621   HV_USE_BOOTLOADER: VTYPE_BOOL,
622   HV_BOOTLOADER_PATH: VTYPE_STRING,
623   HV_BOOTLOADER_ARGS: VTYPE_STRING,
624   HV_KERNEL_PATH: VTYPE_STRING,
625   HV_KERNEL_ARGS: VTYPE_STRING,
626   HV_INITRD_PATH: VTYPE_STRING,
627   HV_ROOT_PATH: VTYPE_MAYBE_STRING,
628   HV_SERIAL_CONSOLE: VTYPE_BOOL,
629   HV_SERIAL_SPEED: VTYPE_INT,
630   HV_USB_MOUSE: VTYPE_STRING,
631   HV_KEYMAP: VTYPE_STRING,
632   HV_DEVICE_MODEL: VTYPE_STRING,
633   HV_INIT_SCRIPT: VTYPE_STRING,
634   HV_MIGRATION_PORT: VTYPE_INT,
635   HV_MIGRATION_BANDWIDTH: VTYPE_INT,
636   HV_MIGRATION_DOWNTIME: VTYPE_INT,
637   HV_MIGRATION_MODE: VTYPE_STRING,
638   HV_USE_LOCALTIME: VTYPE_BOOL,
639   HV_DISK_CACHE: VTYPE_STRING,
640   HV_SECURITY_MODEL: VTYPE_STRING,
641   HV_SECURITY_DOMAIN: VTYPE_STRING,
642   HV_KVM_FLAG: VTYPE_STRING,
643   HV_VHOST_NET: VTYPE_BOOL,
644   HV_KVM_USE_CHROOT: VTYPE_BOOL,
645   HV_CPU_MASK: VTYPE_STRING,
646   HV_MEM_PATH: VTYPE_STRING,
647   HV_PASSTHROUGH: VTYPE_STRING,
648   HV_BLOCKDEV_PREFIX: VTYPE_STRING,
649   HV_REBOOT_BEHAVIOR: VTYPE_STRING,
650   HV_CPU_TYPE: VTYPE_STRING,
651   HV_CPU_CAP: VTYPE_INT,
652   HV_CPU_WEIGHT: VTYPE_INT,
653   HV_CPU_CORES: VTYPE_INT,
654   HV_CPU_THREADS: VTYPE_INT,
655   HV_CPU_SOCKETS: VTYPE_INT,
656   HV_SOUNDHW: VTYPE_STRING,
657   HV_USB_DEVICES: VTYPE_STRING,
658   HV_VGA: VTYPE_STRING,
659   HV_KVM_EXTRA: VTYPE_STRING,
660   HV_KVM_MACHINE_VERSION: VTYPE_STRING,
661   HV_VIF_TYPE: VTYPE_STRING,
662   HV_VIF_SCRIPT: VTYPE_STRING,
663   HV_XEN_CMD: VTYPE_STRING,
664   HV_XEN_CPUID: VTYPE_STRING,
665   HV_VNET_HDR: VTYPE_BOOL,
666   HV_VIRIDIAN: VTYPE_BOOL,
667   }
668
669 HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
670
671 HVS_PARAMETER_TITLES = _constants.HVS_PARAMETER_TITLES
672
673 HV_MIGRATION_COMPLETED = _constants.HV_MIGRATION_COMPLETED
674 HV_MIGRATION_ACTIVE = _constants.HV_MIGRATION_ACTIVE
675 HV_MIGRATION_FAILED = _constants.HV_MIGRATION_FAILED
676 HV_MIGRATION_CANCELLED = _constants.HV_MIGRATION_CANCELLED
677 HV_MIGRATION_VALID_STATUSES = _constants.HV_MIGRATION_VALID_STATUSES
678 HV_MIGRATION_FAILED_STATUSES = _constants.HV_MIGRATION_FAILED_STATUSES
679 HV_KVM_MIGRATION_VALID_STATUSES = _constants.HV_KVM_MIGRATION_VALID_STATUSES
680
681 HV_NODEINFO_KEY_VERSION = _constants.HV_NODEINFO_KEY_VERSION
682
683 HVST_MEMORY_TOTAL = _constants.HVST_MEMORY_TOTAL
684 HVST_MEMORY_NODE = _constants.HVST_MEMORY_NODE
685 HVST_MEMORY_HV = _constants.HVST_MEMORY_HV
686 HVST_CPU_TOTAL = _constants.HVST_CPU_TOTAL
687 HVST_CPU_NODE = _constants.HVST_CPU_NODE
688 HVSTS_PARAMETERS = _constants.HVSTS_PARAMETERS
689 HVST_DEFAULTS = _constants.HVST_DEFAULTS
690 HVSTS_PARAMETER_TYPES = _constants.HVSTS_PARAMETER_TYPES
691
692 DS_DISK_TOTAL = _constants.DS_DISK_TOTAL
693 DS_DISK_RESERVED = _constants.DS_DISK_RESERVED
694 DS_DISK_OVERHEAD = _constants.DS_DISK_OVERHEAD
695 DS_DEFAULTS = _constants.DS_DEFAULTS
696 DSS_PARAMETER_TYPES = _constants.DSS_PARAMETER_TYPES
697 DSS_PARAMETERS = _constants.DSS_PARAMETERS
698 DS_VALID_TYPES = _constants.DS_VALID_TYPES
699
700 BE_MEMORY = _constants.BE_MEMORY
701 BE_MAXMEM = _constants.BE_MAXMEM
702 BE_MINMEM = _constants.BE_MINMEM
703 BE_VCPUS = _constants.BE_VCPUS
704 BE_AUTO_BALANCE = _constants.BE_AUTO_BALANCE
705 BE_ALWAYS_FAILOVER = _constants.BE_ALWAYS_FAILOVER
706 BE_SPINDLE_USE = _constants.BE_SPINDLE_USE
707 BES_PARAMETER_TYPES = _constants.BES_PARAMETER_TYPES
708 BES_PARAMETER_TITLES = _constants.BES_PARAMETER_TITLES
709 BES_PARAMETER_COMPAT = _constants.BES_PARAMETER_COMPAT
710 BES_PARAMETERS = _constants.BES_PARAMETERS
711
712 ISPEC_MEM_SIZE = _constants.ISPEC_MEM_SIZE
713 ISPEC_CPU_COUNT = _constants.ISPEC_CPU_COUNT
714 ISPEC_DISK_COUNT = _constants.ISPEC_DISK_COUNT
715 ISPEC_DISK_SIZE = _constants.ISPEC_DISK_SIZE
716 ISPEC_NIC_COUNT = _constants.ISPEC_NIC_COUNT
717 ISPEC_SPINDLE_USE = _constants.ISPEC_SPINDLE_USE
718 ISPECS_PARAMETER_TYPES = _constants.ISPECS_PARAMETER_TYPES
719 ISPECS_PARAMETERS = _constants.ISPECS_PARAMETERS
720
721 ISPECS_MINMAX = _constants.ISPECS_MINMAX
722 ISPECS_MIN = _constants.ISPECS_MIN
723 ISPECS_MAX = _constants.ISPECS_MAX
724 ISPECS_STD = _constants.ISPECS_STD
725 IPOLICY_DTS = _constants.IPOLICY_DTS
726 IPOLICY_VCPU_RATIO = _constants.IPOLICY_VCPU_RATIO
727 IPOLICY_SPINDLE_RATIO = _constants.IPOLICY_SPINDLE_RATIO
728 ISPECS_MINMAX_KEYS = _constants.ISPECS_MINMAX_KEYS
729 IPOLICY_PARAMETERS = _constants.IPOLICY_PARAMETERS
730 IPOLICY_ALL_KEYS = _constants.IPOLICY_ALL_KEYS
731
732 ND_OOB_PROGRAM = _constants.ND_OOB_PROGRAM
733 ND_SPINDLE_COUNT = _constants.ND_SPINDLE_COUNT
734 ND_EXCLUSIVE_STORAGE = _constants.ND_EXCLUSIVE_STORAGE
735 ND_OVS = _constants.ND_OVS
736 ND_OVS_NAME = _constants.ND_OVS_NAME
737 ND_OVS_LINK = _constants.ND_OVS_LINK
738
739 NDS_PARAMETER_TYPES = _constants.NDS_PARAMETER_TYPES
740 NDS_PARAMETERS = _constants.NDS_PARAMETERS
741 NDS_PARAMETER_TITLES = _constants.NDS_PARAMETER_TITLES
742
743 LDP_RESYNC_RATE = _constants.LDP_RESYNC_RATE
744 LDP_STRIPES = _constants.LDP_STRIPES
745 LDP_BARRIERS = _constants.LDP_BARRIERS
746 LDP_NO_META_FLUSH = _constants.LDP_NO_META_FLUSH
747 LDP_DEFAULT_METAVG = _constants.LDP_DEFAULT_METAVG
748 LDP_DISK_CUSTOM = _constants.LDP_DISK_CUSTOM
749 LDP_NET_CUSTOM = _constants.LDP_NET_CUSTOM
750 LDP_PROTOCOL = _constants.LDP_PROTOCOL
751 LDP_DYNAMIC_RESYNC = _constants.LDP_DYNAMIC_RESYNC
752 LDP_PLAN_AHEAD = _constants.LDP_PLAN_AHEAD
753 LDP_FILL_TARGET = _constants.LDP_FILL_TARGET
754 LDP_DELAY_TARGET = _constants.LDP_DELAY_TARGET
755 LDP_MAX_RATE = _constants.LDP_MAX_RATE
756 LDP_MIN_RATE = _constants.LDP_MIN_RATE
757 LDP_POOL = _constants.LDP_POOL
758 LDP_ACCESS = _constants.LDP_ACCESS
759 DISK_LD_TYPES = _constants.DISK_LD_TYPES
760 DISK_LD_PARAMETERS = _constants.DISK_LD_PARAMETERS
761
762 DRBD_RESYNC_RATE = _constants.DRBD_RESYNC_RATE
763 DRBD_DATA_STRIPES = _constants.DRBD_DATA_STRIPES
764 DRBD_META_STRIPES = _constants.DRBD_META_STRIPES
765 DRBD_DISK_BARRIERS = _constants.DRBD_DISK_BARRIERS
766 DRBD_META_BARRIERS = _constants.DRBD_META_BARRIERS
767 DRBD_DEFAULT_METAVG = _constants.DRBD_DEFAULT_METAVG
768 DRBD_DISK_CUSTOM = _constants.DRBD_DISK_CUSTOM
769 DRBD_NET_CUSTOM = _constants.DRBD_NET_CUSTOM
770 DRBD_PROTOCOL = _constants.DRBD_PROTOCOL
771 DRBD_DYNAMIC_RESYNC = _constants.DRBD_DYNAMIC_RESYNC
772 DRBD_PLAN_AHEAD = _constants.DRBD_PLAN_AHEAD
773 DRBD_FILL_TARGET = _constants.DRBD_FILL_TARGET
774 DRBD_DELAY_TARGET = _constants.DRBD_DELAY_TARGET
775 DRBD_MAX_RATE = _constants.DRBD_MAX_RATE
776 DRBD_MIN_RATE = _constants.DRBD_MIN_RATE
777 LV_STRIPES = _constants.LV_STRIPES
778 RBD_ACCESS = _constants.RBD_ACCESS
779 RBD_POOL = _constants.RBD_POOL
780 DISK_DT_TYPES = _constants.DISK_DT_TYPES
781 DISK_DT_PARAMETERS = _constants.DISK_DT_PARAMETERS
782
783 DDP_LOCAL_IP = _constants.DDP_LOCAL_IP
784 DDP_REMOTE_IP = _constants.DDP_REMOTE_IP
785 DDP_PORT = _constants.DDP_PORT
786 DDP_LOCAL_MINOR = _constants.DDP_LOCAL_MINOR
787 DDP_REMOTE_MINOR = _constants.DDP_REMOTE_MINOR
788
789 # OOB supported commands
790 OOB_POWER_ON = _constants.OOB_POWER_ON
791 OOB_POWER_OFF = _constants.OOB_POWER_OFF
792 OOB_POWER_CYCLE = _constants.OOB_POWER_CYCLE
793 OOB_POWER_STATUS = _constants.OOB_POWER_STATUS
794 OOB_HEALTH = _constants.OOB_HEALTH
795 OOB_COMMANDS = _constants.OOB_COMMANDS
796
797 OOB_POWER_STATUS_POWERED = _constants.OOB_POWER_STATUS_POWERED
798
799 OOB_TIMEOUT = _constants.OOB_TIMEOUT
800 OOB_POWER_DELAY = _constants.OOB_POWER_DELAY
801
802 OOB_STATUS_OK = _constants.OOB_STATUS_OK
803 OOB_STATUS_WARNING = _constants.OOB_STATUS_WARNING
804 OOB_STATUS_CRITICAL = _constants.OOB_STATUS_CRITICAL
805 OOB_STATUS_UNKNOWN = _constants.OOB_STATUS_UNKNOWN
806 OOB_STATUSES = _constants.OOB_STATUSES
807
808 PP_DEFAULT = _constants.PP_DEFAULT
809
810 NIC_MODE = _constants.NIC_MODE
811 NIC_LINK = _constants.NIC_LINK
812 NIC_VLAN = _constants.NIC_VLAN
813 NICS_PARAMETER_TYPES = _constants.NICS_PARAMETER_TYPES
814 NICS_PARAMETERS = _constants.NICS_PARAMETERS
815
816 NIC_MODE_BRIDGED = _constants.NIC_MODE_BRIDGED
817 NIC_MODE_ROUTED = _constants.NIC_MODE_ROUTED
818 NIC_MODE_OVS = _constants.NIC_MODE_OVS
819 NIC_IP_POOL = _constants.NIC_IP_POOL
820 NIC_VALID_MODES = _constants.NIC_VALID_MODES
821
822 RESERVE_ACTION = _constants.RESERVE_ACTION
823 RELEASE_ACTION = _constants.RELEASE_ACTION
824
825 IDISK_SIZE = _constants.IDISK_SIZE
826 IDISK_SPINDLES = _constants.IDISK_SPINDLES
827 IDISK_MODE = _constants.IDISK_MODE
828 IDISK_ADOPT = _constants.IDISK_ADOPT
829 IDISK_VG = _constants.IDISK_VG
830 IDISK_METAVG = _constants.IDISK_METAVG
831 IDISK_PROVIDER = _constants.IDISK_PROVIDER
832 IDISK_NAME = _constants.IDISK_NAME
833 IDISK_PARAMS_TYPES = _constants.IDISK_PARAMS_TYPES
834 IDISK_PARAMS = _constants.IDISK_PARAMS
835
836 INIC_MAC = _constants.INIC_MAC
837 INIC_IP = _constants.INIC_IP
838 INIC_MODE = _constants.INIC_MODE
839 INIC_LINK = _constants.INIC_LINK
840 INIC_NETWORK = _constants.INIC_NETWORK
841 INIC_NAME = _constants.INIC_NAME
842 INIC_VLAN = _constants.INIC_VLAN
843 INIC_BRIDGE = _constants.INIC_BRIDGE
844 INIC_PARAMS_TYPES = _constants.INIC_PARAMS_TYPES
845 INIC_PARAMS = _constants.INIC_PARAMS
846
847 # Hypervisor constants
848 HT_XEN_PVM = _constants.HT_XEN_PVM
849 HT_FAKE = _constants.HT_FAKE
850 HT_XEN_HVM = _constants.HT_XEN_HVM
851 HT_KVM = _constants.HT_KVM
852 HT_CHROOT = _constants.HT_CHROOT
853 HT_LXC = _constants.HT_LXC
854 HYPER_TYPES = _constants.HYPER_TYPES
855 HTS_REQ_PORT = _constants.HTS_REQ_PORT
856
857 VNC_BASE_PORT = _constants.VNC_BASE_PORT
858 VNC_DEFAULT_BIND_ADDRESS = _constants.VNC_DEFAULT_BIND_ADDRESS
859 # NIC types
860 HT_NIC_RTL8139 = "rtl8139"
861 HT_NIC_NE2K_PCI = "ne2k_pci"
862 HT_NIC_NE2K_ISA = "ne2k_isa"
863 HT_NIC_I82551 = "i82551"
864 HT_NIC_I85557B = "i82557b"
865 HT_NIC_I8259ER = "i82559er"
866 HT_NIC_PCNET = "pcnet"
867 HT_NIC_E1000 = "e1000"
868 HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
869
870 HT_HVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
871   HT_NIC_RTL8139,
872   HT_NIC_NE2K_PCI,
873   HT_NIC_E1000,
874   HT_NIC_NE2K_ISA,
875   HT_NIC_PARAVIRTUAL,
876   ])
877 HT_KVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
878   HT_NIC_RTL8139,
879   HT_NIC_NE2K_PCI,
880   HT_NIC_NE2K_ISA,
881   HT_NIC_I82551,
882   HT_NIC_I85557B,
883   HT_NIC_I8259ER,
884   HT_NIC_PCNET,
885   HT_NIC_E1000,
886   HT_NIC_PARAVIRTUAL,
887   ])
888
889 # Vif types
890 # default vif type in xen-hvm
891 HT_HVM_VIF_IOEMU = "ioemu"
892 HT_HVM_VIF_VIF = "vif"
893 HT_HVM_VALID_VIF_TYPES = compat.UniqueFrozenset([
894   HT_HVM_VIF_IOEMU,
895   HT_HVM_VIF_VIF,
896   ])
897
898 # Disk types
899 HT_DISK_IOEMU = "ioemu"
900 HT_DISK_IDE = "ide"
901 HT_DISK_SCSI = "scsi"
902 HT_DISK_SD = "sd"
903 HT_DISK_MTD = "mtd"
904 HT_DISK_PFLASH = "pflash"
905
906 HT_CACHE_DEFAULT = "default"
907 HT_CACHE_NONE = "none"
908 HT_CACHE_WTHROUGH = "writethrough"
909 HT_CACHE_WBACK = "writeback"
910 HT_VALID_CACHE_TYPES = compat.UniqueFrozenset([
911   HT_CACHE_DEFAULT,
912   HT_CACHE_NONE,
913   HT_CACHE_WTHROUGH,
914   HT_CACHE_WBACK,
915   ])
916
917 HT_HVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
918   HT_DISK_PARAVIRTUAL,
919   HT_DISK_IOEMU,
920   ])
921 HT_KVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
922   HT_DISK_PARAVIRTUAL,
923   HT_DISK_IDE,
924   HT_DISK_SCSI,
925   HT_DISK_SD,
926   HT_DISK_MTD,
927   HT_DISK_PFLASH,
928   ])
929
930 # Mouse types:
931 HT_MOUSE_MOUSE = "mouse"
932 HT_MOUSE_TABLET = "tablet"
933
934 HT_KVM_VALID_MOUSE_TYPES = compat.UniqueFrozenset([
935   HT_MOUSE_MOUSE,
936   HT_MOUSE_TABLET,
937   ])
938
939 # Boot order
940 HT_BO_FLOPPY = "floppy"
941 HT_BO_CDROM = "cdrom"
942 HT_BO_DISK = "disk"
943 HT_BO_NETWORK = "network"
944
945 HT_KVM_VALID_BO_TYPES = compat.UniqueFrozenset([
946   HT_BO_FLOPPY,
947   HT_BO_CDROM,
948   HT_BO_DISK,
949   HT_BO_NETWORK,
950   ])
951
952 # SPICE lossless image compression options
953 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ = "auto_glz"
954 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ = "auto_lz"
955 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC = "quic"
956 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ = "glz"
957 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ = "lz"
958 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF = "off"
959
960 HT_KVM_SPICE_VALID_LOSSLESS_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
961   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ,
962   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ,
963   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC,
964   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ,
965   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ,
966   HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF,
967   ])
968
969 # SPICE lossy image compression options (valid for both jpeg and zlib-glz)
970 HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO = "auto"
971 HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER = "never"
972 HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS = "always"
973
974 HT_KVM_SPICE_VALID_LOSSY_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
975   HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO,
976   HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER,
977   HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS,
978   ])
979
980 # SPICE video stream detection
981 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF = "off"
982 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL = "all"
983 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER = "filter"
984
985 HT_KVM_SPICE_VALID_VIDEO_STREAM_DETECTION_OPTIONS = compat.UniqueFrozenset([
986   HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF,
987   HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL,
988   HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER,
989   ])
990
991 # Security models
992 HT_SM_NONE = "none"
993 HT_SM_USER = "user"
994 HT_SM_POOL = "pool"
995
996 HT_KVM_VALID_SM_TYPES = compat.UniqueFrozenset([
997   HT_SM_NONE,
998   HT_SM_USER,
999   HT_SM_POOL,
1000   ])
1001
1002 # Kvm flag values
1003 HT_KVM_ENABLED = "enabled"
1004 HT_KVM_DISABLED = "disabled"
1005
1006 HT_KVM_FLAG_VALUES = compat.UniqueFrozenset([HT_KVM_ENABLED, HT_KVM_DISABLED])
1007
1008 # Migration type
1009 HT_MIGRATION_LIVE = _constants.HT_MIGRATION_LIVE
1010 HT_MIGRATION_NONLIVE = _constants.HT_MIGRATION_NONLIVE
1011 HT_MIGRATION_MODES = _constants.HT_MIGRATION_MODES
1012
1013 # Cluster Verify steps
1014 VERIFY_NPLUSONE_MEM = _constants.VERIFY_NPLUSONE_MEM
1015 VERIFY_OPTIONAL_CHECKS = _constants.VERIFY_OPTIONAL_CHECKS
1016
1017 # Cluster Verify error classes
1018 CV_TCLUSTER = _constants.CV_TCLUSTER
1019 CV_TGROUP = _constants.CV_TGROUP
1020 CV_TNODE = _constants.CV_TNODE
1021 CV_TINSTANCE = _constants.CV_TINSTANCE
1022
1023 # Cluster Verify error codes and documentation
1024 CV_ECLUSTERCFG = _constants.CV_ECLUSTERCFG
1025 CV_ECLUSTERCERT = _constants.CV_ECLUSTERCERT
1026 CV_ECLUSTERFILECHECK = _constants.CV_ECLUSTERFILECHECK
1027 CV_ECLUSTERDANGLINGNODES = _constants.CV_ECLUSTERDANGLINGNODES
1028 CV_ECLUSTERDANGLINGINST = _constants.CV_ECLUSTERDANGLINGINST
1029 CV_EGROUPDIFFERENTPVSIZE = _constants.CV_EGROUPDIFFERENTPVSIZE
1030 CV_EINSTANCEBADNODE = _constants.CV_EINSTANCEBADNODE
1031 CV_EINSTANCEDOWN = _constants.CV_EINSTANCEDOWN
1032 CV_EINSTANCELAYOUT = _constants.CV_EINSTANCELAYOUT
1033 CV_EINSTANCEMISSINGDISK = _constants.CV_EINSTANCEMISSINGDISK
1034 CV_EINSTANCEFAULTYDISK = _constants.CV_EINSTANCEFAULTYDISK
1035 CV_EINSTANCEWRONGNODE = _constants.CV_EINSTANCEWRONGNODE
1036 CV_EINSTANCESPLITGROUPS = _constants.CV_EINSTANCESPLITGROUPS
1037 CV_EINSTANCEPOLICY = _constants.CV_EINSTANCEPOLICY
1038 CV_EINSTANCEUNSUITABLENODE = _constants.CV_EINSTANCEUNSUITABLENODE
1039 CV_EINSTANCEMISSINGCFGPARAMETER = _constants.CV_EINSTANCEMISSINGCFGPARAMETER
1040 CV_ENODEDRBD = _constants.CV_ENODEDRBD
1041 CV_ENODEDRBDVERSION = _constants.CV_ENODEDRBDVERSION
1042 CV_ENODEDRBDHELPER = _constants.CV_ENODEDRBDHELPER
1043 CV_ENODEFILECHECK = _constants.CV_ENODEFILECHECK
1044 CV_ENODEHOOKS = _constants.CV_ENODEHOOKS
1045 CV_ENODEHV = _constants.CV_ENODEHV
1046 CV_ENODELVM = _constants.CV_ENODELVM
1047 CV_ENODEN1 = _constants.CV_ENODEN1
1048 CV_ENODENET = _constants.CV_ENODENET
1049 CV_ENODEOS = _constants.CV_ENODEOS
1050 CV_ENODEORPHANINSTANCE = _constants.CV_ENODEORPHANINSTANCE
1051 CV_ENODEORPHANLV = _constants.CV_ENODEORPHANLV
1052 CV_ENODERPC = _constants.CV_ENODERPC
1053 CV_ENODESSH = _constants.CV_ENODESSH
1054 CV_ENODEVERSION = _constants.CV_ENODEVERSION
1055 CV_ENODESETUP = _constants.CV_ENODESETUP
1056 CV_ENODETIME = _constants.CV_ENODETIME
1057 CV_ENODEOOBPATH = _constants.CV_ENODEOOBPATH
1058 CV_ENODEUSERSCRIPTS = _constants.CV_ENODEUSERSCRIPTS
1059 CV_ENODEFILESTORAGEPATHS = _constants.CV_ENODEFILESTORAGEPATHS
1060 CV_ENODEFILESTORAGEPATHUNUSABLE = _constants.CV_ENODEFILESTORAGEPATHUNUSABLE
1061 CV_ENODESHAREDFILESTORAGEPATHUNUSABLE = \
1062   _constants.CV_ENODESHAREDFILESTORAGEPATHUNUSABLE
1063
1064 CV_ALL_ECODES = _constants.CV_ALL_ECODES
1065 CV_ALL_ECODES_STRINGS = _constants.CV_ALL_ECODES_STRINGS
1066
1067 NV_BRIDGES = _constants.NV_BRIDGES
1068 NV_DRBDHELPER = _constants.NV_DRBDHELPER
1069 NV_DRBDVERSION = _constants.NV_DRBDVERSION
1070 NV_DRBDLIST = _constants.NV_DRBDLIST
1071 NV_EXCLUSIVEPVS = _constants.NV_EXCLUSIVEPVS
1072 NV_FILELIST = _constants.NV_FILELIST
1073 NV_ACCEPTED_STORAGE_PATHS = _constants.NV_ACCEPTED_STORAGE_PATHS
1074 NV_FILE_STORAGE_PATH = _constants.NV_FILE_STORAGE_PATH
1075 NV_SHARED_FILE_STORAGE_PATH = _constants.NV_SHARED_FILE_STORAGE_PATH
1076 NV_HVINFO = _constants.NV_HVINFO
1077 NV_HVPARAMS = _constants.NV_HVPARAMS
1078 NV_HYPERVISOR = _constants.NV_HYPERVISOR
1079 NV_INSTANCELIST = _constants.NV_INSTANCELIST
1080 NV_LVLIST = _constants.NV_LVLIST
1081 NV_MASTERIP = _constants.NV_MASTERIP
1082 NV_NODELIST = _constants.NV_NODELIST
1083 NV_NODENETTEST = _constants.NV_NODENETTEST
1084 NV_NODESETUP = _constants.NV_NODESETUP
1085 NV_OOB_PATHS = _constants.NV_OOB_PATHS
1086 NV_OSLIST = _constants.NV_OSLIST
1087 NV_PVLIST = _constants.NV_PVLIST
1088 NV_TIME = _constants.NV_TIME
1089 NV_USERSCRIPTS = _constants.NV_USERSCRIPTS
1090 NV_VERSION = _constants.NV_VERSION
1091 NV_VGLIST = _constants.NV_VGLIST
1092 NV_VMNODES = _constants.NV_VMNODES
1093
1094 INSTST_RUNNING = _constants.INSTST_RUNNING
1095 INSTST_ADMINDOWN = _constants.INSTST_ADMINDOWN
1096 INSTST_ADMINOFFLINE = _constants.INSTST_ADMINOFFLINE
1097 INSTST_NODEOFFLINE = _constants.INSTST_NODEOFFLINE
1098 INSTST_NODEDOWN = _constants.INSTST_NODEDOWN
1099 INSTST_WRONGNODE = _constants.INSTST_WRONGNODE
1100 INSTST_ERRORUP = _constants.INSTST_ERRORUP
1101 INSTST_ERRORDOWN = _constants.INSTST_ERRORDOWN
1102 INSTST_ALL = _constants.INSTST_ALL
1103
1104 # Admin states
1105 ADMINST_UP = _constants.ADMINST_UP
1106 ADMINST_DOWN = _constants.ADMINST_DOWN
1107 ADMINST_OFFLINE = _constants.ADMINST_OFFLINE
1108 ADMINST_ALL = _constants.ADMINST_ALL
1109
1110 # Node roles
1111 NR_REGULAR = _constants.NR_REGULAR
1112 NR_MASTER = _constants.NR_MASTER
1113 NR_MCANDIDATE = _constants.NR_MCANDIDATE
1114 NR_DRAINED = _constants.NR_DRAINED
1115 NR_OFFLINE = _constants.NR_OFFLINE
1116 NR_ALL = _constants.NR_ALL
1117
1118 SSL_CERT_EXPIRATION_WARN = _constants.SSL_CERT_EXPIRATION_WARN
1119 SSL_CERT_EXPIRATION_ERROR = _constants.SSL_CERT_EXPIRATION_ERROR
1120
1121 # Allocator framework constants
1122 IALLOCATOR_VERSION = _constants.IALLOCATOR_VERSION
1123 IALLOCATOR_DIR_IN = _constants.IALLOCATOR_DIR_IN
1124 IALLOCATOR_DIR_OUT = _constants.IALLOCATOR_DIR_OUT
1125 VALID_IALLOCATOR_DIRECTIONS = _constants.VALID_IALLOCATOR_DIRECTIONS
1126
1127 IALLOCATOR_MODE_ALLOC = _constants.IALLOCATOR_MODE_ALLOC
1128 IALLOCATOR_MODE_RELOC = _constants.IALLOCATOR_MODE_RELOC
1129 IALLOCATOR_MODE_CHG_GROUP = _constants.IALLOCATOR_MODE_CHG_GROUP
1130 IALLOCATOR_MODE_NODE_EVAC = _constants.IALLOCATOR_MODE_NODE_EVAC
1131 IALLOCATOR_MODE_MULTI_ALLOC = _constants.IALLOCATOR_MODE_MULTI_ALLOC
1132 VALID_IALLOCATOR_MODES = _constants.VALID_IALLOCATOR_MODES
1133
1134 IALLOCATOR_SEARCH_PATH = _constants.IALLOCATOR_SEARCH_PATH
1135 DEFAULT_IALLOCATOR_SHORTCUT = _constants.DEFAULT_IALLOCATOR_SHORTCUT
1136
1137 # Node evacuation
1138 NODE_EVAC_PRI = _constants.NODE_EVAC_PRI
1139 NODE_EVAC_SEC = _constants.NODE_EVAC_SEC
1140 NODE_EVAC_ALL = _constants.NODE_EVAC_ALL
1141 NODE_EVAC_MODES = _constants.NODE_EVAC_MODES
1142
1143 JOB_QUEUE_VERSION = _constants.JOB_QUEUE_VERSION
1144 JOB_QUEUE_SIZE_HARD_LIMIT = _constants.JOB_QUEUE_SIZE_HARD_LIMIT
1145 JOB_QUEUE_FILES_PERMS = _constants.JOB_QUEUE_FILES_PERMS
1146
1147 JOB_ID_TEMPLATE = r"\d+"
1148 JOB_FILE_RE = re.compile(r"^job-(%s)$" % JOB_ID_TEMPLATE)
1149
1150 JOB_NOTCHANGED = _constants.JOB_NOTCHANGED
1151
1152 # Job status
1153 JOB_STATUS_QUEUED = _constants.JOB_STATUS_QUEUED
1154 JOB_STATUS_WAITING = _constants.JOB_STATUS_WAITING
1155 JOB_STATUS_CANCELING = _constants.JOB_STATUS_CANCELING
1156 JOB_STATUS_RUNNING = _constants.JOB_STATUS_RUNNING
1157 JOB_STATUS_CANCELED = _constants.JOB_STATUS_CANCELED
1158 JOB_STATUS_SUCCESS = _constants.JOB_STATUS_SUCCESS
1159 JOB_STATUS_ERROR = _constants.JOB_STATUS_ERROR
1160 JOBS_PENDING = _constants.JOBS_PENDING
1161 JOBS_FINALIZED = _constants.JOBS_FINALIZED
1162 JOB_STATUS_ALL = _constants.JOB_STATUS_ALL
1163
1164 # OpCode status
1165 # not yet finalized
1166 OP_STATUS_QUEUED = _constants.OP_STATUS_QUEUED
1167 OP_STATUS_WAITING = _constants.OP_STATUS_WAITING
1168 OP_STATUS_CANCELING = _constants.OP_STATUS_CANCELING
1169 OP_STATUS_RUNNING = _constants.OP_STATUS_RUNNING
1170 # finalized
1171 OP_STATUS_CANCELED = _constants.OP_STATUS_CANCELED
1172 OP_STATUS_SUCCESS = _constants.OP_STATUS_SUCCESS
1173 OP_STATUS_ERROR = _constants.OP_STATUS_ERROR
1174 OPS_FINALIZED = _constants.OPS_FINALIZED
1175
1176 # OpCode priority
1177 OP_PRIO_LOWEST = _constants.OP_PRIO_LOWEST
1178 OP_PRIO_HIGHEST = _constants.OP_PRIO_HIGHEST
1179 OP_PRIO_LOW = _constants.OP_PRIO_LOW
1180 OP_PRIO_NORMAL = _constants.OP_PRIO_NORMAL
1181 OP_PRIO_HIGH = _constants.OP_PRIO_HIGH
1182 OP_PRIO_SUBMIT_VALID = _constants.OP_PRIO_SUBMIT_VALID
1183 OP_PRIO_DEFAULT = _constants.OP_PRIO_DEFAULT
1184
1185 LOCKS_REPLACE = _constants.LOCKS_REPLACE
1186 LOCKS_APPEND = _constants.LOCKS_APPEND
1187
1188 LOCK_ATTEMPTS_TIMEOUT = _constants.LOCK_ATTEMPTS_TIMEOUT
1189 LOCK_ATTEMPTS_MAXWAIT = _constants.LOCK_ATTEMPTS_MAXWAIT
1190 LOCK_ATTEMPTS_MINWAIT = _constants.LOCK_ATTEMPTS_MINWAIT
1191
1192 # Execution log types
1193 ELOG_MESSAGE = _constants.ELOG_MESSAGE
1194 ELOG_REMOTE_IMPORT = _constants.ELOG_REMOTE_IMPORT
1195 ELOG_JQUEUE_TEST = _constants.ELOG_JQUEUE_TEST
1196
1197 # /etc/hosts modification
1198 ETC_HOSTS_ADD = "add"
1199 ETC_HOSTS_REMOVE = "remove"
1200
1201 # Job queue test
1202 JQT_MSGPREFIX = "TESTMSG="
1203 JQT_EXPANDNAMES = "expandnames"
1204 JQT_EXEC = "exec"
1205 JQT_LOGMSG = "logmsg"
1206 JQT_STARTMSG = "startmsg"
1207 JQT_ALL = compat.UniqueFrozenset([
1208   JQT_EXPANDNAMES,
1209   JQT_EXEC,
1210   JQT_LOGMSG,
1211   JQT_STARTMSG,
1212   ])
1213
1214 # Query resources
1215 QR_CLUSTER = "cluster"
1216 QR_INSTANCE = "instance"
1217 QR_NODE = "node"
1218 QR_LOCK = "lock"
1219 QR_GROUP = "group"
1220 QR_OS = "os"
1221 QR_JOB = "job"
1222 QR_EXPORT = "export"
1223 QR_NETWORK = "network"
1224 QR_EXTSTORAGE = "extstorage"
1225
1226 #: List of resources which can be queried using L{opcodes.OpQuery}
1227 QR_VIA_OP = compat.UniqueFrozenset([
1228   QR_CLUSTER,
1229   QR_INSTANCE,
1230   QR_NODE,
1231   QR_GROUP,
1232   QR_OS,
1233   QR_EXPORT,
1234   QR_NETWORK,
1235   QR_EXTSTORAGE,
1236   ])
1237
1238 #: List of resources which can be queried using Local UniX Interface
1239 QR_VIA_LUXI = QR_VIA_OP.union([
1240   QR_LOCK,
1241   QR_JOB,
1242   ])
1243
1244 #: List of resources which can be queried using RAPI
1245 QR_VIA_RAPI = QR_VIA_LUXI
1246
1247 # Query field types
1248 QFT_UNKNOWN = "unknown"
1249 QFT_TEXT = "text"
1250 QFT_BOOL = "bool"
1251 QFT_NUMBER = "number"
1252 QFT_UNIT = "unit"
1253 QFT_TIMESTAMP = "timestamp"
1254 QFT_OTHER = "other"
1255
1256 #: All query field types
1257 QFT_ALL = compat.UniqueFrozenset([
1258   QFT_UNKNOWN,
1259   QFT_TEXT,
1260   QFT_BOOL,
1261   QFT_NUMBER,
1262   QFT_UNIT,
1263   QFT_TIMESTAMP,
1264   QFT_OTHER,
1265   ])
1266
1267 # Query result field status (don't change or reuse values as they're used by
1268 # clients)
1269 #: Normal field status
1270 RS_NORMAL = 0
1271 #: Unknown field
1272 RS_UNKNOWN = 1
1273 #: No data (e.g. RPC error), can be used instead of L{RS_OFFLINE}
1274 RS_NODATA = 2
1275 #: Value unavailable/unsupported for item; if this field is supported
1276 #: but we cannot get the data for the moment, RS_NODATA or
1277 #: RS_OFFLINE should be used
1278 RS_UNAVAIL = 3
1279 #: Resource marked offline
1280 RS_OFFLINE = 4
1281
1282 RS_ALL = compat.UniqueFrozenset([
1283   RS_NORMAL,
1284   RS_UNKNOWN,
1285   RS_NODATA,
1286   RS_UNAVAIL,
1287   RS_OFFLINE,
1288   ])
1289
1290 #: Dictionary with special field cases and their verbose/terse formatting
1291 RSS_DESCRIPTION = {
1292   RS_UNKNOWN: ("(unknown)", "??"),
1293   RS_NODATA: ("(nodata)", "?"),
1294   RS_OFFLINE: ("(offline)", "*"),
1295   RS_UNAVAIL: ("(unavail)", "-"),
1296   }
1297
1298 # max dynamic devices
1299 MAX_NICS = 8
1300 MAX_DISKS = 16
1301
1302 # SSCONF file prefix
1303 SSCONF_FILEPREFIX = "ssconf_"
1304 # SSCONF keys
1305 SS_CLUSTER_NAME = "cluster_name"
1306 SS_CLUSTER_TAGS = "cluster_tags"
1307 SS_FILE_STORAGE_DIR = "file_storage_dir"
1308 SS_SHARED_FILE_STORAGE_DIR = "shared_file_storage_dir"
1309 SS_MASTER_CANDIDATES = "master_candidates"
1310 SS_MASTER_CANDIDATES_IPS = "master_candidates_ips"
1311 SS_MASTER_IP = "master_ip"
1312 SS_MASTER_NETDEV = "master_netdev"
1313 SS_MASTER_NETMASK = "master_netmask"
1314 SS_MASTER_NODE = "master_node"
1315 SS_NODE_LIST = "node_list"
1316 SS_NODE_PRIMARY_IPS = "node_primary_ips"
1317 SS_NODE_SECONDARY_IPS = "node_secondary_ips"
1318 SS_OFFLINE_NODES = "offline_nodes"
1319 SS_ONLINE_NODES = "online_nodes"
1320 SS_PRIMARY_IP_FAMILY = "primary_ip_family"
1321 SS_INSTANCE_LIST = "instance_list"
1322 SS_RELEASE_VERSION = "release_version"
1323 SS_HYPERVISOR_LIST = "hypervisor_list"
1324 SS_MAINTAIN_NODE_HEALTH = "maintain_node_health"
1325 SS_UID_POOL = "uid_pool"
1326 SS_NODEGROUPS = "nodegroups"
1327 SS_NETWORKS = "networks"
1328
1329 # This is not a complete SSCONF key, but the prefix for the hypervisor keys
1330 SS_HVPARAMS_PREF = "hvparams_"
1331
1332 # Hvparams keys:
1333 SS_HVPARAMS_XEN_PVM = SS_HVPARAMS_PREF + HT_XEN_PVM
1334 SS_HVPARAMS_XEN_FAKE = SS_HVPARAMS_PREF + HT_FAKE
1335 SS_HVPARAMS_XEN_HVM = SS_HVPARAMS_PREF + HT_XEN_HVM
1336 SS_HVPARAMS_XEN_KVM = SS_HVPARAMS_PREF + HT_KVM
1337 SS_HVPARAMS_XEN_CHROOT = SS_HVPARAMS_PREF + HT_CHROOT
1338 SS_HVPARAMS_XEN_LXC = SS_HVPARAMS_PREF + HT_LXC
1339
1340 VALID_SS_HVPARAMS_KEYS = compat.UniqueFrozenset([
1341   SS_HVPARAMS_XEN_PVM,
1342   SS_HVPARAMS_XEN_FAKE,
1343   SS_HVPARAMS_XEN_HVM,
1344   SS_HVPARAMS_XEN_KVM,
1345   SS_HVPARAMS_XEN_CHROOT,
1346   SS_HVPARAMS_XEN_LXC,
1347   ])
1348
1349 SS_FILE_PERMS = 0444
1350
1351 # cluster wide default parameters
1352 DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM
1353
1354 HVC_DEFAULTS = {
1355   HT_XEN_PVM: {
1356     HV_USE_BOOTLOADER: False,
1357     HV_BOOTLOADER_PATH: XEN_BOOTLOADER,
1358     HV_BOOTLOADER_ARGS: "",
1359     HV_KERNEL_PATH: XEN_KERNEL,
1360     HV_INITRD_PATH: "",
1361     HV_ROOT_PATH: "/dev/xvda1",
1362     HV_KERNEL_ARGS: "ro",
1363     HV_MIGRATION_PORT: 8002,
1364     HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1365     HV_BLOCKDEV_PREFIX: "sd",
1366     HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1367     HV_CPU_MASK: CPU_PINNING_ALL,
1368     HV_CPU_CAP: 0,
1369     HV_CPU_WEIGHT: 256,
1370     HV_VIF_SCRIPT: "",
1371     HV_XEN_CMD: XEN_CMD_XM,
1372     HV_XEN_CPUID: "",
1373     HV_SOUNDHW: "",
1374     },
1375   HT_XEN_HVM: {
1376     HV_BOOT_ORDER: "cd",
1377     HV_CDROM_IMAGE_PATH: "",
1378     HV_NIC_TYPE: HT_NIC_RTL8139,
1379     HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1380     HV_VNC_BIND_ADDRESS: IP4_ADDRESS_ANY,
1381     HV_VNC_PASSWORD_FILE: pathutils.VNC_PASSWORD_FILE,
1382     HV_ACPI: True,
1383     HV_PAE: True,
1384     HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
1385     HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
1386     HV_MIGRATION_PORT: 8002,
1387     HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
1388     HV_USE_LOCALTIME: False,
1389     HV_BLOCKDEV_PREFIX: "hd",
1390     HV_PASSTHROUGH: "",
1391     HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1392     HV_CPU_MASK: CPU_PINNING_ALL,
1393     HV_CPU_CAP: 0,
1394     HV_CPU_WEIGHT: 256,
1395     HV_VIF_TYPE: HT_HVM_VIF_IOEMU,
1396     HV_VIF_SCRIPT: "",
1397     HV_VIRIDIAN: False,
1398     HV_XEN_CMD: XEN_CMD_XM,
1399     HV_XEN_CPUID: "",
1400     HV_SOUNDHW: "",
1401     },
1402   HT_KVM: {
1403     HV_KVM_PATH: KVM_PATH,
1404     HV_KERNEL_PATH: KVM_KERNEL,
1405     HV_INITRD_PATH: "",
1406     HV_KERNEL_ARGS: "ro",
1407     HV_ROOT_PATH: "/dev/vda1",
1408     HV_ACPI: True,
1409     HV_SERIAL_CONSOLE: True,
1410     HV_SERIAL_SPEED: 38400,
1411     HV_VNC_BIND_ADDRESS: "",
1412     HV_VNC_TLS: False,
1413     HV_VNC_X509: "",
1414     HV_VNC_X509_VERIFY: False,
1415     HV_VNC_PASSWORD_FILE: "",
1416     HV_KVM_SPICE_BIND: "",
1417     HV_KVM_SPICE_IP_VERSION: IFACE_NO_IP_VERSION_SPECIFIED,
1418     HV_KVM_SPICE_PASSWORD_FILE: "",
1419     HV_KVM_SPICE_LOSSLESS_IMG_COMPR: "",
1420     HV_KVM_SPICE_JPEG_IMG_COMPR: "",
1421     HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: "",
1422     HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: "",
1423     HV_KVM_SPICE_AUDIO_COMPR: True,
1424     HV_KVM_SPICE_USE_TLS: False,
1425     HV_KVM_SPICE_TLS_CIPHERS: OPENSSL_CIPHERS,
1426     HV_KVM_SPICE_USE_VDAGENT: True,
1427     HV_KVM_FLOPPY_IMAGE_PATH: "",
1428     HV_CDROM_IMAGE_PATH: "",
1429     HV_KVM_CDROM2_IMAGE_PATH: "",
1430     HV_BOOT_ORDER: HT_BO_DISK,
1431     HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
1432     HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1433     HV_KVM_CDROM_DISK_TYPE: "",
1434     HV_USB_MOUSE: "",
1435     HV_KEYMAP: "",
1436     HV_MIGRATION_PORT: 8102,
1437     HV_MIGRATION_BANDWIDTH: 32, # MiB/s
1438     HV_MIGRATION_DOWNTIME: 30,  # ms
1439     HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1440     HV_USE_LOCALTIME: False,
1441     HV_DISK_CACHE: HT_CACHE_DEFAULT,
1442     HV_SECURITY_MODEL: HT_SM_NONE,
1443     HV_SECURITY_DOMAIN: "",
1444     HV_KVM_FLAG: "",
1445     HV_VHOST_NET: False,
1446     HV_KVM_USE_CHROOT: False,
1447     HV_MEM_PATH: "",
1448     HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1449     HV_CPU_MASK: CPU_PINNING_ALL,
1450     HV_CPU_TYPE: "",
1451     HV_CPU_CORES: 0,
1452     HV_CPU_THREADS: 0,
1453     HV_CPU_SOCKETS: 0,
1454     HV_SOUNDHW: "",
1455     HV_USB_DEVICES: "",
1456     HV_VGA: "",
1457     HV_KVM_EXTRA: "",
1458     HV_KVM_MACHINE_VERSION: "",
1459     HV_VNET_HDR: True,
1460     },
1461   HT_FAKE: {
1462     HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1463   },
1464   HT_CHROOT: {
1465     HV_INIT_SCRIPT: "/ganeti-chroot",
1466     },
1467   HT_LXC: {
1468     HV_CPU_MASK: "",
1469     },
1470   }
1471
1472 HVC_GLOBALS = compat.UniqueFrozenset([
1473   HV_MIGRATION_PORT,
1474   HV_MIGRATION_BANDWIDTH,
1475   HV_MIGRATION_MODE,
1476   HV_XEN_CMD,
1477   ])
1478
1479 BEC_DEFAULTS = {
1480   BE_MINMEM: 128,
1481   BE_MAXMEM: 128,
1482   BE_VCPUS: 1,
1483   BE_AUTO_BALANCE: True,
1484   BE_ALWAYS_FAILOVER: False,
1485   BE_SPINDLE_USE: 1,
1486   }
1487
1488 NDC_DEFAULTS = {
1489   ND_OOB_PROGRAM: "",
1490   ND_SPINDLE_COUNT: 1,
1491   ND_EXCLUSIVE_STORAGE: False,
1492   ND_OVS: False,
1493   ND_OVS_NAME: DEFAULT_OVS,
1494   ND_OVS_LINK: ""
1495   }
1496
1497 NDC_GLOBALS = compat.UniqueFrozenset([
1498   ND_EXCLUSIVE_STORAGE,
1499   ])
1500
1501 DISK_LD_DEFAULTS = {
1502   DT_DRBD8: {
1503     LDP_RESYNC_RATE: CLASSIC_DRBD_SYNC_SPEED,
1504     LDP_BARRIERS: _constants.DRBD_BARRIERS,
1505     LDP_NO_META_FLUSH: _constants.DRBD_NO_META_FLUSH,
1506     LDP_DEFAULT_METAVG: DEFAULT_VG,
1507     LDP_DISK_CUSTOM: "",
1508     LDP_NET_CUSTOM: "",
1509     LDP_PROTOCOL: DRBD_DEFAULT_NET_PROTOCOL,
1510     LDP_DYNAMIC_RESYNC: False,
1511
1512     # The default values for the DRBD dynamic resync speed algorithm
1513     # are taken from the drbsetup 8.3.11 man page, except for
1514     # c-plan-ahead (that we don't need to set to 0, because we have a
1515     # separate option to enable it) and for c-max-rate, that we cap to
1516     # the default value for the static resync rate.
1517     LDP_PLAN_AHEAD: 20, # ds
1518     LDP_FILL_TARGET: 0, # sectors
1519     LDP_DELAY_TARGET: 1, # ds
1520     LDP_MAX_RATE: CLASSIC_DRBD_SYNC_SPEED, # KiB/s
1521     LDP_MIN_RATE: 4 * 1024, # KiB/s
1522     },
1523   DT_PLAIN: {
1524     LDP_STRIPES: _constants.LVM_STRIPECOUNT
1525     },
1526   DT_FILE: {},
1527   DT_SHARED_FILE: {},
1528   DT_BLOCK: {},
1529   DT_RBD: {
1530     LDP_POOL: "rbd",
1531     LDP_ACCESS: DISK_KERNELSPACE,
1532     },
1533   DT_EXT: {},
1534   }
1535
1536 # readability shortcuts
1537 _LV_DEFAULTS = DISK_LD_DEFAULTS[DT_PLAIN]
1538 _DRBD_DEFAULTS = DISK_LD_DEFAULTS[DT_DRBD8]
1539
1540 DISK_DT_DEFAULTS = {
1541   DT_PLAIN: {
1542     LV_STRIPES: DISK_LD_DEFAULTS[DT_PLAIN][LDP_STRIPES],
1543     },
1544   DT_DRBD8: {
1545     DRBD_RESYNC_RATE: _DRBD_DEFAULTS[LDP_RESYNC_RATE],
1546     DRBD_DATA_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1547     DRBD_META_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1548     DRBD_DISK_BARRIERS: _DRBD_DEFAULTS[LDP_BARRIERS],
1549     DRBD_META_BARRIERS: _DRBD_DEFAULTS[LDP_NO_META_FLUSH],
1550     DRBD_DEFAULT_METAVG: _DRBD_DEFAULTS[LDP_DEFAULT_METAVG],
1551     DRBD_DISK_CUSTOM: _DRBD_DEFAULTS[LDP_DISK_CUSTOM],
1552     DRBD_NET_CUSTOM: _DRBD_DEFAULTS[LDP_NET_CUSTOM],
1553     DRBD_PROTOCOL: _DRBD_DEFAULTS[LDP_PROTOCOL],
1554     DRBD_DYNAMIC_RESYNC: _DRBD_DEFAULTS[LDP_DYNAMIC_RESYNC],
1555     DRBD_PLAN_AHEAD: _DRBD_DEFAULTS[LDP_PLAN_AHEAD],
1556     DRBD_FILL_TARGET: _DRBD_DEFAULTS[LDP_FILL_TARGET],
1557     DRBD_DELAY_TARGET: _DRBD_DEFAULTS[LDP_DELAY_TARGET],
1558     DRBD_MAX_RATE: _DRBD_DEFAULTS[LDP_MAX_RATE],
1559     DRBD_MIN_RATE: _DRBD_DEFAULTS[LDP_MIN_RATE],
1560     },
1561   DT_DISKLESS: {},
1562   DT_FILE: {},
1563   DT_SHARED_FILE: {},
1564   DT_BLOCK: {},
1565   DT_RBD: {
1566     RBD_POOL: DISK_LD_DEFAULTS[DT_RBD][LDP_POOL],
1567     RBD_ACCESS: DISK_LD_DEFAULTS[DT_RBD][LDP_ACCESS],
1568     },
1569   DT_EXT: {},
1570   }
1571
1572 # we don't want to export the shortcuts
1573 del _LV_DEFAULTS, _DRBD_DEFAULTS
1574
1575 NICC_DEFAULTS = {
1576   NIC_MODE: NIC_MODE_BRIDGED,
1577   NIC_LINK: DEFAULT_BRIDGE,
1578   NIC_VLAN: VALUE_HS_NOTHING,
1579   }
1580
1581 # All of the following values are quite arbitrarily - there are no
1582 # "good" defaults, these must be customised per-site
1583 ISPECS_MINMAX_DEFAULTS = {
1584   ISPECS_MIN: {
1585     ISPEC_MEM_SIZE: 128,
1586     ISPEC_CPU_COUNT: 1,
1587     ISPEC_DISK_COUNT: 1,
1588     ISPEC_DISK_SIZE: 1024,
1589     ISPEC_NIC_COUNT: 1,
1590     ISPEC_SPINDLE_USE: 1,
1591     },
1592   ISPECS_MAX: {
1593     ISPEC_MEM_SIZE: 32768,
1594     ISPEC_CPU_COUNT: 8,
1595     ISPEC_DISK_COUNT: MAX_DISKS,
1596     ISPEC_DISK_SIZE: 1024 * 1024,
1597     ISPEC_NIC_COUNT: MAX_NICS,
1598     ISPEC_SPINDLE_USE: 12,
1599     },
1600   }
1601 IPOLICY_DEFAULTS = {
1602   ISPECS_MINMAX: [ISPECS_MINMAX_DEFAULTS],
1603   ISPECS_STD: {
1604     ISPEC_MEM_SIZE: 128,
1605     ISPEC_CPU_COUNT: 1,
1606     ISPEC_DISK_COUNT: 1,
1607     ISPEC_DISK_SIZE: 1024,
1608     ISPEC_NIC_COUNT: 1,
1609     ISPEC_SPINDLE_USE: 1,
1610     },
1611   IPOLICY_DTS: list(DISK_TEMPLATES),
1612   IPOLICY_VCPU_RATIO: 4.0,
1613   IPOLICY_SPINDLE_RATIO: 32.0,
1614   }
1615
1616 MASTER_POOL_SIZE_DEFAULT = 10
1617
1618 # Exclusive storage:
1619 # Error margin used to compare physical disks
1620 PART_MARGIN = .01
1621 # Space reserved when creating instance disks
1622 PART_RESERVED = .02
1623
1624 CONFD_PROTOCOL_VERSION = _constants.CONFD_PROTOCOL_VERSION
1625
1626 CONFD_REQ_PING = _constants.CONFD_REQ_PING
1627 CONFD_REQ_NODE_ROLE_BYNAME = _constants.CONFD_REQ_NODE_ROLE_BYNAME
1628 CONFD_REQ_NODE_PIP_BY_INSTANCE_IP = _constants.CONFD_REQ_NODE_PIP_BY_INSTANCE_IP
1629 CONFD_REQ_CLUSTER_MASTER = _constants.CONFD_REQ_CLUSTER_MASTER
1630 CONFD_REQ_NODE_PIP_LIST = _constants.CONFD_REQ_NODE_PIP_LIST
1631 CONFD_REQ_MC_PIP_LIST = _constants.CONFD_REQ_MC_PIP_LIST
1632 CONFD_REQ_INSTANCES_IPS_LIST = _constants.CONFD_REQ_INSTANCES_IPS_LIST
1633 CONFD_REQ_NODE_DRBD = _constants.CONFD_REQ_NODE_DRBD
1634 CONFD_REQ_NODE_INSTANCES = _constants.CONFD_REQ_NODE_INSTANCES
1635 CONFD_REQS = _constants.CONFD_REQS
1636
1637 # Confd request query fields. These are used to narrow down queries.
1638 # These must be strings rather than integers, because json-encoding
1639 # converts them to strings anyway, as they're used as dict-keys.
1640 CONFD_REQQ_LINK = _constants.CONFD_REQQ_LINK
1641 CONFD_REQQ_IP = _constants.CONFD_REQQ_IP
1642 CONFD_REQQ_IPLIST = _constants.CONFD_REQQ_IPLIST
1643 CONFD_REQQ_FIELDS = _constants.CONFD_REQQ_FIELDS
1644
1645 # FIXME: perhaps update code that uses these constants to deal with
1646 # integers instead of strings
1647 CONFD_REQFIELD_NAME = str(_constants.CONFD_REQFIELD_NAME)
1648 CONFD_REQFIELD_IP = str(_constants.CONFD_REQFIELD_IP)
1649 CONFD_REQFIELD_MNODE_PIP = str(_constants.CONFD_REQFIELD_MNODE_PIP)
1650
1651 CONFD_REPL_STATUS_OK = _constants.CONFD_REPL_STATUS_OK
1652 CONFD_REPL_STATUS_ERROR = _constants.CONFD_REPL_STATUS_ERROR
1653 CONFD_REPL_STATUS_NOTIMPLEMENTED = _constants.CONFD_REPL_STATUS_NOTIMPLEMENTED
1654 CONFD_REPL_STATUSES = _constants.CONFD_REPL_STATUSES
1655
1656 CONFD_NODE_ROLE_MASTER = _constants.CONFD_NODE_ROLE_MASTER
1657 CONFD_NODE_ROLE_CANDIDATE = _constants.CONFD_NODE_ROLE_CANDIDATE
1658 CONFD_NODE_ROLE_OFFLINE = _constants.CONFD_NODE_ROLE_OFFLINE
1659 CONFD_NODE_ROLE_DRAINED = _constants.CONFD_NODE_ROLE_DRAINED
1660 CONFD_NODE_ROLE_REGULAR = _constants.CONFD_NODE_ROLE_REGULAR
1661
1662 CONFD_ERROR_UNKNOWN_ENTRY = _constants.CONFD_ERROR_UNKNOWN_ENTRY
1663 CONFD_ERROR_INTERNAL = _constants.CONFD_ERROR_INTERNAL
1664 CONFD_ERROR_ARGUMENT = _constants.CONFD_ERROR_ARGUMENT
1665
1666 # Each request is "salted" by the current timestamp.
1667 # This constants decides how many seconds of skew to accept.
1668 # TODO: make this a default and allow the value to be more configurable
1669 CONFD_MAX_CLOCK_SKEW = _constants.CONFD_MAX_CLOCK_SKEW
1670
1671 # When we haven't reloaded the config for more than this amount of
1672 # seconds, we force a test to see if inotify is betraying us. Using a
1673 # prime number to ensure we get less chance of 'same wakeup' with
1674 # other processes.
1675 CONFD_CONFIG_RELOAD_TIMEOUT = _constants.CONFD_CONFIG_RELOAD_TIMEOUT
1676
1677 # If we receive more than one update in this amount of microseconds,
1678 # we move to polling every RATELIMIT seconds, rather than relying on
1679 # inotify, to be able to serve more requests.
1680 CONFD_CONFIG_RELOAD_RATELIMIT = _constants.CONFD_CONFIG_RELOAD_RATELIMIT
1681
1682 # Magic number prepended to all confd queries.
1683 # This allows us to distinguish different types of confd protocols and handle
1684 # them. For example by changing this we can move the whole payload to be
1685 # compressed, or move away from json.
1686 CONFD_MAGIC_FOURCC = _constants.CONFD_MAGIC_FOURCC
1687
1688 # By default a confd request is sent to the minimum between this number and all
1689 # MCs. 6 was chosen because even in the case of a disastrous 50% response rate,
1690 # we should have enough answers to be able to compare more than one.
1691 CONFD_DEFAULT_REQ_COVERAGE = _constants.CONFD_DEFAULT_REQ_COVERAGE
1692
1693 # Timeout in seconds to expire pending query request in the confd client
1694 # library. We don't actually expect any answer more than 10 seconds after we
1695 # sent a request.
1696 CONFD_CLIENT_EXPIRE_TIMEOUT = _constants.CONFD_CLIENT_EXPIRE_TIMEOUT
1697
1698 # Maximum UDP datagram size.
1699 # On IPv4: 64K - 20 (ip header size) - 8 (udp header size) = 65507
1700 # On IPv6: 64K - 40 (ip6 header size) - 8 (udp header size) = 65487
1701 #   (assuming we can't use jumbo frames)
1702 # We just set this to 60K, which should be enough
1703 MAX_UDP_DATA_SIZE = 61440
1704
1705 # User-id pool minimum/maximum acceptable user-ids.
1706 UIDPOOL_UID_MIN = 0
1707 UIDPOOL_UID_MAX = 2 ** 32 - 1 # Assuming 32 bit user-ids
1708
1709 # Name or path of the pgrep command
1710 PGREP = "pgrep"
1711
1712 # Name of the node group that gets created at cluster init or upgrade
1713 INITIAL_NODE_GROUP_NAME = "default"
1714
1715 # Possible values for NodeGroup.alloc_policy
1716 ALLOC_POLICY_PREFERRED = _constants.ALLOC_POLICY_PREFERRED
1717 ALLOC_POLICY_LAST_RESORT = _constants.ALLOC_POLICY_LAST_RESORT
1718 ALLOC_POLICY_UNALLOCABLE = _constants.ALLOC_POLICY_UNALLOCABLE
1719 VALID_ALLOC_POLICIES = _constants.VALID_ALLOC_POLICIES
1720
1721 # Temporary external/shared storage parameters
1722 BLOCKDEV_DRIVER_MANUAL = _constants.BLOCKDEV_DRIVER_MANUAL
1723
1724 # qemu-img path, required for ovfconverter
1725 QEMUIMG_PATH = _constants.QEMUIMG_PATH
1726
1727 # Whether htools was enabled at compilation time
1728 HTOOLS = _constants.HTOOLS
1729 # The hail iallocator
1730 IALLOC_HAIL = "hail"
1731
1732 # Fake opcodes for functions that have hooks attached to them via
1733 # backend.RunLocalHooks
1734 FAKE_OP_MASTER_TURNUP = "OP_CLUSTER_IP_TURNUP"
1735 FAKE_OP_MASTER_TURNDOWN = "OP_CLUSTER_IP_TURNDOWN"
1736
1737 # SSH key types
1738 SSHK_RSA = "rsa"
1739 SSHK_DSA = "dsa"
1740 SSHK_ALL = compat.UniqueFrozenset([SSHK_RSA, SSHK_DSA])
1741
1742 # SSH authorized key types
1743 SSHAK_RSA = "ssh-rsa"
1744 SSHAK_DSS = "ssh-dss"
1745 SSHAK_ALL = compat.UniqueFrozenset([SSHAK_RSA, SSHAK_DSS])
1746
1747 # SSH setup
1748 SSHS_CLUSTER_NAME = "cluster_name"
1749 SSHS_SSH_HOST_KEY = "ssh_host_key"
1750 SSHS_SSH_ROOT_KEY = "ssh_root_key"
1751 SSHS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
1752
1753 #: Key files for SSH daemon
1754 SSH_DAEMON_KEYFILES = {
1755   SSHK_RSA: (pathutils.SSH_HOST_RSA_PRIV, pathutils.SSH_HOST_RSA_PUB),
1756   SSHK_DSA: (pathutils.SSH_HOST_DSA_PRIV, pathutils.SSH_HOST_DSA_PUB),
1757   }
1758
1759 # Node daemon setup
1760 NDS_CLUSTER_NAME = "cluster_name"
1761 NDS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
1762 NDS_SSCONF = "ssconf"
1763 NDS_START_NODE_DAEMON = "start_node_daemon"
1764
1765 # Path generating random UUID
1766 RANDOM_UUID_FILE = _constants.RANDOM_UUID_FILE
1767
1768 # Regex string for verifying a UUID
1769 UUID_REGEX = "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
1770
1771 # Auto-repair tag prefixes
1772 AUTO_REPAIR_TAG_PREFIX = _constants.AUTO_REPAIR_TAG_PREFIX
1773 AUTO_REPAIR_TAG_ENABLED = _constants.AUTO_REPAIR_TAG_ENABLED
1774 AUTO_REPAIR_TAG_SUSPENDED = _constants.AUTO_REPAIR_TAG_SUSPENDED
1775 AUTO_REPAIR_TAG_PENDING = _constants.AUTO_REPAIR_TAG_PENDING
1776 AUTO_REPAIR_TAG_RESULT = _constants.AUTO_REPAIR_TAG_RESULT
1777
1778 # Auto-repair levels
1779 AUTO_REPAIR_FIX_STORAGE = _constants.AUTO_REPAIR_FIX_STORAGE
1780 AUTO_REPAIR_MIGRATE = _constants.AUTO_REPAIR_MIGRATE
1781 AUTO_REPAIR_FAILOVER = _constants.AUTO_REPAIR_FAILOVER
1782 AUTO_REPAIR_REINSTALL = _constants.AUTO_REPAIR_REINSTALL
1783 AUTO_REPAIR_ALL_TYPES = _constants.AUTO_REPAIR_ALL_TYPES
1784
1785 # Auto-repair results
1786 AUTO_REPAIR_SUCCESS = _constants.AUTO_REPAIR_SUCCESS
1787 AUTO_REPAIR_FAILURE = _constants.AUTO_REPAIR_FAILURE
1788 AUTO_REPAIR_ENOPERM = _constants.AUTO_REPAIR_ENOPERM
1789 AUTO_REPAIR_ALL_RESULTS = _constants.AUTO_REPAIR_ALL_RESULTS
1790
1791 # The version identifier for builtin data collectors
1792 BUILTIN_DATA_COLLECTOR_VERSION = _constants.BUILTIN_DATA_COLLECTOR_VERSION
1793
1794 # The reason trail opcode parameter name
1795 OPCODE_REASON = _constants.OPCODE_REASON
1796
1797 # The source reasons for the execution of an OpCode
1798 OPCODE_REASON_SRC_CLIENT = "gnt:client"
1799 OPCODE_REASON_SRC_NODED = "gnt:daemon:noded"
1800 OPCODE_REASON_SRC_OPCODE = "gnt:opcode"
1801 OPCODE_REASON_SRC_RLIB2 = "gnt:library:rlib2"
1802 OPCODE_REASON_SRC_USER = "gnt:user"
1803
1804 OPCODE_REASON_SOURCES = compat.UniqueFrozenset([
1805   OPCODE_REASON_SRC_CLIENT,
1806   OPCODE_REASON_SRC_NODED,
1807   OPCODE_REASON_SRC_OPCODE,
1808   OPCODE_REASON_SRC_RLIB2,
1809   OPCODE_REASON_SRC_USER,
1810   ])
1811
1812 DISKSTATS_FILE = _constants.DISKSTATS_FILE
1813
1814 # CPU load collector variables
1815 STAT_FILE = _constants.STAT_FILE
1816 CPUAVGLOAD_BUFFER_SIZE = _constants.CPUAVGLOAD_BUFFER_SIZE
1817 CPUAVGLOAD_WINDOW_SIZE = _constants.CPUAVGLOAD_WINDOW_SIZE
1818
1819 # Mond's variable for periodical data collection
1820 MOND_TIME_INTERVAL = _constants.MOND_TIME_INTERVAL
1821
1822 # MonD's latest API version
1823 MOND_LATEST_API_VERSION = 1
1824
1825 # Timeouts for upgrades
1826
1827 UPGRADE_QUEUE_DRAIN_TIMEOUT = _constants.UPGRADE_QUEUE_DRAIN_TIMEOUT
1828 UPGRADE_QUEUE_POLL_INTERVAL = _constants.UPGRADE_QUEUE_POLL_INTERVAL
1829
1830 # Do not re-export imported modules
1831 del re, _vcsversion, _constants, socket, pathutils, compat
1832
1833
1834 ALLOCATABLE_KEY = "allocatable"
1835 FAILED_KEY = "failed"