constants.py 14.9 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
120
121
122
123
124
125
126

NODED = "ganeti-noded"

DAEMONS_PORTS = {
  # daemon-name: ("proto", "default-port")
  NODED: ("tcp", 1811),
}
DEFAULT_NODED_PORT = DAEMONS_PORTS[NODED][1]

Iustin Pop's avatar
Iustin Pop committed
127
128
FIRST_DRBD_PORT = 11000
LAST_DRBD_PORT = 14999
129
MASTER_SCRIPT = "ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
130

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

140
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
141
EXPORT_DIR = _autoconf.EXPORT_DIR
Iustin Pop's avatar
Iustin Pop committed
142
143
144

EXPORT_CONF_FILE = "config.ini"

145
146
147
XEN_KERNEL = _autoconf.XEN_KERNEL
XEN_INITRD = _autoconf.XEN_INITRD

148
KVM_PATH = _autoconf.KVM_PATH
Guido Trotter's avatar
Guido Trotter committed
149
SOCAT_PATH = _autoconf.SOCAT_PATH
Guido Trotter's avatar
Guido Trotter committed
150
KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT
151

152
VALUE_DEFAULT = "default"
153
154
VALUE_AUTO = "auto"
VALUE_GENERATE = "generate"
155
VALUE_NONE = "none"
156
157
VALUE_TRUE = "true"
VALUE_FALSE = "false"
158

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

# 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"
178
DT_DRBD8 = "drbd"
179
DT_FILE = "file"
180
181

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

184
185
186
# the set of non-lvm-based disk templates
DTS_NOT_LVM = frozenset([DT_DISKLESS, DT_FILE])

187
188
# logical disk types
LD_LV = "lvm"
189
LD_DRBD8 = "drbd8"
190
LD_FILE = "file"
191
LDS_BLOCK = frozenset([LD_LV, LD_DRBD8])
192

Iustin Pop's avatar
Iustin Pop committed
193
194
# drbd constants
DRBD_HMAC_ALG = "md5"
195
DRBD_NET_PROTOCOL = "C"
Iustin Pop's avatar
Iustin Pop committed
196

197
198
199
# file backend driver
FD_LOOP = "loop"
FD_BLKTAP = "blktap"
200
201

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

204
# disk access mode
205
206
DISK_RDONLY = "ro"
DISK_RDWR = "rw"
207
208
DISK_ACCESS_SET = frozenset([DISK_RDONLY, DISK_RDWR])

209
# disk replacement mode
210
211
212
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
213

214
215
# lock recalculate mode
LOCKS_REPLACE = 'replace'
216
LOCKS_APPEND = 'append'
217

218
# instance creation modes
Iustin Pop's avatar
Iustin Pop committed
219
220
221
222
INSTANCE_CREATE = "create"
INSTANCE_IMPORT = "import"

DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN,
223
224
225
                            DT_DRBD8, DT_FILE])

FILE_DRIVER = frozenset([FD_LOOP, FD_BLKTAP])
Iustin Pop's avatar
Iustin Pop committed
226
227
228
229

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

231
232
233
234
235
# dynamic device modification

DDM_ADD = 'add'
DDM_REMOVE = 'remove'

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

244
245
246
247
248
249
250
# tags
TAG_CLUSTER = "cluster"
TAG_NODE = "node"
TAG_INSTANCE = "instance"
MAX_TAG_LEN = 128
MAX_TAGS_PER_OBJ = 4096

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

263
264
265
266
# RPC constants
(RPC_ENCODING_NONE,
 RPC_ENCODING_ZLIB_BASE64) = range(2)

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

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

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

290
291
292
293
REBOOT_TYPES = frozenset([INSTANCE_REBOOT_SOFT,
                          INSTANCE_REBOOT_HARD,
                          INSTANCE_REBOOT_FULL])

294
295
296
297
298
299
300
301
302
303
304
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,
                      ])

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

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

HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
345

346
# BE parameter names
Iustin Pop's avatar
Iustin Pop committed
347
BE_MEMORY = "memory"
348
BE_VCPUS = "vcpus"
349
BE_AUTO_BALANCE = "auto_balance"
350

351
352
353
354
355
356
357
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
358

359
360
# Instance Parameters Profile
PP_DEFAULT = "default"
361

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

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

385
VNC_BASE_PORT = 5900
386
VNC_PASSWORD_FILE = _autoconf.SYSCONFDIR + "/ganeti/vnc-cluster-password"
387
VNC_DEFAULT_BIND_ADDRESS = '0.0.0.0'
388

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

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

420
421
422
423
424
425
426
427
428
429
430
431
432
# 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])

433
434
435
436
# Cluster Verify steps
VERIFY_NPLUSONE_MEM = 'nplusone_mem'
VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM])

437
438
439
440
441
442
443
444
445
446
# 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"
447
NV_DRBDLIST = "drbd-list"
448

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

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

467
468
JOB_ID_TEMPLATE = r"\d+"

469
470
471
# unchanged job return
JOB_NOTCHANGED = "nochange"

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

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

# Execution log types
ELOG_MESSAGE = "message"
ELOG_PROGRESS = "progress"
498
499

RAPI_PORT = 5080
500

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

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

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

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

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

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

572
MASTER_POOL_SIZE_DEFAULT = 10