4 # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Google Inc.
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.
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.
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
22 """Module holding different constants."""
27 from ganeti import _constants
28 from ganeti import _vcsversion
29 from ganeti import compat
30 from ganeti import pathutils
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
43 VERSION_MAJOR = _constants.VERSION_MAJOR
44 VERSION_MINOR = _constants.VERSION_MINOR
45 VERSION_REVISION = _constants.VERSION_REVISION
47 DIR_VERSION = _constants.DIR_VERSION
49 CONFIG_MAJOR = _constants.CONFIG_MAJOR
50 CONFIG_MINOR = _constants.CONFIG_MINOR
51 CONFIG_REVISION = _constants.CONFIG_REVISION
52 CONFIG_VERSION = _constants.CONFIG_VERSION
54 #: RPC protocol version
55 PROTOCOL_VERSION = _constants.PROTOCOL_VERSION
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
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
80 CPU_PINNING_ALL_XEN = _constants.CPU_PINNING_ALL_XEN
82 CPU_PINNING_ALL_KVM = _constants.CPU_PINNING_ALL_KVM
84 DD_CMD = _constants.DD_CMD
85 MAX_WIPE_CHUNK = _constants.MAX_WIPE_CHUNK
86 MIN_WIPE_CHUNK_PERCENT = _constants.MIN_WIPE_CHUNK_PERCENT
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
101 NODED = _constants.NODED
102 CONFD = _constants.CONFD
103 LUXID = _constants.LUXID
104 RAPI = _constants.RAPI
105 MASTERD = _constants.MASTERD
106 MOND = _constants.MOND
108 DAEMONS = _constants.DAEMONS
110 DAEMONS_PORTS = _constants.DAEMONS_PORTS
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
117 FIRST_DRBD_PORT = _constants.FIRST_DRBD_PORT
118 LAST_DRBD_PORT = _constants.LAST_DRBD_PORT
120 DAEMONS_LOGBASE = _constants.DAEMONS_LOGBASE
123 dict((daemon, pathutils.GetLogFilename(DAEMONS_LOGBASE[daemon]))
124 for daemon in DAEMONS_LOGBASE)
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.
130 # These are the only valid reasons for having an extra logfile
131 EXTRA_LOGREASON_ACCESS = "access"
132 EXTRA_LOGREASON_ERROR = "error"
134 VALID_EXTRA_LOGREASONS = compat.UniqueFrozenset([
135 EXTRA_LOGREASON_ACCESS,
136 EXTRA_LOGREASON_ERROR,
139 # These are the extra logfiles, grouped by daemon
140 DAEMONS_EXTRA_LOGBASE = {
142 EXTRA_LOGREASON_ACCESS: _constants.EXTRA_LOGREASON_ACCESS,
143 EXTRA_LOGREASON_ERROR: _constants.EXTRA_LOGREASON_ERROR,
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)
153 DEV_CONSOLE = _constants.DEV_CONSOLE
155 PROC_MOUNTS = _constants.PROC_MOUNTS
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
169 EXPORT_CONF_FILE = _constants.EXPORT_CONF_FILE
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
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)
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
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
203 RSA_KEY_BITS = _constants.RSA_KEY_BITS
204 OPENSSL_CIPHERS = _constants.OPENSSL_CIPHERS
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
211 # Import/export daemon mode
212 IEM_IMPORT = _constants.IEM_IMPORT
213 IEM_EXPORT = _constants.IEM_EXPORT
215 # Import/export transport compression
216 IEC_NONE = _constants.IEC_NONE
217 IEC_GZIP = _constants.IEC_GZIP
218 IEC_ALL = _constants.IEC_ALL
220 IE_CUSTOM_SIZE = _constants.IE_CUSTOM_SIZE
222 IE_MAGIC_RE = re.compile(r"^[-_.a-zA-Z0-9]{5,100}$")
224 IEIO_FILE = _constants.IEIO_FILE
225 IEIO_RAW_DISK = _constants.IEIO_RAW_DISK
226 IEIO_SCRIPT = _constants.IEIO_SCRIPT
228 VALUE_DEFAULT = "default"
230 VALUE_GENERATE = "generate"
233 VALUE_FALSE = "false"
234 VALUE_HS_NOTHING = {"Nothing": None}
237 # External script validation mask
238 EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$")
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
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
253 HKR_SKIP = _constants.HKR_SKIP
254 HKR_FAIL = _constants.HKR_FAIL
255 HKR_SUCCESS = _constants.HKR_SUCCESS
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
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
281 SO_FIX_CONSISTENCY = _constants.SO_FIX_CONSISTENCY
282 VALID_STORAGE_OPERATIONS = _constants.VALID_STORAGE_OPERATIONS
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
292 LDS_OKAY = _constants.LDS_OKAY
293 LDS_UNKNOWN = _constants.LDS_UNKNOWN
294 LDS_FAULTY = _constants.LDS_FAULTY
295 LDS_NAMES = _constants.LDS_NAMES
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
310 MAP_DISK_TEMPLATE_STORAGE_TYPE = _constants.MAP_DISK_TEMPLATE_STORAGE_TYPE
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
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
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
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]),
348 RBD_CMD = _constants.RBD_CMD
350 FD_BLKTAP = _constants.FD_BLKTAP
351 FD_LOOP = _constants.FD_LOOP
352 FILE_DRIVER = _constants.FILE_DRIVER
354 LDS_DRBD = _constants.LDS_DRBD
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
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
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
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
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
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
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?
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
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
420 MAX_TAG_LEN = _constants.MAX_TAG_LEN
421 MAX_TAGS_PER_OBJ = _constants.MAX_TAGS_PER_OBJ
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
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
450 RUNPARTS_SKIP = _constants.RUNPARTS_SKIP
451 RUNPARTS_RUN = _constants.RUNPARTS_RUN
452 RUNPARTS_ERR = _constants.RUNPARTS_ERR
453 RUNPARTS_STATUS = _constants.RUNPARTS_STATUS
455 RPC_ENCODING_NONE = _constants.RPC_ENCODING_NONE
456 RPC_ENCODING_ZLIB_BASE64 = _constants.RPC_ENCODING_ZLIB_BASE64
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
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
473 OS_API_FILE = _constants.OS_API_FILE
474 OS_VARIANTS_FILE = _constants.OS_VARIANTS_FILE
475 OS_PARAMETERS_FILE = _constants.OS_PARAMETERS_FILE
477 OS_VALIDATE_PARAMETERS = _constants.OS_VALIDATE_PARAMETERS
478 OS_VALIDATE_CALLS = _constants.OS_VALIDATE_CALLS
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
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
497 ES_PARAMETERS_FILE = _constants.ES_PARAMETERS_FILE
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
505 INSTANCE_REBOOT_ALLOWED = _constants.INSTANCE_REBOOT_ALLOWED
506 INSTANCE_REBOOT_EXIT = _constants.INSTANCE_REBOOT_EXIT
507 REBOOT_BEHAVIORS = _constants.REBOOT_BEHAVIORS
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
516 IFACE_NO_IP_VERSION_SPECIFIED = _constants.IFACE_NO_IP_VERSION_SPECIFIED
518 VALID_SERIAL_SPEEDS = _constants.VALID_SERIAL_SPEEDS
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
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,
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,
669 HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
671 HVS_PARAMETER_TITLES = _constants.HVS_PARAMETER_TITLES
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
681 HV_NODEINFO_KEY_VERSION = _constants.HV_NODEINFO_KEY_VERSION
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
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
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
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
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
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
739 NDS_PARAMETER_TYPES = _constants.NDS_PARAMETER_TYPES
740 NDS_PARAMETERS = _constants.NDS_PARAMETERS
741 NDS_PARAMETER_TITLES = _constants.NDS_PARAMETER_TITLES
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
762 # Disk template parameters (can be set/changed by the user via gnt-cluster and
764 DRBD_RESYNC_RATE = "resync-rate"
765 DRBD_DATA_STRIPES = "data-stripes"
766 DRBD_META_STRIPES = "meta-stripes"
767 DRBD_DISK_BARRIERS = "disk-barriers"
768 DRBD_META_BARRIERS = "meta-barriers"
769 DRBD_DEFAULT_METAVG = "metavg"
770 DRBD_DISK_CUSTOM = "disk-custom"
771 DRBD_NET_CUSTOM = "net-custom"
772 DRBD_PROTOCOL = "protocol"
773 DRBD_DYNAMIC_RESYNC = "dynamic-resync"
774 DRBD_PLAN_AHEAD = "c-plan-ahead"
775 DRBD_FILL_TARGET = "c-fill-target"
776 DRBD_DELAY_TARGET = "c-delay-target"
777 DRBD_MAX_RATE = "c-max-rate"
778 DRBD_MIN_RATE = "c-min-rate"
779 LV_STRIPES = "stripes"
781 RBD_ACCESS = "access"
783 DRBD_RESYNC_RATE: VTYPE_INT,
784 DRBD_DATA_STRIPES: VTYPE_INT,
785 DRBD_META_STRIPES: VTYPE_INT,
786 DRBD_DISK_BARRIERS: VTYPE_STRING,
787 DRBD_META_BARRIERS: VTYPE_BOOL,
788 DRBD_DEFAULT_METAVG: VTYPE_STRING,
789 DRBD_DISK_CUSTOM: VTYPE_STRING,
790 DRBD_NET_CUSTOM: VTYPE_STRING,
791 DRBD_PROTOCOL: VTYPE_STRING,
792 DRBD_DYNAMIC_RESYNC: VTYPE_BOOL,
793 DRBD_PLAN_AHEAD: VTYPE_INT,
794 DRBD_FILL_TARGET: VTYPE_INT,
795 DRBD_DELAY_TARGET: VTYPE_INT,
796 DRBD_MAX_RATE: VTYPE_INT,
797 DRBD_MIN_RATE: VTYPE_INT,
798 LV_STRIPES: VTYPE_INT,
799 RBD_POOL: VTYPE_STRING,
800 RBD_ACCESS: VTYPE_STRING,
803 DISK_DT_PARAMETERS = frozenset(DISK_DT_TYPES.keys())
805 # dynamic disk parameters
806 DDP_LOCAL_IP = "local-ip"
807 DDP_REMOTE_IP = "remote-ip"
809 DDP_LOCAL_MINOR = "local-minor"
810 DDP_REMOTE_MINOR = "remote-minor"
812 # OOB supported commands
813 OOB_POWER_ON = _constants.OOB_POWER_ON
814 OOB_POWER_OFF = _constants.OOB_POWER_OFF
815 OOB_POWER_CYCLE = _constants.OOB_POWER_CYCLE
816 OOB_POWER_STATUS = _constants.OOB_POWER_STATUS
817 OOB_HEALTH = _constants.OOB_HEALTH
818 OOB_COMMANDS = _constants.OOB_COMMANDS
820 OOB_POWER_STATUS_POWERED = _constants.OOB_POWER_STATUS_POWERED
822 OOB_TIMEOUT = _constants.OOB_TIMEOUT
823 OOB_POWER_DELAY = _constants.OOB_POWER_DELAY
825 OOB_STATUS_OK = _constants.OOB_STATUS_OK
826 OOB_STATUS_WARNING = _constants.OOB_STATUS_WARNING
827 OOB_STATUS_CRITICAL = _constants.OOB_STATUS_CRITICAL
828 OOB_STATUS_UNKNOWN = _constants.OOB_STATUS_UNKNOWN
829 OOB_STATUSES = _constants.OOB_STATUSES
831 # Instance Parameters Profile
832 PP_DEFAULT = "default"
834 # NIC_* constants are used inside the ganeti config
835 NIC_MODE = _constants.NIC_MODE
836 NIC_LINK = _constants.NIC_LINK
837 NIC_VLAN = _constants.NIC_VLAN
839 NIC_MODE_BRIDGED = _constants.NIC_MODE_BRIDGED
840 NIC_MODE_ROUTED = _constants.NIC_MODE_ROUTED
841 NIC_MODE_OVS = _constants.NIC_MODE_OVS
842 NIC_IP_POOL = _constants.NIC_IP_POOL
843 NIC_VALID_MODES = _constants.NIC_VALID_MODES
845 RESERVE_ACTION = "reserve"
846 RELEASE_ACTION = "release"
848 NICS_PARAMETER_TYPES = {
849 NIC_MODE: VTYPE_STRING,
850 NIC_LINK: VTYPE_STRING,
851 NIC_VLAN: VTYPE_MAYBE_STRING,
854 NICS_PARAMETERS = frozenset(NICS_PARAMETER_TYPES.keys())
856 # IDISK_* constants are used in opcodes, to create/change disks
858 IDISK_SPINDLES = "spindles"
860 IDISK_ADOPT = "adopt"
862 IDISK_METAVG = "metavg"
863 IDISK_PROVIDER = "provider"
865 IDISK_PARAMS_TYPES = {
866 IDISK_SIZE: VTYPE_SIZE,
867 IDISK_SPINDLES: VTYPE_INT,
868 IDISK_MODE: VTYPE_STRING,
869 IDISK_ADOPT: VTYPE_STRING,
870 IDISK_VG: VTYPE_STRING,
871 IDISK_METAVG: VTYPE_STRING,
872 IDISK_PROVIDER: VTYPE_STRING,
873 IDISK_NAME: VTYPE_MAYBE_STRING,
875 IDISK_PARAMS = frozenset(IDISK_PARAMS_TYPES.keys())
877 # INIC_* constants are used in opcodes, to create/change nics
882 INIC_NETWORK = "network"
885 INIC_BRIDGE = "bridge"
886 INIC_PARAMS_TYPES = {
887 INIC_IP: VTYPE_MAYBE_STRING,
888 INIC_LINK: VTYPE_STRING,
889 INIC_MAC: VTYPE_STRING,
890 INIC_MODE: VTYPE_STRING,
891 INIC_NETWORK: VTYPE_MAYBE_STRING,
892 INIC_NAME: VTYPE_MAYBE_STRING,
893 INIC_VLAN: VTYPE_MAYBE_STRING,
894 INIC_BRIDGE: VTYPE_MAYBE_STRING
896 INIC_PARAMS = frozenset(INIC_PARAMS_TYPES.keys())
898 # Hypervisor constants
899 HT_XEN_PVM = _constants.HT_XEN_PVM
900 HT_FAKE = _constants.HT_FAKE
901 HT_XEN_HVM = _constants.HT_XEN_HVM
902 HT_KVM = _constants.HT_KVM
903 HT_CHROOT = _constants.HT_CHROOT
904 HT_LXC = _constants.HT_LXC
905 HYPER_TYPES = _constants.HYPER_TYPES
906 HTS_REQ_PORT = _constants.HTS_REQ_PORT
909 VNC_DEFAULT_BIND_ADDRESS = IP4_ADDRESS_ANY
912 HT_NIC_RTL8139 = "rtl8139"
913 HT_NIC_NE2K_PCI = "ne2k_pci"
914 HT_NIC_NE2K_ISA = "ne2k_isa"
915 HT_NIC_I82551 = "i82551"
916 HT_NIC_I85557B = "i82557b"
917 HT_NIC_I8259ER = "i82559er"
918 HT_NIC_PCNET = "pcnet"
919 HT_NIC_E1000 = "e1000"
920 HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
922 HT_HVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
929 HT_KVM_VALID_NIC_TYPES = compat.UniqueFrozenset([
942 # default vif type in xen-hvm
943 HT_HVM_VIF_IOEMU = "ioemu"
944 HT_HVM_VIF_VIF = "vif"
945 HT_HVM_VALID_VIF_TYPES = compat.UniqueFrozenset([
951 HT_DISK_IOEMU = "ioemu"
953 HT_DISK_SCSI = "scsi"
956 HT_DISK_PFLASH = "pflash"
958 HT_CACHE_DEFAULT = "default"
959 HT_CACHE_NONE = "none"
960 HT_CACHE_WTHROUGH = "writethrough"
961 HT_CACHE_WBACK = "writeback"
962 HT_VALID_CACHE_TYPES = compat.UniqueFrozenset([
969 HT_HVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
973 HT_KVM_VALID_DISK_TYPES = compat.UniqueFrozenset([
983 HT_MOUSE_MOUSE = "mouse"
984 HT_MOUSE_TABLET = "tablet"
986 HT_KVM_VALID_MOUSE_TYPES = compat.UniqueFrozenset([
992 HT_BO_FLOPPY = "floppy"
993 HT_BO_CDROM = "cdrom"
995 HT_BO_NETWORK = "network"
997 HT_KVM_VALID_BO_TYPES = compat.UniqueFrozenset([
1004 # SPICE lossless image compression options
1005 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ = "auto_glz"
1006 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ = "auto_lz"
1007 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC = "quic"
1008 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ = "glz"
1009 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ = "lz"
1010 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF = "off"
1012 HT_KVM_SPICE_VALID_LOSSLESS_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
1013 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_GLZ,
1014 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_AUTO_LZ,
1015 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_QUIC,
1016 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_GLZ,
1017 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_LZ,
1018 HT_KVM_SPICE_LOSSLESS_IMG_COMPR_OFF,
1021 # SPICE lossy image compression options (valid for both jpeg and zlib-glz)
1022 HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO = "auto"
1023 HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER = "never"
1024 HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS = "always"
1026 HT_KVM_SPICE_VALID_LOSSY_IMG_COMPR_OPTIONS = compat.UniqueFrozenset([
1027 HT_KVM_SPICE_LOSSY_IMG_COMPR_AUTO,
1028 HT_KVM_SPICE_LOSSY_IMG_COMPR_NEVER,
1029 HT_KVM_SPICE_LOSSY_IMG_COMPR_ALWAYS,
1032 # SPICE video stream detection
1033 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF = "off"
1034 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL = "all"
1035 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER = "filter"
1037 HT_KVM_SPICE_VALID_VIDEO_STREAM_DETECTION_OPTIONS = compat.UniqueFrozenset([
1038 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_OFF,
1039 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_ALL,
1040 HT_KVM_SPICE_VIDEO_STREAM_DETECTION_FILTER,
1048 HT_KVM_VALID_SM_TYPES = compat.UniqueFrozenset([
1055 HT_KVM_ENABLED = "enabled"
1056 HT_KVM_DISABLED = "disabled"
1058 HT_KVM_FLAG_VALUES = compat.UniqueFrozenset([HT_KVM_ENABLED, HT_KVM_DISABLED])
1061 HT_MIGRATION_LIVE = _constants.HT_MIGRATION_LIVE
1062 HT_MIGRATION_NONLIVE = _constants.HT_MIGRATION_NONLIVE
1063 HT_MIGRATION_MODES = _constants.HT_MIGRATION_MODES
1065 # Cluster Verify steps
1066 VERIFY_NPLUSONE_MEM = _constants.VERIFY_NPLUSONE_MEM
1067 VERIFY_OPTIONAL_CHECKS = _constants.VERIFY_OPTIONAL_CHECKS
1069 # Cluster Verify error classes
1070 CV_TCLUSTER = _constants.CV_TCLUSTER
1071 CV_TGROUP = _constants.CV_TGROUP
1072 CV_TNODE = _constants.CV_TNODE
1073 CV_TINSTANCE = _constants.CV_TINSTANCE
1075 # Cluster Verify error codes and documentation
1076 CV_ECLUSTERCFG = _constants.CV_ECLUSTERCFG
1077 CV_ECLUSTERCERT = _constants.CV_ECLUSTERCERT
1078 CV_ECLUSTERFILECHECK = _constants.CV_ECLUSTERFILECHECK
1079 CV_ECLUSTERDANGLINGNODES = _constants.CV_ECLUSTERDANGLINGNODES
1080 CV_ECLUSTERDANGLINGINST = _constants.CV_ECLUSTERDANGLINGINST
1081 CV_EGROUPDIFFERENTPVSIZE = _constants.CV_EGROUPDIFFERENTPVSIZE
1082 CV_EINSTANCEBADNODE = _constants.CV_EINSTANCEBADNODE
1083 CV_EINSTANCEDOWN = _constants.CV_EINSTANCEDOWN
1084 CV_EINSTANCELAYOUT = _constants.CV_EINSTANCELAYOUT
1085 CV_EINSTANCEMISSINGDISK = _constants.CV_EINSTANCEMISSINGDISK
1086 CV_EINSTANCEFAULTYDISK = _constants.CV_EINSTANCEFAULTYDISK
1087 CV_EINSTANCEWRONGNODE = _constants.CV_EINSTANCEWRONGNODE
1088 CV_EINSTANCESPLITGROUPS = _constants.CV_EINSTANCESPLITGROUPS
1089 CV_EINSTANCEPOLICY = _constants.CV_EINSTANCEPOLICY
1090 CV_EINSTANCEUNSUITABLENODE = _constants.CV_EINSTANCEUNSUITABLENODE
1091 CV_EINSTANCEMISSINGCFGPARAMETER = _constants.CV_EINSTANCEMISSINGCFGPARAMETER
1092 CV_ENODEDRBD = _constants.CV_ENODEDRBD
1093 CV_ENODEDRBDVERSION = _constants.CV_ENODEDRBDVERSION
1094 CV_ENODEDRBDHELPER = _constants.CV_ENODEDRBDHELPER
1095 CV_ENODEFILECHECK = _constants.CV_ENODEFILECHECK
1096 CV_ENODEHOOKS = _constants.CV_ENODEHOOKS
1097 CV_ENODEHV = _constants.CV_ENODEHV
1098 CV_ENODELVM = _constants.CV_ENODELVM
1099 CV_ENODEN1 = _constants.CV_ENODEN1
1100 CV_ENODENET = _constants.CV_ENODENET
1101 CV_ENODEOS = _constants.CV_ENODEOS
1102 CV_ENODEORPHANINSTANCE = _constants.CV_ENODEORPHANINSTANCE
1103 CV_ENODEORPHANLV = _constants.CV_ENODEORPHANLV
1104 CV_ENODERPC = _constants.CV_ENODERPC
1105 CV_ENODESSH = _constants.CV_ENODESSH
1106 CV_ENODEVERSION = _constants.CV_ENODEVERSION
1107 CV_ENODESETUP = _constants.CV_ENODESETUP
1108 CV_ENODETIME = _constants.CV_ENODETIME
1109 CV_ENODEOOBPATH = _constants.CV_ENODEOOBPATH
1110 CV_ENODEUSERSCRIPTS = _constants.CV_ENODEUSERSCRIPTS
1111 CV_ENODEFILESTORAGEPATHS = _constants.CV_ENODEFILESTORAGEPATHS
1112 CV_ENODEFILESTORAGEPATHUNUSABLE = _constants.CV_ENODEFILESTORAGEPATHUNUSABLE
1113 CV_ENODESHAREDFILESTORAGEPATHUNUSABLE = \
1114 _constants.CV_ENODESHAREDFILESTORAGEPATHUNUSABLE
1116 CV_ALL_ECODES = _constants.CV_ALL_ECODES
1117 CV_ALL_ECODES_STRINGS = _constants.CV_ALL_ECODES_STRINGS
1119 # Node verify constants
1120 NV_BRIDGES = "bridges"
1121 NV_DRBDHELPER = "drbd-helper"
1122 NV_DRBDVERSION = "drbd-version"
1123 NV_DRBDLIST = "drbd-list"
1124 NV_EXCLUSIVEPVS = "exclusive-pvs"
1125 NV_FILELIST = "filelist"
1126 NV_ACCEPTED_STORAGE_PATHS = "allowed-file-storage-paths"
1127 NV_FILE_STORAGE_PATH = "file-storage-path"
1128 NV_SHARED_FILE_STORAGE_PATH = "shared-file-storage-path"
1129 NV_HVINFO = "hvinfo"
1130 NV_HVPARAMS = "hvparms"
1131 NV_HYPERVISOR = "hypervisor"
1132 NV_INSTANCELIST = "instancelist"
1133 NV_LVLIST = "lvlist"
1134 NV_MASTERIP = "master-ip"
1135 NV_NODELIST = "nodelist"
1136 NV_NODENETTEST = "node-net-test"
1137 NV_NODESETUP = "nodesetup"
1138 NV_OOB_PATHS = "oob-paths"
1139 NV_OSLIST = "oslist"
1140 NV_PVLIST = "pvlist"
1142 NV_USERSCRIPTS = "user-scripts"
1143 NV_VERSION = "version"
1144 NV_VGLIST = "vglist"
1145 NV_VMNODES = "vmnodes"
1148 INSTST_RUNNING = _constants.INSTST_RUNNING
1149 INSTST_ADMINDOWN = _constants.INSTST_ADMINDOWN
1150 INSTST_ADMINOFFLINE = _constants.INSTST_ADMINOFFLINE
1151 INSTST_NODEOFFLINE = _constants.INSTST_NODEOFFLINE
1152 INSTST_NODEDOWN = _constants.INSTST_NODEDOWN
1153 INSTST_WRONGNODE = _constants.INSTST_WRONGNODE
1154 INSTST_ERRORUP = _constants.INSTST_ERRORUP
1155 INSTST_ERRORDOWN = _constants.INSTST_ERRORDOWN
1156 INSTST_ALL = _constants.INSTST_ALL
1159 ADMINST_UP = _constants.ADMINST_UP
1160 ADMINST_DOWN = _constants.ADMINST_DOWN
1161 ADMINST_OFFLINE = _constants.ADMINST_OFFLINE
1162 ADMINST_ALL = _constants.ADMINST_ALL
1165 NR_REGULAR = _constants.NR_REGULAR
1166 NR_MASTER = _constants.NR_MASTER
1167 NR_MCANDIDATE = _constants.NR_MCANDIDATE
1168 NR_DRAINED = _constants.NR_DRAINED
1169 NR_OFFLINE = _constants.NR_OFFLINE
1170 NR_ALL = _constants.NR_ALL
1172 # SSL certificate check constants (in days)
1173 SSL_CERT_EXPIRATION_WARN = 30
1174 SSL_CERT_EXPIRATION_ERROR = 7
1176 # Allocator framework constants
1177 IALLOCATOR_VERSION = _constants.IALLOCATOR_VERSION
1178 IALLOCATOR_DIR_IN = _constants.IALLOCATOR_DIR_IN
1179 IALLOCATOR_DIR_OUT = _constants.IALLOCATOR_DIR_OUT
1180 VALID_IALLOCATOR_DIRECTIONS = _constants.VALID_IALLOCATOR_DIRECTIONS
1182 IALLOCATOR_MODE_ALLOC = _constants.IALLOCATOR_MODE_ALLOC
1183 IALLOCATOR_MODE_RELOC = _constants.IALLOCATOR_MODE_RELOC
1184 IALLOCATOR_MODE_CHG_GROUP = _constants.IALLOCATOR_MODE_CHG_GROUP
1185 IALLOCATOR_MODE_NODE_EVAC = _constants.IALLOCATOR_MODE_NODE_EVAC
1186 IALLOCATOR_MODE_MULTI_ALLOC = _constants.IALLOCATOR_MODE_MULTI_ALLOC
1187 VALID_IALLOCATOR_MODES = _constants.VALID_IALLOCATOR_MODES
1189 IALLOCATOR_SEARCH_PATH = _constants.IALLOCATOR_SEARCH_PATH
1190 DEFAULT_IALLOCATOR_SHORTCUT = _constants.DEFAULT_IALLOCATOR_SHORTCUT
1193 NODE_EVAC_PRI = _constants.NODE_EVAC_PRI
1194 NODE_EVAC_SEC = _constants.NODE_EVAC_SEC
1195 NODE_EVAC_ALL = _constants.NODE_EVAC_ALL
1196 NODE_EVAC_MODES = _constants.NODE_EVAC_MODES
1199 JOB_QUEUE_VERSION = 1
1200 JOB_QUEUE_SIZE_HARD_LIMIT = 5000
1201 JOB_QUEUE_FILES_PERMS = 0640
1203 JOB_ID_TEMPLATE = r"\d+"
1204 JOB_FILE_RE = re.compile(r"^job-(%s)$" % JOB_ID_TEMPLATE)
1206 # unchanged job return
1207 JOB_NOTCHANGED = "nochange"
1210 JOB_STATUS_QUEUED = _constants.JOB_STATUS_QUEUED
1211 JOB_STATUS_WAITING = _constants.JOB_STATUS_WAITING
1212 JOB_STATUS_CANCELING = _constants.JOB_STATUS_CANCELING
1213 JOB_STATUS_RUNNING = _constants.JOB_STATUS_RUNNING
1214 JOB_STATUS_CANCELED = _constants.JOB_STATUS_CANCELED
1215 JOB_STATUS_SUCCESS = _constants.JOB_STATUS_SUCCESS
1216 JOB_STATUS_ERROR = _constants.JOB_STATUS_ERROR
1217 JOBS_PENDING = _constants.JOBS_PENDING
1218 JOBS_FINALIZED = _constants.JOBS_FINALIZED
1219 JOB_STATUS_ALL = _constants.JOB_STATUS_ALL
1223 OP_STATUS_QUEUED = _constants.OP_STATUS_QUEUED
1224 OP_STATUS_WAITING = _constants.OP_STATUS_WAITING
1225 OP_STATUS_CANCELING = _constants.OP_STATUS_CANCELING
1226 OP_STATUS_RUNNING = _constants.OP_STATUS_RUNNING
1228 OP_STATUS_CANCELED = _constants.OP_STATUS_CANCELED
1229 OP_STATUS_SUCCESS = _constants.OP_STATUS_SUCCESS
1230 OP_STATUS_ERROR = _constants.OP_STATUS_ERROR
1231 OPS_FINALIZED = _constants.OPS_FINALIZED
1234 OP_PRIO_LOWEST = _constants.OP_PRIO_LOWEST
1235 OP_PRIO_HIGHEST = _constants.OP_PRIO_HIGHEST
1236 OP_PRIO_LOW = _constants.OP_PRIO_LOW
1237 OP_PRIO_NORMAL = _constants.OP_PRIO_NORMAL
1238 OP_PRIO_HIGH = _constants.OP_PRIO_HIGH
1239 OP_PRIO_SUBMIT_VALID = _constants.OP_PRIO_SUBMIT_VALID
1240 OP_PRIO_DEFAULT = _constants.OP_PRIO_DEFAULT
1242 # Lock recalculate mode
1243 LOCKS_REPLACE = "replace"
1244 LOCKS_APPEND = "append"
1246 # Lock timeout (sum) before we should go into blocking acquire (still
1247 # can be reset by priority change); computed as max time (10 hours)
1248 # before we should actually go into blocking acquire given that we
1249 # start from default priority level; in seconds
1251 LOCK_ATTEMPTS_TIMEOUT = 10 * 3600 / (OP_PRIO_DEFAULT - OP_PRIO_HIGHEST)
1252 LOCK_ATTEMPTS_MAXWAIT = 15.0
1253 LOCK_ATTEMPTS_MINWAIT = 1.0
1255 # Execution log types
1256 ELOG_MESSAGE = _constants.ELOG_MESSAGE
1257 ELOG_REMOTE_IMPORT = _constants.ELOG_REMOTE_IMPORT
1258 ELOG_JQUEUE_TEST = _constants.ELOG_JQUEUE_TEST
1260 # /etc/hosts modification
1261 ETC_HOSTS_ADD = "add"
1262 ETC_HOSTS_REMOVE = "remove"
1265 JQT_MSGPREFIX = "TESTMSG="
1266 JQT_EXPANDNAMES = "expandnames"
1268 JQT_LOGMSG = "logmsg"
1269 JQT_STARTMSG = "startmsg"
1270 JQT_ALL = compat.UniqueFrozenset([
1278 QR_CLUSTER = "cluster"
1279 QR_INSTANCE = "instance"
1285 QR_EXPORT = "export"
1286 QR_NETWORK = "network"
1287 QR_EXTSTORAGE = "extstorage"
1289 #: List of resources which can be queried using L{opcodes.OpQuery}
1290 QR_VIA_OP = compat.UniqueFrozenset([
1301 #: List of resources which can be queried using Local UniX Interface
1302 QR_VIA_LUXI = QR_VIA_OP.union([
1307 #: List of resources which can be queried using RAPI
1308 QR_VIA_RAPI = QR_VIA_LUXI
1311 QFT_UNKNOWN = "unknown"
1314 QFT_NUMBER = "number"
1316 QFT_TIMESTAMP = "timestamp"
1319 #: All query field types
1320 QFT_ALL = compat.UniqueFrozenset([
1330 # Query result field status (don't change or reuse values as they're used by
1332 #: Normal field status
1336 #: No data (e.g. RPC error), can be used instead of L{RS_OFFLINE}
1338 #: Value unavailable/unsupported for item; if this field is supported
1339 #: but we cannot get the data for the moment, RS_NODATA or
1340 #: RS_OFFLINE should be used
1342 #: Resource marked offline
1345 RS_ALL = compat.UniqueFrozenset([
1353 #: Dictionary with special field cases and their verbose/terse formatting
1355 RS_UNKNOWN: ("(unknown)", "??"),
1356 RS_NODATA: ("(nodata)", "?"),
1357 RS_OFFLINE: ("(offline)", "*"),
1358 RS_UNAVAIL: ("(unavail)", "-"),
1361 # max dynamic devices
1365 # SSCONF file prefix
1366 SSCONF_FILEPREFIX = "ssconf_"
1368 SS_CLUSTER_NAME = "cluster_name"
1369 SS_CLUSTER_TAGS = "cluster_tags"
1370 SS_FILE_STORAGE_DIR = "file_storage_dir"
1371 SS_SHARED_FILE_STORAGE_DIR = "shared_file_storage_dir"
1372 SS_MASTER_CANDIDATES = "master_candidates"
1373 SS_MASTER_CANDIDATES_IPS = "master_candidates_ips"
1374 SS_MASTER_IP = "master_ip"
1375 SS_MASTER_NETDEV = "master_netdev"
1376 SS_MASTER_NETMASK = "master_netmask"
1377 SS_MASTER_NODE = "master_node"
1378 SS_NODE_LIST = "node_list"
1379 SS_NODE_PRIMARY_IPS = "node_primary_ips"
1380 SS_NODE_SECONDARY_IPS = "node_secondary_ips"
1381 SS_OFFLINE_NODES = "offline_nodes"
1382 SS_ONLINE_NODES = "online_nodes"
1383 SS_PRIMARY_IP_FAMILY = "primary_ip_family"
1384 SS_INSTANCE_LIST = "instance_list"
1385 SS_RELEASE_VERSION = "release_version"
1386 SS_HYPERVISOR_LIST = "hypervisor_list"
1387 SS_MAINTAIN_NODE_HEALTH = "maintain_node_health"
1388 SS_UID_POOL = "uid_pool"
1389 SS_NODEGROUPS = "nodegroups"
1390 SS_NETWORKS = "networks"
1392 # This is not a complete SSCONF key, but the prefix for the hypervisor keys
1393 SS_HVPARAMS_PREF = "hvparams_"
1396 SS_HVPARAMS_XEN_PVM = SS_HVPARAMS_PREF + HT_XEN_PVM
1397 SS_HVPARAMS_XEN_FAKE = SS_HVPARAMS_PREF + HT_FAKE
1398 SS_HVPARAMS_XEN_HVM = SS_HVPARAMS_PREF + HT_XEN_HVM
1399 SS_HVPARAMS_XEN_KVM = SS_HVPARAMS_PREF + HT_KVM
1400 SS_HVPARAMS_XEN_CHROOT = SS_HVPARAMS_PREF + HT_CHROOT
1401 SS_HVPARAMS_XEN_LXC = SS_HVPARAMS_PREF + HT_LXC
1403 VALID_SS_HVPARAMS_KEYS = compat.UniqueFrozenset([
1404 SS_HVPARAMS_XEN_PVM,
1405 SS_HVPARAMS_XEN_FAKE,
1406 SS_HVPARAMS_XEN_HVM,
1407 SS_HVPARAMS_XEN_KVM,
1408 SS_HVPARAMS_XEN_CHROOT,
1409 SS_HVPARAMS_XEN_LXC,
1412 SS_FILE_PERMS = 0444
1414 # cluster wide default parameters
1415 DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM
1419 HV_USE_BOOTLOADER: False,
1420 HV_BOOTLOADER_PATH: XEN_BOOTLOADER,
1421 HV_BOOTLOADER_ARGS: "",
1422 HV_KERNEL_PATH: XEN_KERNEL,
1424 HV_ROOT_PATH: "/dev/xvda1",
1425 HV_KERNEL_ARGS: "ro",
1426 HV_MIGRATION_PORT: 8002,
1427 HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1428 HV_BLOCKDEV_PREFIX: "sd",
1429 HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1430 HV_CPU_MASK: CPU_PINNING_ALL,
1434 HV_XEN_CMD: XEN_CMD_XM,
1439 HV_BOOT_ORDER: "cd",
1440 HV_CDROM_IMAGE_PATH: "",
1441 HV_NIC_TYPE: HT_NIC_RTL8139,
1442 HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1443 HV_VNC_BIND_ADDRESS: IP4_ADDRESS_ANY,
1444 HV_VNC_PASSWORD_FILE: pathutils.VNC_PASSWORD_FILE,
1447 HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
1448 HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
1449 HV_MIGRATION_PORT: 8002,
1450 HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
1451 HV_USE_LOCALTIME: False,
1452 HV_BLOCKDEV_PREFIX: "hd",
1454 HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1455 HV_CPU_MASK: CPU_PINNING_ALL,
1458 HV_VIF_TYPE: HT_HVM_VIF_IOEMU,
1461 HV_XEN_CMD: XEN_CMD_XM,
1466 HV_KVM_PATH: KVM_PATH,
1467 HV_KERNEL_PATH: KVM_KERNEL,
1469 HV_KERNEL_ARGS: "ro",
1470 HV_ROOT_PATH: "/dev/vda1",
1472 HV_SERIAL_CONSOLE: True,
1473 HV_SERIAL_SPEED: 38400,
1474 HV_VNC_BIND_ADDRESS: "",
1477 HV_VNC_X509_VERIFY: False,
1478 HV_VNC_PASSWORD_FILE: "",
1479 HV_KVM_SPICE_BIND: "",
1480 HV_KVM_SPICE_IP_VERSION: IFACE_NO_IP_VERSION_SPECIFIED,
1481 HV_KVM_SPICE_PASSWORD_FILE: "",
1482 HV_KVM_SPICE_LOSSLESS_IMG_COMPR: "",
1483 HV_KVM_SPICE_JPEG_IMG_COMPR: "",
1484 HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: "",
1485 HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: "",
1486 HV_KVM_SPICE_AUDIO_COMPR: True,
1487 HV_KVM_SPICE_USE_TLS: False,
1488 HV_KVM_SPICE_TLS_CIPHERS: OPENSSL_CIPHERS,
1489 HV_KVM_SPICE_USE_VDAGENT: True,
1490 HV_KVM_FLOPPY_IMAGE_PATH: "",
1491 HV_CDROM_IMAGE_PATH: "",
1492 HV_KVM_CDROM2_IMAGE_PATH: "",
1493 HV_BOOT_ORDER: HT_BO_DISK,
1494 HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
1495 HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
1496 HV_KVM_CDROM_DISK_TYPE: "",
1499 HV_MIGRATION_PORT: 8102,
1500 HV_MIGRATION_BANDWIDTH: 32, # MiB/s
1501 HV_MIGRATION_DOWNTIME: 30, # ms
1502 HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1503 HV_USE_LOCALTIME: False,
1504 HV_DISK_CACHE: HT_CACHE_DEFAULT,
1505 HV_SECURITY_MODEL: HT_SM_NONE,
1506 HV_SECURITY_DOMAIN: "",
1508 HV_VHOST_NET: False,
1509 HV_KVM_USE_CHROOT: False,
1511 HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
1512 HV_CPU_MASK: CPU_PINNING_ALL,
1521 HV_KVM_MACHINE_VERSION: "",
1525 HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
1528 HV_INIT_SCRIPT: "/ganeti-chroot",
1535 HVC_GLOBALS = compat.UniqueFrozenset([
1537 HV_MIGRATION_BANDWIDTH,
1546 BE_AUTO_BALANCE: True,
1547 BE_ALWAYS_FAILOVER: False,
1553 ND_SPINDLE_COUNT: 1,
1554 ND_EXCLUSIVE_STORAGE: False,
1556 ND_OVS_NAME: DEFAULT_OVS,
1560 NDC_GLOBALS = compat.UniqueFrozenset([
1561 ND_EXCLUSIVE_STORAGE,
1564 DISK_LD_DEFAULTS = {
1566 LDP_RESYNC_RATE: CLASSIC_DRBD_SYNC_SPEED,
1567 LDP_BARRIERS: _constants.DRBD_BARRIERS,
1568 LDP_NO_META_FLUSH: _constants.DRBD_NO_META_FLUSH,
1569 LDP_DEFAULT_METAVG: DEFAULT_VG,
1570 LDP_DISK_CUSTOM: "",
1572 LDP_PROTOCOL: DRBD_DEFAULT_NET_PROTOCOL,
1573 LDP_DYNAMIC_RESYNC: False,
1575 # The default values for the DRBD dynamic resync speed algorithm
1576 # are taken from the drbsetup 8.3.11 man page, except for
1577 # c-plan-ahead (that we don't need to set to 0, because we have a
1578 # separate option to enable it) and for c-max-rate, that we cap to
1579 # the default value for the static resync rate.
1580 LDP_PLAN_AHEAD: 20, # ds
1581 LDP_FILL_TARGET: 0, # sectors
1582 LDP_DELAY_TARGET: 1, # ds
1583 LDP_MAX_RATE: CLASSIC_DRBD_SYNC_SPEED, # KiB/s
1584 LDP_MIN_RATE: 4 * 1024, # KiB/s
1587 LDP_STRIPES: _constants.LVM_STRIPECOUNT
1594 LDP_ACCESS: DISK_KERNELSPACE,
1599 # readability shortcuts
1600 _LV_DEFAULTS = DISK_LD_DEFAULTS[DT_PLAIN]
1601 _DRBD_DEFAULTS = DISK_LD_DEFAULTS[DT_DRBD8]
1603 DISK_DT_DEFAULTS = {
1605 LV_STRIPES: DISK_LD_DEFAULTS[DT_PLAIN][LDP_STRIPES],
1608 DRBD_RESYNC_RATE: _DRBD_DEFAULTS[LDP_RESYNC_RATE],
1609 DRBD_DATA_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1610 DRBD_META_STRIPES: _LV_DEFAULTS[LDP_STRIPES],
1611 DRBD_DISK_BARRIERS: _DRBD_DEFAULTS[LDP_BARRIERS],
1612 DRBD_META_BARRIERS: _DRBD_DEFAULTS[LDP_NO_META_FLUSH],
1613 DRBD_DEFAULT_METAVG: _DRBD_DEFAULTS[LDP_DEFAULT_METAVG],
1614 DRBD_DISK_CUSTOM: _DRBD_DEFAULTS[LDP_DISK_CUSTOM],
1615 DRBD_NET_CUSTOM: _DRBD_DEFAULTS[LDP_NET_CUSTOM],
1616 DRBD_PROTOCOL: _DRBD_DEFAULTS[LDP_PROTOCOL],
1617 DRBD_DYNAMIC_RESYNC: _DRBD_DEFAULTS[LDP_DYNAMIC_RESYNC],
1618 DRBD_PLAN_AHEAD: _DRBD_DEFAULTS[LDP_PLAN_AHEAD],
1619 DRBD_FILL_TARGET: _DRBD_DEFAULTS[LDP_FILL_TARGET],
1620 DRBD_DELAY_TARGET: _DRBD_DEFAULTS[LDP_DELAY_TARGET],
1621 DRBD_MAX_RATE: _DRBD_DEFAULTS[LDP_MAX_RATE],
1622 DRBD_MIN_RATE: _DRBD_DEFAULTS[LDP_MIN_RATE],
1629 RBD_POOL: DISK_LD_DEFAULTS[DT_RBD][LDP_POOL],
1630 RBD_ACCESS: DISK_LD_DEFAULTS[DT_RBD][LDP_ACCESS],
1635 # we don't want to export the shortcuts
1636 del _LV_DEFAULTS, _DRBD_DEFAULTS
1639 NIC_MODE: NIC_MODE_BRIDGED,
1640 NIC_LINK: DEFAULT_BRIDGE,
1641 NIC_VLAN: VALUE_HS_NOTHING,
1644 # All of the following values are quite arbitrarily - there are no
1645 # "good" defaults, these must be customised per-site
1646 ISPECS_MINMAX_DEFAULTS = {
1648 ISPEC_MEM_SIZE: 128,
1650 ISPEC_DISK_COUNT: 1,
1651 ISPEC_DISK_SIZE: 1024,
1653 ISPEC_SPINDLE_USE: 1,
1656 ISPEC_MEM_SIZE: 32768,
1658 ISPEC_DISK_COUNT: MAX_DISKS,
1659 ISPEC_DISK_SIZE: 1024 * 1024,
1660 ISPEC_NIC_COUNT: MAX_NICS,
1661 ISPEC_SPINDLE_USE: 12,
1664 IPOLICY_DEFAULTS = {
1665 ISPECS_MINMAX: [ISPECS_MINMAX_DEFAULTS],
1667 ISPEC_MEM_SIZE: 128,
1669 ISPEC_DISK_COUNT: 1,
1670 ISPEC_DISK_SIZE: 1024,
1672 ISPEC_SPINDLE_USE: 1,
1674 IPOLICY_DTS: list(DISK_TEMPLATES),
1675 IPOLICY_VCPU_RATIO: 4.0,
1676 IPOLICY_SPINDLE_RATIO: 32.0,
1679 MASTER_POOL_SIZE_DEFAULT = 10
1681 # Exclusive storage:
1682 # Error margin used to compare physical disks
1684 # Space reserved when creating instance disks
1687 CONFD_PROTOCOL_VERSION = _constants.CONFD_PROTOCOL_VERSION
1689 CONFD_REQ_PING = _constants.CONFD_REQ_PING
1690 CONFD_REQ_NODE_ROLE_BYNAME = _constants.CONFD_REQ_NODE_ROLE_BYNAME
1691 CONFD_REQ_NODE_PIP_BY_INSTANCE_IP = _constants.CONFD_REQ_NODE_PIP_BY_INSTANCE_IP
1692 CONFD_REQ_CLUSTER_MASTER = _constants.CONFD_REQ_CLUSTER_MASTER
1693 CONFD_REQ_NODE_PIP_LIST = _constants.CONFD_REQ_NODE_PIP_LIST
1694 CONFD_REQ_MC_PIP_LIST = _constants.CONFD_REQ_MC_PIP_LIST
1695 CONFD_REQ_INSTANCES_IPS_LIST = _constants.CONFD_REQ_INSTANCES_IPS_LIST
1696 CONFD_REQ_NODE_DRBD = _constants.CONFD_REQ_NODE_DRBD
1697 CONFD_REQ_NODE_INSTANCES = _constants.CONFD_REQ_NODE_INSTANCES
1698 CONFD_REQS = _constants.CONFD_REQS
1700 # Confd request query fields. These are used to narrow down queries.
1701 # These must be strings rather than integers, because json-encoding
1702 # converts them to strings anyway, as they're used as dict-keys.
1703 CONFD_REQQ_LINK = _constants.CONFD_REQQ_LINK
1704 CONFD_REQQ_IP = _constants.CONFD_REQQ_IP
1705 CONFD_REQQ_IPLIST = _constants.CONFD_REQQ_IPLIST
1706 CONFD_REQQ_FIELDS = _constants.CONFD_REQQ_FIELDS
1708 # FIXME: perhaps update code that uses these constants to deal with
1709 # integers instead of strings
1710 CONFD_REQFIELD_NAME = str(_constants.CONFD_REQFIELD_NAME)
1711 CONFD_REQFIELD_IP = str(_constants.CONFD_REQFIELD_IP)
1712 CONFD_REQFIELD_MNODE_PIP = str(_constants.CONFD_REQFIELD_MNODE_PIP)
1714 CONFD_REPL_STATUS_OK = _constants.CONFD_REPL_STATUS_OK
1715 CONFD_REPL_STATUS_ERROR = _constants.CONFD_REPL_STATUS_ERROR
1716 CONFD_REPL_STATUS_NOTIMPLEMENTED = _constants.CONFD_REPL_STATUS_NOTIMPLEMENTED
1717 CONFD_REPL_STATUSES = _constants.CONFD_REPL_STATUSES
1719 CONFD_NODE_ROLE_MASTER = _constants.CONFD_NODE_ROLE_MASTER
1720 CONFD_NODE_ROLE_CANDIDATE = _constants.CONFD_NODE_ROLE_CANDIDATE
1721 CONFD_NODE_ROLE_OFFLINE = _constants.CONFD_NODE_ROLE_OFFLINE
1722 CONFD_NODE_ROLE_DRAINED = _constants.CONFD_NODE_ROLE_DRAINED
1723 CONFD_NODE_ROLE_REGULAR = _constants.CONFD_NODE_ROLE_REGULAR
1725 CONFD_ERROR_UNKNOWN_ENTRY = _constants.CONFD_ERROR_UNKNOWN_ENTRY
1726 CONFD_ERROR_INTERNAL = _constants.CONFD_ERROR_INTERNAL
1727 CONFD_ERROR_ARGUMENT = _constants.CONFD_ERROR_ARGUMENT
1729 # Each request is "salted" by the current timestamp.
1730 # This constants decides how many seconds of skew to accept.
1731 # TODO: make this a default and allow the value to be more configurable
1732 CONFD_MAX_CLOCK_SKEW = _constants.CONFD_MAX_CLOCK_SKEW
1734 # When we haven't reloaded the config for more than this amount of
1735 # seconds, we force a test to see if inotify is betraying us. Using a
1736 # prime number to ensure we get less chance of 'same wakeup' with
1738 CONFD_CONFIG_RELOAD_TIMEOUT = _constants.CONFD_CONFIG_RELOAD_TIMEOUT
1740 # If we receive more than one update in this amount of microseconds,
1741 # we move to polling every RATELIMIT seconds, rather than relying on
1742 # inotify, to be able to serve more requests.
1743 CONFD_CONFIG_RELOAD_RATELIMIT = _constants.CONFD_CONFIG_RELOAD_RATELIMIT
1745 # Magic number prepended to all confd queries.
1746 # This allows us to distinguish different types of confd protocols and handle
1747 # them. For example by changing this we can move the whole payload to be
1748 # compressed, or move away from json.
1749 CONFD_MAGIC_FOURCC = _constants.CONFD_MAGIC_FOURCC
1751 # By default a confd request is sent to the minimum between this number and all
1752 # MCs. 6 was chosen because even in the case of a disastrous 50% response rate,
1753 # we should have enough answers to be able to compare more than one.
1754 CONFD_DEFAULT_REQ_COVERAGE = _constants.CONFD_DEFAULT_REQ_COVERAGE
1756 # Timeout in seconds to expire pending query request in the confd client
1757 # library. We don't actually expect any answer more than 10 seconds after we
1759 CONFD_CLIENT_EXPIRE_TIMEOUT = _constants.CONFD_CLIENT_EXPIRE_TIMEOUT
1761 # Maximum UDP datagram size.
1762 # On IPv4: 64K - 20 (ip header size) - 8 (udp header size) = 65507
1763 # On IPv6: 64K - 40 (ip6 header size) - 8 (udp header size) = 65487
1764 # (assuming we can't use jumbo frames)
1765 # We just set this to 60K, which should be enough
1766 MAX_UDP_DATA_SIZE = 61440
1768 # User-id pool minimum/maximum acceptable user-ids.
1770 UIDPOOL_UID_MAX = 2 ** 32 - 1 # Assuming 32 bit user-ids
1772 # Name or path of the pgrep command
1775 # Name of the node group that gets created at cluster init or upgrade
1776 INITIAL_NODE_GROUP_NAME = "default"
1778 # Possible values for NodeGroup.alloc_policy
1779 ALLOC_POLICY_PREFERRED = _constants.ALLOC_POLICY_PREFERRED
1780 ALLOC_POLICY_LAST_RESORT = _constants.ALLOC_POLICY_LAST_RESORT
1781 ALLOC_POLICY_UNALLOCABLE = _constants.ALLOC_POLICY_UNALLOCABLE
1782 VALID_ALLOC_POLICIES = _constants.VALID_ALLOC_POLICIES
1784 # Temporary external/shared storage parameters
1785 BLOCKDEV_DRIVER_MANUAL = _constants.BLOCKDEV_DRIVER_MANUAL
1787 # qemu-img path, required for ovfconverter
1788 QEMUIMG_PATH = _constants.QEMUIMG_PATH
1790 # Whether htools was enabled at compilation time
1791 HTOOLS = _constants.HTOOLS
1792 # The hail iallocator
1793 IALLOC_HAIL = "hail"
1795 # Fake opcodes for functions that have hooks attached to them via
1796 # backend.RunLocalHooks
1797 FAKE_OP_MASTER_TURNUP = "OP_CLUSTER_IP_TURNUP"
1798 FAKE_OP_MASTER_TURNDOWN = "OP_CLUSTER_IP_TURNDOWN"
1803 SSHK_ALL = compat.UniqueFrozenset([SSHK_RSA, SSHK_DSA])
1805 # SSH authorized key types
1806 SSHAK_RSA = "ssh-rsa"
1807 SSHAK_DSS = "ssh-dss"
1808 SSHAK_ALL = compat.UniqueFrozenset([SSHAK_RSA, SSHAK_DSS])
1811 SSHS_CLUSTER_NAME = "cluster_name"
1812 SSHS_SSH_HOST_KEY = "ssh_host_key"
1813 SSHS_SSH_ROOT_KEY = "ssh_root_key"
1814 SSHS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
1816 #: Key files for SSH daemon
1817 SSH_DAEMON_KEYFILES = {
1818 SSHK_RSA: (pathutils.SSH_HOST_RSA_PRIV, pathutils.SSH_HOST_RSA_PUB),
1819 SSHK_DSA: (pathutils.SSH_HOST_DSA_PRIV, pathutils.SSH_HOST_DSA_PUB),
1823 NDS_CLUSTER_NAME = "cluster_name"
1824 NDS_NODE_DAEMON_CERTIFICATE = "node_daemon_certificate"
1825 NDS_SSCONF = "ssconf"
1826 NDS_START_NODE_DAEMON = "start_node_daemon"
1828 # Path generating random UUID
1829 RANDOM_UUID_FILE = _constants.RANDOM_UUID_FILE
1831 # Regex string for verifying a UUID
1832 UUID_REGEX = "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
1834 # Auto-repair tag prefixes
1835 AUTO_REPAIR_TAG_PREFIX = _constants.AUTO_REPAIR_TAG_PREFIX
1836 AUTO_REPAIR_TAG_ENABLED = _constants.AUTO_REPAIR_TAG_ENABLED
1837 AUTO_REPAIR_TAG_SUSPENDED = _constants.AUTO_REPAIR_TAG_SUSPENDED
1838 AUTO_REPAIR_TAG_PENDING = _constants.AUTO_REPAIR_TAG_PENDING
1839 AUTO_REPAIR_TAG_RESULT = _constants.AUTO_REPAIR_TAG_RESULT
1841 # Auto-repair levels
1842 AUTO_REPAIR_FIX_STORAGE = _constants.AUTO_REPAIR_FIX_STORAGE
1843 AUTO_REPAIR_MIGRATE = _constants.AUTO_REPAIR_MIGRATE
1844 AUTO_REPAIR_FAILOVER = _constants.AUTO_REPAIR_FAILOVER
1845 AUTO_REPAIR_REINSTALL = _constants.AUTO_REPAIR_REINSTALL
1846 AUTO_REPAIR_ALL_TYPES = _constants.AUTO_REPAIR_ALL_TYPES
1848 # Auto-repair results
1849 AUTO_REPAIR_SUCCESS = _constants.AUTO_REPAIR_SUCCESS
1850 AUTO_REPAIR_FAILURE = _constants.AUTO_REPAIR_FAILURE
1851 AUTO_REPAIR_ENOPERM = _constants.AUTO_REPAIR_ENOPERM
1852 AUTO_REPAIR_ALL_RESULTS = _constants.AUTO_REPAIR_ALL_RESULTS
1854 # The version identifier for builtin data collectors
1855 BUILTIN_DATA_COLLECTOR_VERSION = _constants.BUILTIN_DATA_COLLECTOR_VERSION
1857 # The reason trail opcode parameter name
1858 OPCODE_REASON = _constants.OPCODE_REASON
1860 # The source reasons for the execution of an OpCode
1861 OPCODE_REASON_SRC_CLIENT = "gnt:client"
1862 OPCODE_REASON_SRC_NODED = "gnt:daemon:noded"
1863 OPCODE_REASON_SRC_OPCODE = "gnt:opcode"
1864 OPCODE_REASON_SRC_RLIB2 = "gnt:library:rlib2"
1865 OPCODE_REASON_SRC_USER = "gnt:user"
1867 OPCODE_REASON_SOURCES = compat.UniqueFrozenset([
1868 OPCODE_REASON_SRC_CLIENT,
1869 OPCODE_REASON_SRC_NODED,
1870 OPCODE_REASON_SRC_OPCODE,
1871 OPCODE_REASON_SRC_RLIB2,
1872 OPCODE_REASON_SRC_USER,
1875 DISKSTATS_FILE = _constants.DISKSTATS_FILE
1877 # CPU load collector variables
1878 STAT_FILE = _constants.STAT_FILE
1879 CPUAVGLOAD_BUFFER_SIZE = _constants.CPUAVGLOAD_BUFFER_SIZE
1880 CPUAVGLOAD_WINDOW_SIZE = _constants.CPUAVGLOAD_WINDOW_SIZE
1882 # Mond's variable for periodical data collection
1883 MOND_TIME_INTERVAL = _constants.MOND_TIME_INTERVAL
1885 # MonD's latest API version
1886 MOND_LATEST_API_VERSION = 1
1888 # Timeouts for upgrades
1890 UPGRADE_QUEUE_DRAIN_TIMEOUT = _constants.UPGRADE_QUEUE_DRAIN_TIMEOUT
1891 UPGRADE_QUEUE_POLL_INTERVAL = _constants.UPGRADE_QUEUE_POLL_INTERVAL
1893 # Do not re-export imported modules
1894 del re, _vcsversion, _constants, socket, pathutils, compat
1897 ALLOCATABLE_KEY = "allocatable"
1898 FAILED_KEY = "failed"