constants.py 14.8 KB
Newer Older
Iustin Pop's avatar
Iustin Pop committed
1
#
Iustin Pop's avatar
Iustin Pop committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#

# Copyright (C) 2006, 2007 Google Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.


"""Module holding different constants."""

24
from ganeti import _autoconf
25

Iustin Pop's avatar
Iustin Pop committed
26
# various versions
27
PROTOCOL_VERSION = 20
28
RELEASE_VERSION = _autoconf.PACKAGE_VERSION
Guido Trotter's avatar
Guido Trotter committed
29
30
31
OS_API_V10 = 10
OS_API_V15 = 15
OS_API_VERSIONS = frozenset([OS_API_V10, OS_API_V15])
Iustin Pop's avatar
Iustin Pop committed
32
EXPORT_VERSION = 0
33
RAPI_VERSION = 2
Iustin Pop's avatar
Iustin Pop committed
34

35

36
37
38
39
40
41
42
43
# Format for CONFIG_VERSION:
#   01 03 0123 = 01030123
#   ^^ ^^ ^^^^
#   |  |  + Configuration version/revision
#   |  + Minor version
#   + Major version
#
# It stored as an integer. Make sure not to write an octal number.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

# BuildVersion and SplitVersion must be in here because we can't import other
# modules. The cfgupgrade tool must be able to read and write version numbers
# and thus requires these functions. To avoid code duplication, they're kept in
# here.

def BuildVersion(major, minor, revision):
  """Calculates int version number from major, minor and revision numbers.

  Returns: int representing version number

  """
  assert isinstance(major, int)
  assert isinstance(minor, int)
  assert isinstance(revision, int)
  return (1000000 * major +
            10000 * minor +
                1 * revision)


def SplitVersion(version):
  """Splits version number stored in an int.

  Returns: tuple; (major, minor, revision)

  """
  assert isinstance(version, int)

  (major, remainder) = divmod(version, 1000000)
  (minor, revision) = divmod(remainder, 10000)

  return (major, minor, revision)


78
79
80
CONFIG_MAJOR = int(_autoconf.VERSION_MAJOR)
CONFIG_MINOR = int(_autoconf.VERSION_MINOR)
CONFIG_REVISION = 0
81
CONFIG_VERSION = BuildVersion(CONFIG_MAJOR, CONFIG_MINOR, CONFIG_REVISION)
Iustin Pop's avatar
Iustin Pop committed
82
83

# file paths
84
DATA_DIR = _autoconf.LOCALSTATEDIR + "/lib/ganeti"
85
RUN_DIR = _autoconf.LOCALSTATEDIR + "/run"
86
RUN_GANETI_DIR = RUN_DIR + "/ganeti"
87
BDEV_CACHE_DIR = RUN_GANETI_DIR + "/bdev-cache"
88
DISK_LINKS_DIR = RUN_GANETI_DIR + "/instance-disks"
89
RUN_DIRS_MODE = 0755
Guido Trotter's avatar
Guido Trotter committed
90
SOCKET_DIR = RUN_GANETI_DIR + "/socket"
Guido Trotter's avatar
Guido Trotter committed
91
SOCKET_DIR_MODE = 0700
92
93
94
# keep RUN_GANETI_DIR first here, to make sure all get created when the node
# daemon is started (this takes care of RUN_DIR being tmpfs)
SUB_RUN_DIRS = [ RUN_GANETI_DIR, BDEV_CACHE_DIR, DISK_LINKS_DIR ]
Iustin Pop's avatar
Iustin Pop committed
95
LOCK_DIR = _autoconf.LOCALSTATEDIR + "/lock"
96
SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock"
Iustin Pop's avatar
Iustin Pop committed
97
98
CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
SSL_CERT_FILE = DATA_DIR + "/server.pem"
99
RAPI_CERT_FILE = DATA_DIR + "/rapi.pem"
100
HMAC_CLUSTER_KEY = DATA_DIR + "/hmac.key"
101
WATCHER_STATEFILE = DATA_DIR + "/watcher.data"
102
INSTANCE_UPFILE = RUN_GANETI_DIR + "/instance-status"
Iustin Pop's avatar
Iustin Pop committed
103
SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
104
RAPI_USERS_FILE = DATA_DIR + "/rapi_users"
105
QUEUE_DIR = DATA_DIR + "/queue"
106
ETC_HOSTS = "/etc/hosts"
107
DEFAULT_FILE_STORAGE_DIR = _autoconf.FILE_STORAGE_DIR
108
SYSCONFDIR = _autoconf.SYSCONFDIR
109

110
MASTER_SOCKET = SOCKET_DIR + "/ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
111

112
# PID files
Iustin Pop's avatar
Iustin Pop committed
113
MASTERD_PID = "ganeti-masterd"
114
115
116
NODED_PID = "ganeti-noded"
RAPI_PID = "ganeti-rapi"

117
NODE_INITD_SCRIPT = _autoconf.SYSCONFDIR + "/init.d/ganeti"
Iustin Pop's avatar
Iustin Pop committed
118
119
120
DEFAULT_NODED_PORT = 1811
FIRST_DRBD_PORT = 11000
LAST_DRBD_PORT = 14999
121
MASTER_SCRIPT = "ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
122

123
124
125
126
127
128
129
LOG_DIR = _autoconf.LOCALSTATEDIR + "/log/ganeti/"
LOG_OS_DIR = LOG_DIR + "os"
LOG_NODESERVER = LOG_DIR + "node-daemon.log"
LOG_WATCHER = LOG_DIR + "watcher.log"
LOG_MASTERDAEMON = LOG_DIR + "master-daemon.log"
LOG_RAPISERVER = LOG_DIR + "rapi-daemon.log"
LOG_COMMANDS = LOG_DIR + "commands.log"
Iustin Pop's avatar
Iustin Pop committed
130
LOG_BURNIN = LOG_DIR + "burnin.log"
Iustin Pop's avatar
Iustin Pop committed
131

132
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
133
EXPORT_DIR = _autoconf.EXPORT_DIR
Iustin Pop's avatar
Iustin Pop committed
134
135
136

EXPORT_CONF_FILE = "config.ini"

137
138
139
XEN_KERNEL = _autoconf.XEN_KERNEL
XEN_INITRD = _autoconf.XEN_INITRD

140
KVM_PATH = _autoconf.KVM_PATH
Guido Trotter's avatar
Guido Trotter committed
141
SOCAT_PATH = _autoconf.SOCAT_PATH
Guido Trotter's avatar
Guido Trotter committed
142
KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT
143

144
VALUE_DEFAULT = "default"
145
146
VALUE_AUTO = "auto"
VALUE_GENERATE = "generate"
147
VALUE_NONE = "none"
148
149
VALUE_TRUE = "true"
VALUE_FALSE = "false"
150

Iustin Pop's avatar
Iustin Pop committed
151
# hooks-related constants
152
HOOKS_BASE_DIR = _autoconf.SYSCONFDIR + "/ganeti/hooks"
Iustin Pop's avatar
Iustin Pop committed
153
154
HOOKS_PHASE_PRE = "pre"
HOOKS_PHASE_POST = "post"
155
HOOKS_NAME_CFGUPDATE = "config-update"
156
HOOKS_VERSION = 2
Iustin Pop's avatar
Iustin Pop committed
157
158
159
160
161
162
163
164
165
166
167
168
169

# hooks subject type (what object type does the LU deal with)
HTYPE_CLUSTER = "CLUSTER"
HTYPE_NODE = "NODE"
HTYPE_INSTANCE = "INSTANCE"

HKR_SKIP = 0
HKR_FAIL = 1
HKR_SUCCESS = 2

# disk template types
DT_DISKLESS = "diskless"
DT_PLAIN = "plain"
170
DT_DRBD8 = "drbd"
171
DT_FILE = "file"
172
173

# the set of network-mirrored disk templates
174
DTS_NET_MIRROR = frozenset([DT_DRBD8])
Iustin Pop's avatar
Iustin Pop committed
175

176
177
178
# the set of non-lvm-based disk templates
DTS_NOT_LVM = frozenset([DT_DISKLESS, DT_FILE])

179
180
# logical disk types
LD_LV = "lvm"
181
LD_DRBD8 = "drbd8"
182
LD_FILE = "file"
183
LDS_BLOCK = frozenset([LD_LV, LD_DRBD8])
184

Iustin Pop's avatar
Iustin Pop committed
185
186
# drbd constants
DRBD_HMAC_ALG = "md5"
187
DRBD_NET_PROTOCOL = "C"
Iustin Pop's avatar
Iustin Pop committed
188

189
190
191
# file backend driver
FD_LOOP = "loop"
FD_BLKTAP = "blktap"
192
193

# the set of drbd-like disk types
194
LDS_DRBD = frozenset([LD_DRBD8])
195

196
# disk access mode
197
198
DISK_RDONLY = "ro"
DISK_RDWR = "rw"
199
200
DISK_ACCESS_SET = frozenset([DISK_RDONLY, DISK_RDWR])

201
# disk replacement mode
202
203
204
REPLACE_DISK_PRI = "replace_on_primary"    # replace disks on primary
REPLACE_DISK_SEC = "replace_on_secondary"  # replace disks on secondary
REPLACE_DISK_CHG = "replace_new_secondary" # change secondary node
205

206
207
# lock recalculate mode
LOCKS_REPLACE = 'replace'
208
LOCKS_APPEND = 'append'
209

210
# instance creation modes
Iustin Pop's avatar
Iustin Pop committed
211
212
213
214
INSTANCE_CREATE = "create"
INSTANCE_IMPORT = "import"

DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN,
215
216
217
                            DT_DRBD8, DT_FILE])

FILE_DRIVER = frozenset([FD_LOOP, FD_BLKTAP])
Iustin Pop's avatar
Iustin Pop committed
218
219
220
221

# import/export config options
INISECT_EXP = "export"
INISECT_INS = "instance"
222

223
224
225
226
227
# dynamic device modification

DDM_ADD = 'add'
DDM_REMOVE = 'remove'

228
# common exit codes
Iustin Pop's avatar
Iustin Pop committed
229
EXIT_SUCCESS = 0
230
EXIT_FAILURE = 1
231
EXIT_NOTCLUSTER = 5
232
EXIT_NOTMASTER = 11
233
EXIT_NODESETUP_ERROR = 12
Iustin Pop's avatar
Iustin Pop committed
234
EXIT_CONFIRMATION = 13 # need user confirmation
235

236
237
238
239
240
241
242
# tags
TAG_CLUSTER = "cluster"
TAG_NODE = "node"
TAG_INSTANCE = "instance"
MAX_TAG_LEN = 128
MAX_TAGS_PER_OBJ = 4096

243
244
# others
DEFAULT_BRIDGE = "xen-br0"
Iustin Pop's avatar
Iustin Pop committed
245
SYNC_SPEED = 60 * 1024
Iustin Pop's avatar
Iustin Pop committed
246
LOCALHOST_IP_ADDRESS = "127.0.0.1"
247
TCP_PING_TIMEOUT = 10
248
GANETI_RUNAS = "root"
249
DEFAULT_VG = "xenvg"
250
BIND_ADDRESS_GLOBAL = "0.0.0.0"
251
MIN_VG_SIZE = 20480
252
DEFAULT_MAC_PREFIX = "aa:00:00"
253
LVM_STRIPECOUNT = _autoconf.LVM_STRIPECOUNT
254

255
256
257
258
# RPC constants
(RPC_ENCODING_NONE,
 RPC_ENCODING_ZLIB_BASE64) = range(2)

259
260
261
262
263
# os related constants
OS_SCRIPT_CREATE = 'create'
OS_SCRIPT_IMPORT = 'import'
OS_SCRIPT_EXPORT = 'export'
OS_SCRIPT_RENAME = 'rename'
Iustin Pop's avatar
Iustin Pop committed
264
OS_SCRIPTS = frozenset([OS_SCRIPT_CREATE, OS_SCRIPT_IMPORT,
265
                        OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME])
266

267
# ssh constants
268
SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT
269
270
271
272
273
SSH_CONFIG_DIR = "/etc/ssh/"
SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "ssh_host_dsa_key"
SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub"
SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "ssh_host_rsa_key"
SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub"
274
275
SSH = "ssh"
SCP = "scp"
276
277
278
279
280

# reboot types
INSTANCE_REBOOT_SOFT = "soft"
INSTANCE_REBOOT_HARD = "hard"
INSTANCE_REBOOT_FULL = "full"
281

282
283
284
285
REBOOT_TYPES = frozenset([INSTANCE_REBOOT_SOFT,
                          INSTANCE_REBOOT_HARD,
                          INSTANCE_REBOOT_FULL])

286
287
288
289
290
291
292
293
294
295
296
VTYPE_STRING = 'string'
VTYPE_BOOL = 'bool'
VTYPE_SIZE = 'size' # size, in MiBs
VTYPE_INT = 'int'
ENFORCEABLE_TYPES = frozenset([
                      VTYPE_STRING,
                      VTYPE_BOOL,
                      VTYPE_SIZE,
                      VTYPE_INT,
                      ])

297
298
299
300
301
302
# HV parameter names (global namespace)
HV_BOOT_ORDER = "boot_order"
HV_CDROM_IMAGE_PATH = "cdrom_image_path"
HV_NIC_TYPE = "nic_type"
HV_DISK_TYPE = "disk_type"
HV_VNC_BIND_ADDRESS = "vnc_bind_address"
303
304
305
HV_VNC_TLS = "vnc_tls"
HV_VNC_X509 = "vnc_x509_path"
HV_VNC_X509_VERIFY = "vnc_x509_verify"
306
307
HV_ACPI = "acpi"
HV_PAE = "pae"
308
HV_KERNEL_ARGS = "kernel_args"
309
310
HV_KERNEL_PATH = "kernel_path"
HV_INITRD_PATH = "initrd_path"
311
HV_ROOT_PATH = "root_path"
312
HV_SERIAL_CONSOLE = "serial_console"
313
HV_USB_MOUSE = "usb_mouse"
314
HV_DEVICE_MODEL = "device_model"
315

316
317
318
319
320
321
322
323
324
325
326
327
HVS_PARAMETER_TYPES = {
  HV_BOOT_ORDER: VTYPE_STRING,
  HV_CDROM_IMAGE_PATH: VTYPE_STRING,
  HV_NIC_TYPE: VTYPE_STRING,
  HV_DISK_TYPE: VTYPE_STRING,
  HV_VNC_BIND_ADDRESS: VTYPE_STRING,
  HV_VNC_TLS: VTYPE_BOOL,
  HV_VNC_X509: VTYPE_STRING,
  HV_VNC_X509_VERIFY: VTYPE_BOOL,
  HV_ACPI: VTYPE_BOOL,
  HV_PAE: VTYPE_BOOL,
  HV_KERNEL_PATH: VTYPE_STRING,
328
  HV_KERNEL_ARGS: VTYPE_STRING,
329
330
331
332
  HV_INITRD_PATH: VTYPE_STRING,
  HV_ROOT_PATH: VTYPE_STRING,
  HV_SERIAL_CONSOLE: VTYPE_BOOL,
  HV_USB_MOUSE: VTYPE_STRING,
333
  HV_DEVICE_MODEL: VTYPE_STRING,
334
335
336
  }

HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
337

338
# BE parameter names
Iustin Pop's avatar
Iustin Pop committed
339
BE_MEMORY = "memory"
340
BE_VCPUS = "vcpus"
341
BE_AUTO_BALANCE = "auto_balance"
342

343
344
345
346
347
348
349
BES_PARAMETER_TYPES = {
    BE_MEMORY: VTYPE_SIZE,
    BE_VCPUS: VTYPE_INT,
    BE_AUTO_BALANCE: VTYPE_BOOL,
    }

BES_PARAMETERS = frozenset(BES_PARAMETER_TYPES.keys())
Iustin Pop's avatar
Iustin Pop committed
350

351
352
# Instance Parameters Profile
PP_DEFAULT = "default"
353

Guido Trotter's avatar
Guido Trotter committed
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
NIC_MODE = "mode"
NIC_LINK = "link"

NIC_MODE_BRIDGED = "bridged"
NIC_MODE_ROUTED = "routed"

NIC_VALID_MODES = frozenset([NIC_MODE_BRIDGED, NIC_MODE_ROUTED])

NICS_PARAMETER_TYPES = {
    NIC_MODE: VTYPE_STRING,
    NIC_LINK: VTYPE_STRING,
    }

NICS_PARAMETERS = frozenset(NICS_PARAMETER_TYPES.keys())

369
# Hypervisor constants
Iustin Pop's avatar
Iustin Pop committed
370
HT_XEN_PVM = "xen-pvm"
371
HT_FAKE = "fake"
Iustin Pop's avatar
Iustin Pop committed
372
HT_XEN_HVM = "xen-hvm"
Guido Trotter's avatar
Guido Trotter committed
373
HT_KVM = "kvm"
Iustin Pop's avatar
Iustin Pop committed
374
HYPER_TYPES = frozenset([HT_XEN_PVM, HT_FAKE, HT_XEN_HVM, HT_KVM])
Guido Trotter's avatar
Guido Trotter committed
375
HTS_REQ_PORT = frozenset([HT_XEN_HVM, HT_KVM])
376

377
VNC_BASE_PORT = 5900
378
VNC_PASSWORD_FILE = _autoconf.SYSCONFDIR + "/ganeti/vnc-cluster-password"
379
VNC_DEFAULT_BIND_ADDRESS = '0.0.0.0'
380

381
# NIC types
382
383
384
HT_NIC_RTL8139 = "rtl8139"
HT_NIC_NE2K_PCI = "ne2k_pci"
HT_NIC_NE2K_ISA = "ne2k_isa"
385
386
387
388
389
HT_NIC_I82551 = "i82551"
HT_NIC_I85557B = "i82557b"
HT_NIC_I8259ER = "i82559er"
HT_NIC_PCNET = "pcnet"
HT_NIC_E1000 = "e1000"
390
HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
391

392
393
HT_HVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI,
                                    HT_NIC_NE2K_ISA, HT_NIC_PARAVIRTUAL])
394
395
396
397
398
HT_KVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI,
                                    HT_NIC_NE2K_ISA, HT_NIC_I82551,
                                    HT_NIC_I85557B, HT_NIC_I8259ER,
                                    HT_NIC_PCNET, HT_NIC_E1000,
                                    HT_NIC_PARAVIRTUAL])
399
400
401
402
403
404
405
406
407
# Disk types
HT_DISK_IOEMU = "ioemu"
HT_DISK_IDE = "ide"
HT_DISK_SCSI = "scsi"
HT_DISK_SD = "sd"
HT_DISK_MTD = "mtd"
HT_DISK_PFLASH = "pflash"

HT_HVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IOEMU])
408
409
410
HT_KVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IDE,
                                     HT_DISK_SCSI, HT_DISK_SD, HT_DISK_MTD,
                                     HT_DISK_PFLASH])
411

412
413
414
415
416
417
418
419
420
421
422
423
424
# Mouse types:
HT_MOUSE_MOUSE = "mouse"
HT_MOUSE_TABLET = "tablet"

HT_KVM_VALID_MOUSE_TYPES = frozenset([HT_MOUSE_MOUSE, HT_MOUSE_TABLET])

# Boot order
HT_BO_CDROM = "cdrom"
HT_BO_DISK = "disk"
HT_BO_NETWORK = "network"

HT_KVM_VALID_BO_TYPES = frozenset([HT_BO_CDROM, HT_BO_DISK, HT_BO_NETWORK])

425
426
427
428
# Cluster Verify steps
VERIFY_NPLUSONE_MEM = 'nplusone_mem'
VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM])

429
430
431
432
433
434
435
436
437
438
# Node verify constants
NV_FILELIST = "filelist"
NV_HVINFO = "hvinfo"
NV_HYPERVISOR = "hypervisor"
NV_INSTANCELIST = "instancelist"
NV_LVLIST = "lvlist"
NV_NODELIST = "nodelist"
NV_NODENETTEST = "node-net-test"
NV_VERSION = "version"
NV_VGLIST = "vglist"
439
NV_DRBDLIST = "drbd-list"
440

441
# Allocator framework constants
442
IALLOCATOR_VERSION = 2
443
444
445
446
447
IALLOCATOR_DIR_IN = "in"
IALLOCATOR_DIR_OUT = "out"
IALLOCATOR_MODE_ALLOC = "allocate"
IALLOCATOR_MODE_RELOC = "relocate"
IALLOCATOR_SEARCH_PATH = _autoconf.IALLOCATOR_SEARCH_PATH
448

449
450
451
452
453
# Job queue
JOB_QUEUE_VERSION = 1
JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
454
JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
455
JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
Michael Hanselmann's avatar
Michael Hanselmann committed
456
457
JOB_QUEUE_SIZE_HARD_LIMIT = 5000
JOB_QUEUE_SIZE_SOFT_LIMIT = JOB_QUEUE_SIZE_HARD_LIMIT * 0.8
458

459
460
JOB_ID_TEMPLATE = r"\d+"

461
462
463
# unchanged job return
JOB_NOTCHANGED = "nochange"

464
465
# Job status
JOB_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
466
JOB_STATUS_WAITLOCK = "waiting"
467
JOB_STATUS_CANCELING = "canceling"
468
469
470
471
472
JOB_STATUS_RUNNING = "running"
JOB_STATUS_CANCELED = "canceled"
JOB_STATUS_SUCCESS = "success"
JOB_STATUS_ERROR = "error"

473
474
# OpCode status
# not yet finalized
475
OP_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
476
OP_STATUS_WAITLOCK = "waiting"
477
OP_STATUS_CANCELING = "canceling"
478
OP_STATUS_RUNNING = "running"
479
# finalized
480
OP_STATUS_CANCELED = "canceled"
481
482
OP_STATUS_SUCCESS = "success"
OP_STATUS_ERROR = "error"
483
484
485
OPS_FINALIZED = frozenset([OP_STATUS_CANCELED,
                           OP_STATUS_SUCCESS,
                           OP_STATUS_ERROR])
486
487
488
489

# Execution log types
ELOG_MESSAGE = "message"
ELOG_PROGRESS = "progress"
490
491

RAPI_PORT = 5080
492

493
# max dynamic devices
494
495
496
MAX_NICS = 8
MAX_DISKS = 16

Iustin Pop's avatar
Iustin Pop committed
497
498
# SSCONF keys
SS_CLUSTER_NAME = "cluster_name"
499
SS_CLUSTER_TAGS = "cluster_tags"
Iustin Pop's avatar
Iustin Pop committed
500
SS_FILE_STORAGE_DIR = "file_storage_dir"
501
SS_MASTER_CANDIDATES = "master_candidates"
Iustin Pop's avatar
Iustin Pop committed
502
503
504
505
SS_MASTER_IP = "master_ip"
SS_MASTER_NETDEV = "master_netdev"
SS_MASTER_NODE = "master_node"
SS_NODE_LIST = "node_list"
506
SS_OFFLINE_NODES = "offline_nodes"
507
508
SS_ONLINE_NODES = "online_nodes"
SS_INSTANCE_LIST = "instance_list"
509
SS_RELEASE_VERSION = "release_version"
Iustin Pop's avatar
Iustin Pop committed
510

511
512
513
514
# cluster wide default parameters
DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM

HVC_DEFAULTS = {
515
516
  HT_XEN_PVM: {
    HV_KERNEL_PATH: "/boot/vmlinuz-2.6-xenU",
517
    HV_INITRD_PATH: '',
518
    HV_ROOT_PATH: '/dev/sda1',
519
    HV_KERNEL_ARGS: 'ro',
520
521
522
    },
  HT_XEN_HVM: {
    HV_BOOT_ORDER: "cd",
523
    HV_CDROM_IMAGE_PATH: '',
524
    HV_NIC_TYPE: HT_NIC_RTL8139,
525
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
526
527
528
    HV_VNC_BIND_ADDRESS: '0.0.0.0',
    HV_ACPI: True,
    HV_PAE: True,
529
    HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
530
    HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
531
532
533
    },
  HT_KVM: {
    HV_KERNEL_PATH: "/boot/vmlinuz-2.6-kvmU",
534
    HV_INITRD_PATH: '',
535
    HV_KERNEL_ARGS: 'ro',
536
    HV_ROOT_PATH: '/dev/vda1',
537
538
    HV_ACPI: True,
    HV_SERIAL_CONSOLE: True,
539
    HV_VNC_BIND_ADDRESS: '',
540
541
542
    HV_VNC_TLS: False,
    HV_VNC_X509: '',
    HV_VNC_X509_VERIFY: False,
543
    HV_CDROM_IMAGE_PATH: '',
544
    HV_BOOT_ORDER: HT_BO_DISK,
545
546
    HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
547
    HV_USB_MOUSE: '',
548
549
550
551
    },
  HT_FAKE: {
    },
  }
552
553

BEC_DEFAULTS = {
554
555
556
557
  BE_MEMORY: 128,
  BE_VCPUS: 1,
  BE_AUTO_BALANCE: True,
  }
558

Guido Trotter's avatar
Guido Trotter committed
559
560
561
562
563
NICC_DEFAULTS = {
  NIC_MODE: NIC_MODE_BRIDGED,
  NIC_LINK: DEFAULT_BRIDGE,
  }

564
MASTER_POOL_SIZE_DEFAULT = 10