Statistics
| Branch: | Tag: | Revision:

root / lib / pathutils.py @ 3329f4de

History | View | Annotate | Download (4.7 kB)

1
#
2
#
3

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

    
21

    
22
"""Module containing constants and functions for filesystem paths.
23

24
"""
25

    
26
from ganeti import _autoconf
27

    
28
# Build-time constants
29
DEFAULT_FILE_STORAGE_DIR = _autoconf.FILE_STORAGE_DIR
30
DEFAULT_SHARED_FILE_STORAGE_DIR = _autoconf.SHARED_FILE_STORAGE_DIR
31
EXPORT_DIR = _autoconf.EXPORT_DIR
32
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
33
SSH_CONFIG_DIR = _autoconf.SSH_CONFIG_DIR
34
SYSCONFDIR = _autoconf.SYSCONFDIR
35
TOOLSDIR = _autoconf.TOOLSDIR
36

    
37
# Paths which don't change for a virtual cluster
38
DAEMON_UTIL = _autoconf.PKGLIBDIR + "/daemon-util"
39
IMPORT_EXPORT_DAEMON = _autoconf.PKGLIBDIR + "/import-export"
40
KVM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/kvm-console-wrapper"
41
KVM_IFUP = _autoconf.PKGLIBDIR + "/kvm-ifup"
42
SETUP_SSH = _autoconf.TOOLSDIR + "/setup-ssh"
43
XM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/xm-console-wrapper"
44

    
45
# Top-level paths
46
DATA_DIR = _autoconf.LOCALSTATEDIR + "/lib/ganeti"
47
LOCK_DIR = _autoconf.LOCALSTATEDIR + "/lock"
48
LOG_DIR = _autoconf.LOCALSTATEDIR + "/log/ganeti"
49
RUN_DIR = _autoconf.LOCALSTATEDIR + "/run/ganeti"
50

    
51
#: Script to configure master IP address
52
DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
53

    
54
SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_dsa_key"
55
SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub"
56
SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_rsa_key"
57
SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub"
58

    
59
BDEV_CACHE_DIR = RUN_DIR + "/bdev-cache"
60
DISK_LINKS_DIR = RUN_DIR + "/instance-disks"
61
SOCKET_DIR = RUN_DIR + "/socket"
62
CRYPTO_KEYS_DIR = RUN_DIR + "/crypto"
63
IMPORT_EXPORT_DIR = RUN_DIR + "/import-export"
64
INSTANCE_STATUS_FILE = RUN_DIR + "/instance-status"
65
#: User-id pool lock directory (used user IDs have a corresponding lock file in
66
#: this directory)
67
UIDPOOL_LOCKDIR = RUN_DIR + "/uid-pool"
68

    
69
SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock"
70

    
71
CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
72
NODED_CERT_FILE = DATA_DIR + "/server.pem"
73
RAPI_CERT_FILE = DATA_DIR + "/rapi.pem"
74
CONFD_HMAC_KEY = DATA_DIR + "/hmac.key"
75
SPICE_CERT_FILE = DATA_DIR + "/spice.pem"
76
SPICE_CACERT_FILE = DATA_DIR + "/spice-ca.pem"
77
CLUSTER_DOMAIN_SECRET_FILE = DATA_DIR + "/cluster-domain-secret"
78
SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
79
RAPI_USERS_FILE = DATA_DIR + "/rapi/users"
80
QUEUE_DIR = DATA_DIR + "/queue"
81
CONF_DIR = SYSCONFDIR + "/ganeti"
82
USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
83
VNC_PASSWORD_FILE = CONF_DIR + "/vnc-cluster-password"
84
HOOKS_BASE_DIR = CONF_DIR + "/hooks"
85

    
86
#: Lock file for watcher, locked in shared mode by watcher; lock in exclusive
87
# mode to block watcher (see L{cli._RunWhileClusterStoppedHelper.Call}
88
WATCHER_LOCK_FILE = LOCK_DIR + "/ganeti-watcher.lock"
89

    
90
#: Status file for per-group watcher, locked in exclusive mode by watcher
91
WATCHER_GROUP_STATE_FILE = DATA_DIR + "/watcher.%s.data"
92

    
93
#: File for per-group instance status, merged into L{INSTANCE_STATUS_FILE} by
94
#: per-group processes
95
WATCHER_GROUP_INSTANCE_STATUS_FILE = DATA_DIR + "/watcher.%s.instance-status"
96

    
97
#: File containing Unix timestamp until which watcher should be paused
98
WATCHER_PAUSEFILE = DATA_DIR + "/watcher.pause"
99

    
100
#: User-provided master IP setup script
101
EXTERNAL_MASTER_SETUP_SCRIPT = USER_SCRIPTS_DIR + "/master-ip-setup"
102

    
103
#: LUXI socket used for job execution
104
MASTER_SOCKET = SOCKET_DIR + "/ganeti-master"
105
#: LUXI socket used for queries only
106
QUERY_SOCKET = SOCKET_DIR + "/ganeti-query"
107

    
108
LOG_OS_DIR = LOG_DIR + "/os"
109

    
110
# Job queue paths
111
JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
112
JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
113
JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
114
JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
115
JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
116

    
117
ALL_CERT_FILES = frozenset([
118
  NODED_CERT_FILE,
119
  RAPI_CERT_FILE,
120
  SPICE_CERT_FILE,
121
  SPICE_CACERT_FILE,
122
  ])
123

    
124

    
125
def GetLogFilename(daemon_name):
126
  """Returns the full path for a daemon's log file.
127

128
  """
129
  return "%s/%s.log" % (LOG_DIR, daemon_name)
130

    
131

    
132
LOG_WATCHER = GetLogFilename("watcher")
133
LOG_COMMANDS = GetLogFilename("commands")
134
LOG_BURNIN = GetLogFilename("burnin")
135
LOG_SETUP_SSH = GetLogFilename("setup-ssh")