Statistics
| Branch: | Tag: | Revision:

root / lib / pathutils.py @ cffbbae7

History | View | Annotate | Download (4.8 kB)

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

24 3329f4de Michael Hanselmann
"""
25 3329f4de Michael Hanselmann
26 3329f4de Michael Hanselmann
from ganeti import _autoconf
27 cffbbae7 Michael Hanselmann
from ganeti import vcluster
28 cffbbae7 Michael Hanselmann
29 3329f4de Michael Hanselmann
30 3329f4de Michael Hanselmann
# Build-time constants
31 cffbbae7 Michael Hanselmann
DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(_autoconf.FILE_STORAGE_DIR)
32 cffbbae7 Michael Hanselmann
DEFAULT_SHARED_FILE_STORAGE_DIR = \
33 cffbbae7 Michael Hanselmann
  vcluster.AddNodePrefix(_autoconf.SHARED_FILE_STORAGE_DIR)
34 cffbbae7 Michael Hanselmann
EXPORT_DIR = vcluster.AddNodePrefix(_autoconf.EXPORT_DIR)
35 3329f4de Michael Hanselmann
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
36 3329f4de Michael Hanselmann
SSH_CONFIG_DIR = _autoconf.SSH_CONFIG_DIR
37 cffbbae7 Michael Hanselmann
SYSCONFDIR = vcluster.AddNodePrefix(_autoconf.SYSCONFDIR)
38 3329f4de Michael Hanselmann
TOOLSDIR = _autoconf.TOOLSDIR
39 cffbbae7 Michael Hanselmann
LOCALSTATEDIR = vcluster.AddNodePrefix(_autoconf.LOCALSTATEDIR)
40 3329f4de Michael Hanselmann
41 3329f4de Michael Hanselmann
# Paths which don't change for a virtual cluster
42 3329f4de Michael Hanselmann
DAEMON_UTIL = _autoconf.PKGLIBDIR + "/daemon-util"
43 3329f4de Michael Hanselmann
IMPORT_EXPORT_DAEMON = _autoconf.PKGLIBDIR + "/import-export"
44 3329f4de Michael Hanselmann
KVM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/kvm-console-wrapper"
45 3329f4de Michael Hanselmann
KVM_IFUP = _autoconf.PKGLIBDIR + "/kvm-ifup"
46 3329f4de Michael Hanselmann
SETUP_SSH = _autoconf.TOOLSDIR + "/setup-ssh"
47 3329f4de Michael Hanselmann
XM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/xm-console-wrapper"
48 3329f4de Michael Hanselmann
49 3329f4de Michael Hanselmann
# Top-level paths
50 cffbbae7 Michael Hanselmann
DATA_DIR = LOCALSTATEDIR + "/lib/ganeti"
51 cffbbae7 Michael Hanselmann
LOCK_DIR = LOCALSTATEDIR + "/lock"
52 cffbbae7 Michael Hanselmann
LOG_DIR = LOCALSTATEDIR + "/log/ganeti"
53 cffbbae7 Michael Hanselmann
RUN_DIR = LOCALSTATEDIR + "/run/ganeti"
54 3329f4de Michael Hanselmann
55 3329f4de Michael Hanselmann
#: Script to configure master IP address
56 3329f4de Michael Hanselmann
DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
57 3329f4de Michael Hanselmann
58 3329f4de Michael Hanselmann
SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_dsa_key"
59 3329f4de Michael Hanselmann
SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub"
60 3329f4de Michael Hanselmann
SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_rsa_key"
61 3329f4de Michael Hanselmann
SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub"
62 3329f4de Michael Hanselmann
63 3329f4de Michael Hanselmann
BDEV_CACHE_DIR = RUN_DIR + "/bdev-cache"
64 3329f4de Michael Hanselmann
DISK_LINKS_DIR = RUN_DIR + "/instance-disks"
65 3329f4de Michael Hanselmann
SOCKET_DIR = RUN_DIR + "/socket"
66 3329f4de Michael Hanselmann
CRYPTO_KEYS_DIR = RUN_DIR + "/crypto"
67 3329f4de Michael Hanselmann
IMPORT_EXPORT_DIR = RUN_DIR + "/import-export"
68 3329f4de Michael Hanselmann
INSTANCE_STATUS_FILE = RUN_DIR + "/instance-status"
69 3329f4de Michael Hanselmann
#: User-id pool lock directory (used user IDs have a corresponding lock file in
70 3329f4de Michael Hanselmann
#: this directory)
71 3329f4de Michael Hanselmann
UIDPOOL_LOCKDIR = RUN_DIR + "/uid-pool"
72 3329f4de Michael Hanselmann
73 3329f4de Michael Hanselmann
SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock"
74 3329f4de Michael Hanselmann
75 3329f4de Michael Hanselmann
CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
76 3329f4de Michael Hanselmann
NODED_CERT_FILE = DATA_DIR + "/server.pem"
77 3329f4de Michael Hanselmann
RAPI_CERT_FILE = DATA_DIR + "/rapi.pem"
78 3329f4de Michael Hanselmann
CONFD_HMAC_KEY = DATA_DIR + "/hmac.key"
79 3329f4de Michael Hanselmann
SPICE_CERT_FILE = DATA_DIR + "/spice.pem"
80 3329f4de Michael Hanselmann
SPICE_CACERT_FILE = DATA_DIR + "/spice-ca.pem"
81 3329f4de Michael Hanselmann
CLUSTER_DOMAIN_SECRET_FILE = DATA_DIR + "/cluster-domain-secret"
82 3329f4de Michael Hanselmann
SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
83 3329f4de Michael Hanselmann
RAPI_USERS_FILE = DATA_DIR + "/rapi/users"
84 3329f4de Michael Hanselmann
QUEUE_DIR = DATA_DIR + "/queue"
85 3329f4de Michael Hanselmann
CONF_DIR = SYSCONFDIR + "/ganeti"
86 3329f4de Michael Hanselmann
USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
87 3329f4de Michael Hanselmann
VNC_PASSWORD_FILE = CONF_DIR + "/vnc-cluster-password"
88 3329f4de Michael Hanselmann
HOOKS_BASE_DIR = CONF_DIR + "/hooks"
89 3329f4de Michael Hanselmann
90 3329f4de Michael Hanselmann
#: Lock file for watcher, locked in shared mode by watcher; lock in exclusive
91 3329f4de Michael Hanselmann
# mode to block watcher (see L{cli._RunWhileClusterStoppedHelper.Call}
92 3329f4de Michael Hanselmann
WATCHER_LOCK_FILE = LOCK_DIR + "/ganeti-watcher.lock"
93 3329f4de Michael Hanselmann
94 3329f4de Michael Hanselmann
#: Status file for per-group watcher, locked in exclusive mode by watcher
95 3329f4de Michael Hanselmann
WATCHER_GROUP_STATE_FILE = DATA_DIR + "/watcher.%s.data"
96 3329f4de Michael Hanselmann
97 3329f4de Michael Hanselmann
#: File for per-group instance status, merged into L{INSTANCE_STATUS_FILE} by
98 3329f4de Michael Hanselmann
#: per-group processes
99 3329f4de Michael Hanselmann
WATCHER_GROUP_INSTANCE_STATUS_FILE = DATA_DIR + "/watcher.%s.instance-status"
100 3329f4de Michael Hanselmann
101 3329f4de Michael Hanselmann
#: File containing Unix timestamp until which watcher should be paused
102 3329f4de Michael Hanselmann
WATCHER_PAUSEFILE = DATA_DIR + "/watcher.pause"
103 3329f4de Michael Hanselmann
104 3329f4de Michael Hanselmann
#: User-provided master IP setup script
105 3329f4de Michael Hanselmann
EXTERNAL_MASTER_SETUP_SCRIPT = USER_SCRIPTS_DIR + "/master-ip-setup"
106 3329f4de Michael Hanselmann
107 3329f4de Michael Hanselmann
#: LUXI socket used for job execution
108 3329f4de Michael Hanselmann
MASTER_SOCKET = SOCKET_DIR + "/ganeti-master"
109 3329f4de Michael Hanselmann
#: LUXI socket used for queries only
110 3329f4de Michael Hanselmann
QUERY_SOCKET = SOCKET_DIR + "/ganeti-query"
111 3329f4de Michael Hanselmann
112 3329f4de Michael Hanselmann
LOG_OS_DIR = LOG_DIR + "/os"
113 3329f4de Michael Hanselmann
114 3329f4de Michael Hanselmann
# Job queue paths
115 3329f4de Michael Hanselmann
JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
116 3329f4de Michael Hanselmann
JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
117 3329f4de Michael Hanselmann
JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
118 3329f4de Michael Hanselmann
JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
119 3329f4de Michael Hanselmann
JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
120 3329f4de Michael Hanselmann
121 3329f4de Michael Hanselmann
ALL_CERT_FILES = frozenset([
122 3329f4de Michael Hanselmann
  NODED_CERT_FILE,
123 3329f4de Michael Hanselmann
  RAPI_CERT_FILE,
124 3329f4de Michael Hanselmann
  SPICE_CERT_FILE,
125 3329f4de Michael Hanselmann
  SPICE_CACERT_FILE,
126 3329f4de Michael Hanselmann
  ])
127 3329f4de Michael Hanselmann
128 3329f4de Michael Hanselmann
129 3329f4de Michael Hanselmann
def GetLogFilename(daemon_name):
130 3329f4de Michael Hanselmann
  """Returns the full path for a daemon's log file.
131 3329f4de Michael Hanselmann

132 3329f4de Michael Hanselmann
  """
133 3329f4de Michael Hanselmann
  return "%s/%s.log" % (LOG_DIR, daemon_name)
134 3329f4de Michael Hanselmann
135 3329f4de Michael Hanselmann
136 3329f4de Michael Hanselmann
LOG_WATCHER = GetLogFilename("watcher")
137 3329f4de Michael Hanselmann
LOG_COMMANDS = GetLogFilename("commands")
138 3329f4de Michael Hanselmann
LOG_BURNIN = GetLogFilename("burnin")
139 3329f4de Michael Hanselmann
LOG_SETUP_SSH = GetLogFilename("setup-ssh")