constants.py 15 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"
118
119

NODED = "ganeti-noded"
Guido Trotter's avatar
Guido Trotter committed
120
RAPI = "ganeti-rapi"
121
122
123
124

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

Iustin Pop's avatar
Iustin Pop committed
130
131
FIRST_DRBD_PORT = 11000
LAST_DRBD_PORT = 14999
132
MASTER_SCRIPT = "ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
133

134
135
136
137
138
139
140
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
141
LOG_BURNIN = LOG_DIR + "burnin.log"
Iustin Pop's avatar
Iustin Pop committed
142

143
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
144
EXPORT_DIR = _autoconf.EXPORT_DIR
Iustin Pop's avatar
Iustin Pop committed
145
146
147

EXPORT_CONF_FILE = "config.ini"

148
149
150
XEN_KERNEL = _autoconf.XEN_KERNEL
XEN_INITRD = _autoconf.XEN_INITRD

151
KVM_PATH = _autoconf.KVM_PATH
Guido Trotter's avatar
Guido Trotter committed
152
SOCAT_PATH = _autoconf.SOCAT_PATH
Guido Trotter's avatar
Guido Trotter committed
153
KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT
154

155
VALUE_DEFAULT = "default"
156
157
VALUE_AUTO = "auto"
VALUE_GENERATE = "generate"
158
VALUE_NONE = "none"
159
160
VALUE_TRUE = "true"
VALUE_FALSE = "false"
161

Iustin Pop's avatar
Iustin Pop committed
162
# hooks-related constants
163
HOOKS_BASE_DIR = _autoconf.SYSCONFDIR + "/ganeti/hooks"
Iustin Pop's avatar
Iustin Pop committed
164
165
HOOKS_PHASE_PRE = "pre"
HOOKS_PHASE_POST = "post"
166
HOOKS_NAME_CFGUPDATE = "config-update"
167
HOOKS_VERSION = 2
Iustin Pop's avatar
Iustin Pop committed
168
169
170
171
172
173
174
175
176
177
178
179
180

# 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"
181
DT_DRBD8 = "drbd"
182
DT_FILE = "file"
183
184

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

187
188
189
# the set of non-lvm-based disk templates
DTS_NOT_LVM = frozenset([DT_DISKLESS, DT_FILE])

190
191
# logical disk types
LD_LV = "lvm"
192
LD_DRBD8 = "drbd8"
193
LD_FILE = "file"
194
LDS_BLOCK = frozenset([LD_LV, LD_DRBD8])
195

Iustin Pop's avatar
Iustin Pop committed
196
197
# drbd constants
DRBD_HMAC_ALG = "md5"
198
DRBD_NET_PROTOCOL = "C"
Iustin Pop's avatar
Iustin Pop committed
199

200
201
202
# file backend driver
FD_LOOP = "loop"
FD_BLKTAP = "blktap"
203
204

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

207
# disk access mode
208
209
DISK_RDONLY = "ro"
DISK_RDWR = "rw"
210
211
DISK_ACCESS_SET = frozenset([DISK_RDONLY, DISK_RDWR])

212
# disk replacement mode
213
214
215
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
216

217
218
# lock recalculate mode
LOCKS_REPLACE = 'replace'
219
LOCKS_APPEND = 'append'
220

221
# instance creation modes
Iustin Pop's avatar
Iustin Pop committed
222
223
224
225
INSTANCE_CREATE = "create"
INSTANCE_IMPORT = "import"

DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN,
226
227
228
                            DT_DRBD8, DT_FILE])

FILE_DRIVER = frozenset([FD_LOOP, FD_BLKTAP])
Iustin Pop's avatar
Iustin Pop committed
229
230
231
232

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

234
235
236
237
238
# dynamic device modification

DDM_ADD = 'add'
DDM_REMOVE = 'remove'

239
# common exit codes
Iustin Pop's avatar
Iustin Pop committed
240
EXIT_SUCCESS = 0
241
EXIT_FAILURE = 1
242
EXIT_NOTCLUSTER = 5
243
EXIT_NOTMASTER = 11
244
EXIT_NODESETUP_ERROR = 12
Iustin Pop's avatar
Iustin Pop committed
245
EXIT_CONFIRMATION = 13 # need user confirmation
246

247
248
249
250
251
252
253
# tags
TAG_CLUSTER = "cluster"
TAG_NODE = "node"
TAG_INSTANCE = "instance"
MAX_TAG_LEN = 128
MAX_TAGS_PER_OBJ = 4096

254
255
# others
DEFAULT_BRIDGE = "xen-br0"
Iustin Pop's avatar
Iustin Pop committed
256
SYNC_SPEED = 60 * 1024
Iustin Pop's avatar
Iustin Pop committed
257
LOCALHOST_IP_ADDRESS = "127.0.0.1"
258
TCP_PING_TIMEOUT = 10
259
GANETI_RUNAS = "root"
260
DEFAULT_VG = "xenvg"
261
BIND_ADDRESS_GLOBAL = "0.0.0.0"
262
MIN_VG_SIZE = 20480
263
DEFAULT_MAC_PREFIX = "aa:00:00"
264
LVM_STRIPECOUNT = _autoconf.LVM_STRIPECOUNT
265

266
267
268
269
# RPC constants
(RPC_ENCODING_NONE,
 RPC_ENCODING_ZLIB_BASE64) = range(2)

270
271
272
273
274
# 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
275
OS_SCRIPTS = frozenset([OS_SCRIPT_CREATE, OS_SCRIPT_IMPORT,
276
                        OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME])
277

278
# ssh constants
279
SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT
280
281
282
283
284
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"
285
286
SSH = "ssh"
SCP = "scp"
287
288
289
290
291

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

293
294
295
296
REBOOT_TYPES = frozenset([INSTANCE_REBOOT_SOFT,
                          INSTANCE_REBOOT_HARD,
                          INSTANCE_REBOOT_FULL])

297
298
299
300
301
302
303
304
305
306
307
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,
                      ])

308
309
310
311
312
313
# 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"
314
315
316
HV_VNC_TLS = "vnc_tls"
HV_VNC_X509 = "vnc_x509_path"
HV_VNC_X509_VERIFY = "vnc_x509_verify"
317
318
HV_ACPI = "acpi"
HV_PAE = "pae"
319
HV_KERNEL_ARGS = "kernel_args"
320
321
HV_KERNEL_PATH = "kernel_path"
HV_INITRD_PATH = "initrd_path"
322
HV_ROOT_PATH = "root_path"
323
HV_SERIAL_CONSOLE = "serial_console"
324
HV_USB_MOUSE = "usb_mouse"
325
HV_DEVICE_MODEL = "device_model"
326

327
328
329
330
331
332
333
334
335
336
337
338
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,
339
  HV_KERNEL_ARGS: VTYPE_STRING,
340
341
342
343
  HV_INITRD_PATH: VTYPE_STRING,
  HV_ROOT_PATH: VTYPE_STRING,
  HV_SERIAL_CONSOLE: VTYPE_BOOL,
  HV_USB_MOUSE: VTYPE_STRING,
344
  HV_DEVICE_MODEL: VTYPE_STRING,
345
346
347
  }

HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
348

349
# BE parameter names
Iustin Pop's avatar
Iustin Pop committed
350
BE_MEMORY = "memory"
351
BE_VCPUS = "vcpus"
352
BE_AUTO_BALANCE = "auto_balance"
353

354
355
356
357
358
359
360
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
361

362
363
# Instance Parameters Profile
PP_DEFAULT = "default"
364

Guido Trotter's avatar
Guido Trotter committed
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
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())

380
# Hypervisor constants
Iustin Pop's avatar
Iustin Pop committed
381
HT_XEN_PVM = "xen-pvm"
382
HT_FAKE = "fake"
Iustin Pop's avatar
Iustin Pop committed
383
HT_XEN_HVM = "xen-hvm"
Guido Trotter's avatar
Guido Trotter committed
384
HT_KVM = "kvm"
Iustin Pop's avatar
Iustin Pop committed
385
HYPER_TYPES = frozenset([HT_XEN_PVM, HT_FAKE, HT_XEN_HVM, HT_KVM])
Guido Trotter's avatar
Guido Trotter committed
386
HTS_REQ_PORT = frozenset([HT_XEN_HVM, HT_KVM])
387

388
VNC_BASE_PORT = 5900
389
VNC_PASSWORD_FILE = _autoconf.SYSCONFDIR + "/ganeti/vnc-cluster-password"
390
VNC_DEFAULT_BIND_ADDRESS = '0.0.0.0'
391

392
# NIC types
393
394
395
HT_NIC_RTL8139 = "rtl8139"
HT_NIC_NE2K_PCI = "ne2k_pci"
HT_NIC_NE2K_ISA = "ne2k_isa"
396
397
398
399
400
HT_NIC_I82551 = "i82551"
HT_NIC_I85557B = "i82557b"
HT_NIC_I8259ER = "i82559er"
HT_NIC_PCNET = "pcnet"
HT_NIC_E1000 = "e1000"
401
HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual"
402

403
404
HT_HVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI,
                                    HT_NIC_NE2K_ISA, HT_NIC_PARAVIRTUAL])
405
406
407
408
409
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])
410
411
412
413
414
415
416
417
418
# 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])
419
420
421
HT_KVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IDE,
                                     HT_DISK_SCSI, HT_DISK_SD, HT_DISK_MTD,
                                     HT_DISK_PFLASH])
422

423
424
425
426
427
428
429
430
431
432
433
434
435
# 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])

436
437
438
439
# Cluster Verify steps
VERIFY_NPLUSONE_MEM = 'nplusone_mem'
VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM])

440
441
442
443
444
445
446
447
448
449
# 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"
450
NV_DRBDLIST = "drbd-list"
451

452
# Allocator framework constants
453
IALLOCATOR_VERSION = 2
454
455
456
457
458
IALLOCATOR_DIR_IN = "in"
IALLOCATOR_DIR_OUT = "out"
IALLOCATOR_MODE_ALLOC = "allocate"
IALLOCATOR_MODE_RELOC = "relocate"
IALLOCATOR_SEARCH_PATH = _autoconf.IALLOCATOR_SEARCH_PATH
459

460
461
462
463
464
# 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"
465
JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
466
JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
Michael Hanselmann's avatar
Michael Hanselmann committed
467
468
JOB_QUEUE_SIZE_HARD_LIMIT = 5000
JOB_QUEUE_SIZE_SOFT_LIMIT = JOB_QUEUE_SIZE_HARD_LIMIT * 0.8
469

470
471
JOB_ID_TEMPLATE = r"\d+"

472
473
474
# unchanged job return
JOB_NOTCHANGED = "nochange"

475
476
# Job status
JOB_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
477
JOB_STATUS_WAITLOCK = "waiting"
478
JOB_STATUS_CANCELING = "canceling"
479
480
481
482
483
JOB_STATUS_RUNNING = "running"
JOB_STATUS_CANCELED = "canceled"
JOB_STATUS_SUCCESS = "success"
JOB_STATUS_ERROR = "error"

484
485
# OpCode status
# not yet finalized
486
OP_STATUS_QUEUED = "queued"
Iustin Pop's avatar
Iustin Pop committed
487
OP_STATUS_WAITLOCK = "waiting"
488
OP_STATUS_CANCELING = "canceling"
489
OP_STATUS_RUNNING = "running"
490
# finalized
491
OP_STATUS_CANCELED = "canceled"
492
493
OP_STATUS_SUCCESS = "success"
OP_STATUS_ERROR = "error"
494
495
496
OPS_FINALIZED = frozenset([OP_STATUS_CANCELED,
                           OP_STATUS_SUCCESS,
                           OP_STATUS_ERROR])
497
498
499
500

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

502
# max dynamic devices
503
504
505
MAX_NICS = 8
MAX_DISKS = 16

Iustin Pop's avatar
Iustin Pop committed
506
507
# SSCONF keys
SS_CLUSTER_NAME = "cluster_name"
508
SS_CLUSTER_TAGS = "cluster_tags"
Iustin Pop's avatar
Iustin Pop committed
509
SS_FILE_STORAGE_DIR = "file_storage_dir"
510
SS_MASTER_CANDIDATES = "master_candidates"
Iustin Pop's avatar
Iustin Pop committed
511
512
513
514
SS_MASTER_IP = "master_ip"
SS_MASTER_NETDEV = "master_netdev"
SS_MASTER_NODE = "master_node"
SS_NODE_LIST = "node_list"
515
SS_OFFLINE_NODES = "offline_nodes"
516
517
SS_ONLINE_NODES = "online_nodes"
SS_INSTANCE_LIST = "instance_list"
518
SS_RELEASE_VERSION = "release_version"
Iustin Pop's avatar
Iustin Pop committed
519

520
521
522
523
# cluster wide default parameters
DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM

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

BEC_DEFAULTS = {
563
564
565
566
  BE_MEMORY: 128,
  BE_VCPUS: 1,
  BE_AUTO_BALANCE: True,
  }
567

Guido Trotter's avatar
Guido Trotter committed
568
569
570
571
572
NICC_DEFAULTS = {
  NIC_MODE: NIC_MODE_BRIDGED,
  NIC_LINK: DEFAULT_BRIDGE,
  }

573
MASTER_POOL_SIZE_DEFAULT = 10