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

# 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
CONFIG_VERSION = 3
28
PROTOCOL_VERSION = 3
29
RELEASE_VERSION = _autoconf.PACKAGE_VERSION
30
OS_API_VERSION = 5
Iustin Pop's avatar
Iustin Pop committed
31 32 33 34
EXPORT_VERSION = 0


# file paths
35
DATA_DIR = _autoconf.LOCALSTATEDIR + "/lib/ganeti"
Iustin Pop's avatar
Iustin Pop committed
36 37
CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
SSL_CERT_FILE = DATA_DIR + "/server.pem"
38
WATCHER_STATEFILE = DATA_DIR + "/watcher.data"
Iustin Pop's avatar
Iustin Pop committed
39
SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
Iustin Pop's avatar
Iustin Pop committed
40

41
NODE_INITD_SCRIPT = _autoconf.SYSCONFDIR + "/init.d/ganeti"
42
SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT
Iustin Pop's avatar
Iustin Pop committed
43 44 45
DEFAULT_NODED_PORT = 1811
FIRST_DRBD_PORT = 11000
LAST_DRBD_PORT = 14999
46
MASTER_SCRIPT = "ganeti-master"
Iustin Pop's avatar
Iustin Pop committed
47

48
LOG_DIR = _autoconf.LOCALSTATEDIR + "/log/ganeti"
Iustin Pop's avatar
Iustin Pop committed
49 50
LOG_OS_DIR = LOG_DIR + "/os"
LOG_NODESERVER = LOG_DIR + "/node-daemon.log"
51
LOG_WATCHER = LOG_DIR + "/watcher.log"
Iustin Pop's avatar
Iustin Pop committed
52

53
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
54
EXPORT_DIR = _autoconf.EXPORT_DIR
Iustin Pop's avatar
Iustin Pop committed
55 56 57 58

EXPORT_CONF_FILE = "config.ini"

# hooks-related constants
59
HOOKS_BASE_DIR = _autoconf.SYSCONFDIR + "/ganeti/hooks"
Iustin Pop's avatar
Iustin Pop committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
HOOKS_PHASE_PRE = "pre"
HOOKS_PHASE_POST = "post"
HOOKS_VERSION = 1

# 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"
DT_LOCAL_RAID1 = "local_raid1"
DT_REMOTE_RAID1 = "remote_raid1"

# instance creation modem
INSTANCE_CREATE = "create"
INSTANCE_IMPORT = "import"

DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN,
                            DT_LOCAL_RAID1, DT_REMOTE_RAID1])

# import/export config options
INISECT_EXP = "export"
INISECT_INS = "instance"
89 90 91

# common exit codes
EXIT_NOTMASTER = 11
92
EXIT_NODESETUP_ERROR = 12
93

94 95 96 97 98 99 100
# tags
TAG_CLUSTER = "cluster"
TAG_NODE = "node"
TAG_INSTANCE = "instance"
MAX_TAG_LEN = 128
MAX_TAGS_PER_OBJ = 4096

101 102
# others
DEFAULT_BRIDGE = "xen-br0"
103
SYNC_SPEED = 30 * 1024