constants.py 15.2 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
NODE_INITD_SCRIPT = _autoconf.SYSCONFDIR + "/init.d/ganeti"
113
114

NODED = "ganeti-noded"
Guido Trotter's avatar
Guido Trotter committed
115
RAPI = "ganeti-rapi"
116
MASTERD = "ganeti-masterd"
117

118
119
MULTITHREADED_DAEMONS = frozenset([MASTERD])

120
121
122
123
124
125
DAEMONS_SSL = {
  # daemon-name: (default-cert-path, default-key-path)
  NODED: (SSL_CERT_FILE, SSL_CERT_FILE),
  RAPI: (RAPI_CERT_FILE, RAPI_CERT_FILE),
}

126
127
128
DAEMONS_PORTS = {
  # daemon-name: ("proto", "default-port")
  NODED: ("tcp", 1811),
Guido Trotter's avatar
Guido Trotter committed
129
  RAPI: ("tcp", 5080),
130
131
}
DEFAULT_NODED_PORT = DAEMONS_PORTS[NODED][1]
Guido Trotter's avatar
Guido Trotter committed
132
DEFAULT_RAPI_PORT = DAEMONS_PORTS[RAPI][1]
133

Iustin Pop's avatar
Iustin Pop committed
134
135
FIRST_DRBD_PORT = 11000
LAST_DRBD_PORT = 14999
136
MASTER_SCRIPT = "ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
137

138
LOG_DIR = _autoconf.LOCALSTATEDIR + "/log/ganeti/"
139
140
141
142
143
144
DAEMONS_LOGFILES = {
 # "daemon-name": "logfile"
 NODED: LOG_DIR + "node-daemon.log",
 RAPI: LOG_DIR + "rapi-daemon.log",
 MASTERD: LOG_DIR + "master-daemon.log",
}
145
146
147
LOG_OS_DIR = LOG_DIR + "os"
LOG_WATCHER = LOG_DIR + "watcher.log"
LOG_COMMANDS = LOG_DIR + "commands.log"
Iustin Pop's avatar
Iustin Pop committed
148
LOG_BURNIN = LOG_DIR + "burnin.log"
Iustin Pop's avatar
Iustin Pop committed
149

150
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
151
EXPORT_DIR = _autoconf.EXPORT_DIR
Iustin Pop's avatar
Iustin Pop committed
152
153
154

EXPORT_CONF_FILE = "config.ini"

155
156
157
XEN_KERNEL = _autoconf.XEN_KERNEL
XEN_INITRD = _autoconf.XEN_INITRD

158
KVM_PATH = _autoconf.KVM_PATH
Guido Trotter's avatar
Guido Trotter committed
159
SOCAT_PATH = _autoconf.SOCAT_PATH
Guido Trotter's avatar
Guido Trotter committed
160
KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT
161

162
VALUE_DEFAULT = "default"
163
164
VALUE_AUTO = "auto"
VALUE_GENERATE = "generate"
165
VALUE_NONE = "none"
166
167
VALUE_TRUE = "true"
VALUE_FALSE = "false"
168

Iustin Pop's avatar
Iustin Pop committed
169
# hooks-related constants
170
HOOKS_BASE_DIR = _autoconf.SYSCONFDIR + "/ganeti/hooks"
Iustin Pop's avatar
Iustin Pop committed
171
172
HOOKS_PHASE_PRE = "pre"
HOOKS_PHASE_POST = "post"
173
HOOKS_NAME_CFGUPDATE = "config-update"
174
HOOKS_VERSION = 2
Iustin Pop's avatar
Iustin Pop committed
175
176
177
178
179
180
181
182
183
184
185
186
187

# 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"
188
DT_DRBD8 = "drbd"
189
DT_FILE = "file"
190
191

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

194
195
196
# the set of non-lvm-based disk templates
DTS_NOT_LVM = frozenset([DT_DISKLESS, DT_FILE])

197
198
# logical disk types
LD_LV = "lvm"
199
LD_DRBD8 = "drbd8"
200
LD_FILE = "file"
201
LDS_BLOCK = frozenset([LD_LV, LD_DRBD8])
202

Iustin Pop's avatar
Iustin Pop committed
203
204
# drbd constants
DRBD_HMAC_ALG = "md5"
205
DRBD_NET_PROTOCOL = "C"
Iustin Pop's avatar
Iustin Pop committed
206

207
208
209
# file backend driver
FD_LOOP = "loop"
FD_BLKTAP = "blktap"
210
211

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

214
# disk access mode
215
216
DISK_RDONLY = "ro"
DISK_RDWR = "rw"
217
218
DISK_ACCESS_SET = frozenset([DISK_RDONLY, DISK_RDWR])

219
# disk replacement mode
220
221
222
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
223

224
225
# lock recalculate mode
LOCKS_REPLACE = 'replace'
226
LOCKS_APPEND = 'append'
227

228
# instance creation modes
Iustin Pop's avatar
Iustin Pop committed
229
230
231
232
INSTANCE_CREATE = "create"
INSTANCE_IMPORT = "import"

DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN,
233
234
235
                            DT_DRBD8, DT_FILE])

FILE_DRIVER = frozenset([FD_LOOP, FD_BLKTAP])
Iustin Pop's avatar
Iustin Pop committed
236
237
238
239

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

241
242
243
244
245
# dynamic device modification

DDM_ADD = 'add'
DDM_REMOVE = 'remove'

246
# common exit codes
Iustin Pop's avatar
Iustin Pop committed
247
EXIT_SUCCESS = 0
248
EXIT_FAILURE = 1
249
EXIT_NOTCLUSTER = 5
250
EXIT_NOTMASTER = 11
251
EXIT_NODESETUP_ERROR = 12
Iustin Pop's avatar
Iustin Pop committed
252
EXIT_CONFIRMATION = 13 # need user confirmation
253

254
255
256
257
258
259
260
# tags
TAG_CLUSTER = "cluster"
TAG_NODE = "node"
TAG_INSTANCE = "instance"
MAX_TAG_LEN = 128
MAX_TAGS_PER_OBJ = 4096

261
262
# others
DEFAULT_BRIDGE = "xen-br0"
Iustin Pop's avatar
Iustin Pop committed
263
SYNC_SPEED = 60 * 1024
Iustin Pop's avatar
Iustin Pop committed
264
LOCALHOST_IP_ADDRESS = "127.0.0.1"
265
TCP_PING_TIMEOUT = 10
266
GANETI_RUNAS = "root"
267
DEFAULT_VG = "xenvg"
268
BIND_ADDRESS_GLOBAL = "0.0.0.0"
269
MIN_VG_SIZE = 20480
270
DEFAULT_MAC_PREFIX = "aa:00:00"
271
LVM_STRIPECOUNT = _autoconf.LVM_STRIPECOUNT
272

273
274
275
276
# RPC constants
(RPC_ENCODING_NONE,
 RPC_ENCODING_ZLIB_BASE64) = range(2)

277
278
279
280
281
# 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
282
OS_SCRIPTS = frozenset([OS_SCRIPT_CREATE, OS_SCRIPT_IMPORT,
283
                        OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME])
284

285
# ssh constants
286
SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT
287
288
289
290
291
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"
292
293
SSH = "ssh"
SCP = "scp"
294
295
296
297
298

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

300
301
302
303
REBOOT_TYPES = frozenset([INSTANCE_REBOOT_SOFT,
                          INSTANCE_REBOOT_HARD,
                          INSTANCE_REBOOT_FULL])

304
305
306
307
308
309
310
311
312
313
314
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,
                      ])

315
316
317
318
319
320
# 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"
321
322
323
HV_VNC_TLS = "vnc_tls"
HV_VNC_X509 = "vnc_x509_path"
HV_VNC_X509_VERIFY = "vnc_x509_verify"
324
325
HV_ACPI = "acpi"
HV_PAE = "pae"
326
HV_KERNEL_ARGS = "kernel_args"
327
328
HV_KERNEL_PATH = "kernel_path"
HV_INITRD_PATH = "initrd_path"
329
HV_ROOT_PATH = "root_path"
330
HV_SERIAL_CONSOLE = "serial_console"
331
HV_USB_MOUSE = "usb_mouse"
332
HV_DEVICE_MODEL = "device_model"
333

334
335
336
337
338
339
340
341
342
343
344
345
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,
346
  HV_KERNEL_ARGS: VTYPE_STRING,
347
348
349
350
  HV_INITRD_PATH: VTYPE_STRING,
  HV_ROOT_PATH: VTYPE_STRING,
  HV_SERIAL_CONSOLE: VTYPE_BOOL,
  HV_USB_MOUSE: VTYPE_STRING,
351
  HV_DEVICE_MODEL: VTYPE_STRING,
352
353
354
  }

HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
355

356
# BE parameter names
Iustin Pop's avatar
Iustin Pop committed
357
BE_MEMORY = "memory"
358
BE_VCPUS = "vcpus"
359
BE_AUTO_BALANCE = "auto_balance"
360

361
362
363
364
365
366
367
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
368

369
370
# Instance Parameters Profile
PP_DEFAULT = "default"
371

Guido Trotter's avatar
Guido Trotter committed
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
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())

387
# Hypervisor constants
Iustin Pop's avatar
Iustin Pop committed
388
HT_XEN_PVM = "xen-pvm"
389
HT_FAKE = "fake"
Iustin Pop's avatar
Iustin Pop committed
390
HT_XEN_HVM = "xen-hvm"
Guido Trotter's avatar
Guido Trotter committed
391
HT_KVM = "kvm"
Iustin Pop's avatar
Iustin Pop committed
392
HYPER_TYPES = frozenset([HT_XEN_PVM, HT_FAKE, HT_XEN_HVM, HT_KVM])
Guido Trotter's avatar
Guido Trotter committed
393
HTS_REQ_PORT = frozenset([HT_XEN_HVM, HT_KVM])
394

395
VNC_BASE_PORT = 5900
396
VNC_PASSWORD_FILE = _autoconf.SYSCONFDIR + "/ganeti/vnc-cluster-password"
397
VNC_DEFAULT_BIND_ADDRESS = '0.0.0.0'
398

399
# NIC types
400
401
402
HT_NIC_RTL8139 = "rtl8139"
HT_NIC_NE2K_PCI = "ne2k_pci"
HT_NIC_NE2K_ISA = "ne2k_isa"
403
404
405
406
407
HT_NIC_I82551 = "i82551"
HT_NIC_I85557B = "i82557b"
HT_NIC_I8259ER = "i82559er"
HT_NIC_PCNET = "pcnet"
HT_NIC_E1000 = "e1000"
408
HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
409

410
411
HT_HVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI,
                                    HT_NIC_NE2K_ISA, HT_NIC_PARAVIRTUAL])
412
413
414
415
416
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])
417
418
419
420
421
422
423
424
425
# 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])
426
427
428
HT_KVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IDE,
                                     HT_DISK_SCSI, HT_DISK_SD, HT_DISK_MTD,
                                     HT_DISK_PFLASH])
429

430
431
432
433
434
435
436
437
438
439
440
441
442
# 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])

443
444
445
446
# Cluster Verify steps
VERIFY_NPLUSONE_MEM = 'nplusone_mem'
VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM])

447
448
449
450
451
452
453
454
455
456
# 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"
457
NV_DRBDLIST = "drbd-list"
458

459
# Allocator framework constants
460
IALLOCATOR_VERSION = 2
461
462
463
464
465
IALLOCATOR_DIR_IN = "in"
IALLOCATOR_DIR_OUT = "out"
IALLOCATOR_MODE_ALLOC = "allocate"
IALLOCATOR_MODE_RELOC = "relocate"
IALLOCATOR_SEARCH_PATH = _autoconf.IALLOCATOR_SEARCH_PATH
466

467
468
469
470
471
# 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"
472
JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
473
JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
Michael Hanselmann's avatar
Michael Hanselmann committed
474
475
JOB_QUEUE_SIZE_HARD_LIMIT = 5000
JOB_QUEUE_SIZE_SOFT_LIMIT = JOB_QUEUE_SIZE_HARD_LIMIT * 0.8
476

477
478
JOB_ID_TEMPLATE = r"\d+"

479
480
481
# unchanged job return
JOB_NOTCHANGED = "nochange"

482
483
# Job status
JOB_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
484
JOB_STATUS_WAITLOCK = "waiting"
485
JOB_STATUS_CANCELING = "canceling"
486
487
488
489
490
JOB_STATUS_RUNNING = "running"
JOB_STATUS_CANCELED = "canceled"
JOB_STATUS_SUCCESS = "success"
JOB_STATUS_ERROR = "error"

491
492
# OpCode status
# not yet finalized
493
OP_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
494
OP_STATUS_WAITLOCK = "waiting"
495
OP_STATUS_CANCELING = "canceling"
496
OP_STATUS_RUNNING = "running"
497
# finalized
498
OP_STATUS_CANCELED = "canceled"
499
500
OP_STATUS_SUCCESS = "success"
OP_STATUS_ERROR = "error"
501
502
503
OPS_FINALIZED = frozenset([OP_STATUS_CANCELED,
                           OP_STATUS_SUCCESS,
                           OP_STATUS_ERROR])
504
505
506
507

# Execution log types
ELOG_MESSAGE = "message"
ELOG_PROGRESS = "progress"
508

509
# max dynamic devices
510
511
512
MAX_NICS = 8
MAX_DISKS = 16

Iustin Pop's avatar
Iustin Pop committed
513
514
# SSCONF keys
SS_CLUSTER_NAME = "cluster_name"
515
SS_CLUSTER_TAGS = "cluster_tags"
Iustin Pop's avatar
Iustin Pop committed
516
SS_FILE_STORAGE_DIR = "file_storage_dir"
517
SS_MASTER_CANDIDATES = "master_candidates"
Iustin Pop's avatar
Iustin Pop committed
518
519
520
521
SS_MASTER_IP = "master_ip"
SS_MASTER_NETDEV = "master_netdev"
SS_MASTER_NODE = "master_node"
SS_NODE_LIST = "node_list"
522
SS_OFFLINE_NODES = "offline_nodes"
523
524
SS_ONLINE_NODES = "online_nodes"
SS_INSTANCE_LIST = "instance_list"
525
SS_RELEASE_VERSION = "release_version"
Iustin Pop's avatar
Iustin Pop committed
526

527
528
529
530
# cluster wide default parameters
DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM

HVC_DEFAULTS = {
531
532
  HT_XEN_PVM: {
    HV_KERNEL_PATH: "/boot/vmlinuz-2.6-xenU",
533
    HV_INITRD_PATH: '',
534
    HV_ROOT_PATH: '/dev/sda1',
535
    HV_KERNEL_ARGS: 'ro',
536
537
538
    },
  HT_XEN_HVM: {
    HV_BOOT_ORDER: "cd",
539
    HV_CDROM_IMAGE_PATH: '',
540
    HV_NIC_TYPE: HT_NIC_RTL8139,
541
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
542
543
544
    HV_VNC_BIND_ADDRESS: '0.0.0.0',
    HV_ACPI: True,
    HV_PAE: True,
545
    HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
546
    HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
547
548
549
    },
  HT_KVM: {
    HV_KERNEL_PATH: "/boot/vmlinuz-2.6-kvmU",
550
    HV_INITRD_PATH: '',
551
    HV_KERNEL_ARGS: 'ro',
552
    HV_ROOT_PATH: '/dev/vda1',
553
554
    HV_ACPI: True,
    HV_SERIAL_CONSOLE: True,
555
    HV_VNC_BIND_ADDRESS: '',
556
557
558
    HV_VNC_TLS: False,
    HV_VNC_X509: '',
    HV_VNC_X509_VERIFY: False,
559
    HV_CDROM_IMAGE_PATH: '',
560
    HV_BOOT_ORDER: HT_BO_DISK,
561
562
    HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
    HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
563
    HV_USB_MOUSE: '',
564
565
566
567
    },
  HT_FAKE: {
    },
  }
568
569

BEC_DEFAULTS = {
570
571
572
573
  BE_MEMORY: 128,
  BE_VCPUS: 1,
  BE_AUTO_BALANCE: True,
  }
574

Guido Trotter's avatar
Guido Trotter committed
575
576
577
578
579
NICC_DEFAULTS = {
  NIC_MODE: NIC_MODE_BRIDGED,
  NIC_LINK: DEFAULT_BRIDGE,
  }

580
MASTER_POOL_SIZE_DEFAULT = 10