root / lib / pathutils.py @ 117899a7
History | View | Annotate | Download (5.8 kB)
1 | 3329f4de | Michael Hanselmann | #
|
---|---|---|---|
2 | 3329f4de | Michael Hanselmann | #
|
3 | 3329f4de | Michael Hanselmann | |
4 | 1fbb19fa | Iustin Pop | # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 | 3311e336 | Jose A. Lopes | from ganeti import _constants |
28 | b8028dcf | Michael Hanselmann | from ganeti import compat |
29 | cffbbae7 | Michael Hanselmann | from ganeti import vcluster |
30 | cffbbae7 | Michael Hanselmann | |
31 | 3329f4de | Michael Hanselmann | |
32 | 3329f4de | Michael Hanselmann | # Build-time constants
|
33 | 2dcb5a26 | Helga Velroyen | DEFAULT_FILE_STORAGE_DIR = "/srv/ganeti/file-storage"
|
34 | 49a924bc | Helga Velroyen | DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(DEFAULT_FILE_STORAGE_DIR) |
35 | 753d0fed | Helga Velroyen | DEFAULT_SHARED_FILE_STORAGE_DIR = "/srv/ganeti/shared-file-storage"
|
36 | 2fe1e043 | Helga Velroyen | DEFAULT_SHARED_FILE_STORAGE_DIR = \ |
37 | 2fe1e043 | Helga Velroyen | vcluster.AddNodePrefix(DEFAULT_SHARED_FILE_STORAGE_DIR) |
38 | cffbbae7 | Michael Hanselmann | EXPORT_DIR = vcluster.AddNodePrefix(_autoconf.EXPORT_DIR) |
39 | 3311e336 | Jose A. Lopes | OS_SEARCH_PATH = _constants.OS_SEARCH_PATH |
40 | 3311e336 | Jose A. Lopes | ES_SEARCH_PATH = _constants.ES_SEARCH_PATH |
41 | 3329f4de | Michael Hanselmann | SSH_CONFIG_DIR = _autoconf.SSH_CONFIG_DIR |
42 | a8e8c0c6 | Michael Hanselmann | XEN_CONFIG_DIR = vcluster.AddNodePrefix(_autoconf.XEN_CONFIG_DIR) |
43 | cffbbae7 | Michael Hanselmann | SYSCONFDIR = vcluster.AddNodePrefix(_autoconf.SYSCONFDIR) |
44 | 3329f4de | Michael Hanselmann | TOOLSDIR = _autoconf.TOOLSDIR |
45 | cffbbae7 | Michael Hanselmann | LOCALSTATEDIR = vcluster.AddNodePrefix(_autoconf.LOCALSTATEDIR) |
46 | 3329f4de | Michael Hanselmann | |
47 | 3329f4de | Michael Hanselmann | # Paths which don't change for a virtual cluster
|
48 | 3329f4de | Michael Hanselmann | DAEMON_UTIL = _autoconf.PKGLIBDIR + "/daemon-util"
|
49 | 3329f4de | Michael Hanselmann | IMPORT_EXPORT_DAEMON = _autoconf.PKGLIBDIR + "/import-export"
|
50 | 3329f4de | Michael Hanselmann | KVM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/kvm-console-wrapper"
|
51 | 3329f4de | Michael Hanselmann | KVM_IFUP = _autoconf.PKGLIBDIR + "/kvm-ifup"
|
52 | 224ff0f7 | Michael Hanselmann | PREPARE_NODE_JOIN = _autoconf.PKGLIBDIR + "/prepare-node-join"
|
53 | 7b8ba235 | Michael Hanselmann | NODE_DAEMON_SETUP = _autoconf.PKGLIBDIR + "/node-daemon-setup"
|
54 | b9612abb | Iustin Pop | XEN_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/xen-console-wrapper"
|
55 | fe4f6dca | Michael Hanselmann | ETC_HOSTS = vcluster.ETC_HOSTS |
56 | 3329f4de | Michael Hanselmann | |
57 | 3329f4de | Michael Hanselmann | # Top-level paths
|
58 | cffbbae7 | Michael Hanselmann | DATA_DIR = LOCALSTATEDIR + "/lib/ganeti"
|
59 | cffbbae7 | Michael Hanselmann | LOCK_DIR = LOCALSTATEDIR + "/lock"
|
60 | cffbbae7 | Michael Hanselmann | LOG_DIR = LOCALSTATEDIR + "/log/ganeti"
|
61 | cffbbae7 | Michael Hanselmann | RUN_DIR = LOCALSTATEDIR + "/run/ganeti"
|
62 | 3329f4de | Michael Hanselmann | |
63 | 3329f4de | Michael Hanselmann | #: Script to configure master IP address
|
64 | 3329f4de | Michael Hanselmann | DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
|
65 | 3329f4de | Michael Hanselmann | |
66 | 3329f4de | Michael Hanselmann | SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_dsa_key"
|
67 | 3329f4de | Michael Hanselmann | SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub"
|
68 | 3329f4de | Michael Hanselmann | SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_rsa_key"
|
69 | 3329f4de | Michael Hanselmann | SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub"
|
70 | 3329f4de | Michael Hanselmann | |
71 | 3329f4de | Michael Hanselmann | BDEV_CACHE_DIR = RUN_DIR + "/bdev-cache"
|
72 | 3329f4de | Michael Hanselmann | DISK_LINKS_DIR = RUN_DIR + "/instance-disks"
|
73 | 3329f4de | Michael Hanselmann | SOCKET_DIR = RUN_DIR + "/socket"
|
74 | 3329f4de | Michael Hanselmann | CRYPTO_KEYS_DIR = RUN_DIR + "/crypto"
|
75 | 3329f4de | Michael Hanselmann | IMPORT_EXPORT_DIR = RUN_DIR + "/import-export"
|
76 | 3329f4de | Michael Hanselmann | INSTANCE_STATUS_FILE = RUN_DIR + "/instance-status"
|
77 | a59d5fa1 | Michele Tartara | INSTANCE_REASON_DIR = RUN_DIR + "/instance-reason"
|
78 | 3329f4de | Michael Hanselmann | #: User-id pool lock directory (used user IDs have a corresponding lock file in
|
79 | 3329f4de | Michael Hanselmann | #: this directory)
|
80 | 3329f4de | Michael Hanselmann | UIDPOOL_LOCKDIR = RUN_DIR + "/uid-pool"
|
81 | 3329f4de | Michael Hanselmann | |
82 | 3329f4de | Michael Hanselmann | SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock"
|
83 | 3329f4de | Michael Hanselmann | |
84 | 3329f4de | Michael Hanselmann | CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
|
85 | 3329f4de | Michael Hanselmann | RAPI_CERT_FILE = DATA_DIR + "/rapi.pem"
|
86 | 3329f4de | Michael Hanselmann | CONFD_HMAC_KEY = DATA_DIR + "/hmac.key"
|
87 | 3329f4de | Michael Hanselmann | SPICE_CERT_FILE = DATA_DIR + "/spice.pem"
|
88 | 3329f4de | Michael Hanselmann | SPICE_CACERT_FILE = DATA_DIR + "/spice-ca.pem"
|
89 | 3329f4de | Michael Hanselmann | CLUSTER_DOMAIN_SECRET_FILE = DATA_DIR + "/cluster-domain-secret"
|
90 | 3329f4de | Michael Hanselmann | SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
|
91 | 3329f4de | Michael Hanselmann | RAPI_USERS_FILE = DATA_DIR + "/rapi/users"
|
92 | 3329f4de | Michael Hanselmann | QUEUE_DIR = DATA_DIR + "/queue"
|
93 | 3329f4de | Michael Hanselmann | CONF_DIR = SYSCONFDIR + "/ganeti"
|
94 | 3329f4de | Michael Hanselmann | USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
|
95 | 3329f4de | Michael Hanselmann | VNC_PASSWORD_FILE = CONF_DIR + "/vnc-cluster-password"
|
96 | 3329f4de | Michael Hanselmann | HOOKS_BASE_DIR = CONF_DIR + "/hooks"
|
97 | fbdac0d9 | Michael Hanselmann | FILE_STORAGE_PATHS_FILE = CONF_DIR + "/file-storage-paths"
|
98 | 878c42ae | Michael Hanselmann | RESTRICTED_COMMANDS_DIR = CONF_DIR + "/restricted-commands"
|
99 | df99f3a9 | Michael Hanselmann | |
100 | c9f79949 | Michael Hanselmann | #: Node daemon certificate path
|
101 | c9f79949 | Michael Hanselmann | NODED_CERT_FILE = DATA_DIR + "/server.pem"
|
102 | c9f79949 | Michael Hanselmann | |
103 | c9f79949 | Michael Hanselmann | #: Node daemon certificate file permissions
|
104 | c9f79949 | Michael Hanselmann | NODED_CERT_MODE = 0440
|
105 | c9f79949 | Michael Hanselmann | |
106 | df99f3a9 | Michael Hanselmann | #: Locked in exclusive mode while noded verifies a remote command
|
107 | 878c42ae | Michael Hanselmann | RESTRICTED_COMMANDS_LOCK_FILE = LOCK_DIR + "/ganeti-restricted-commands.lock"
|
108 | 3329f4de | Michael Hanselmann | |
109 | 3329f4de | Michael Hanselmann | #: Lock file for watcher, locked in shared mode by watcher; lock in exclusive
|
110 | 3329f4de | Michael Hanselmann | # mode to block watcher (see L{cli._RunWhileClusterStoppedHelper.Call}
|
111 | 3329f4de | Michael Hanselmann | WATCHER_LOCK_FILE = LOCK_DIR + "/ganeti-watcher.lock"
|
112 | 3329f4de | Michael Hanselmann | |
113 | 3329f4de | Michael Hanselmann | #: Status file for per-group watcher, locked in exclusive mode by watcher
|
114 | 3329f4de | Michael Hanselmann | WATCHER_GROUP_STATE_FILE = DATA_DIR + "/watcher.%s.data"
|
115 | 3329f4de | Michael Hanselmann | |
116 | 3329f4de | Michael Hanselmann | #: File for per-group instance status, merged into L{INSTANCE_STATUS_FILE} by
|
117 | 3329f4de | Michael Hanselmann | #: per-group processes
|
118 | 3329f4de | Michael Hanselmann | WATCHER_GROUP_INSTANCE_STATUS_FILE = DATA_DIR + "/watcher.%s.instance-status"
|
119 | 3329f4de | Michael Hanselmann | |
120 | 3329f4de | Michael Hanselmann | #: File containing Unix timestamp until which watcher should be paused
|
121 | 3329f4de | Michael Hanselmann | WATCHER_PAUSEFILE = DATA_DIR + "/watcher.pause"
|
122 | 3329f4de | Michael Hanselmann | |
123 | 3329f4de | Michael Hanselmann | #: User-provided master IP setup script
|
124 | 3329f4de | Michael Hanselmann | EXTERNAL_MASTER_SETUP_SCRIPT = USER_SCRIPTS_DIR + "/master-ip-setup"
|
125 | 3329f4de | Michael Hanselmann | |
126 | 3329f4de | Michael Hanselmann | #: LUXI socket used for job execution
|
127 | 3329f4de | Michael Hanselmann | MASTER_SOCKET = SOCKET_DIR + "/ganeti-master"
|
128 | 3329f4de | Michael Hanselmann | #: LUXI socket used for queries only
|
129 | 3329f4de | Michael Hanselmann | QUERY_SOCKET = SOCKET_DIR + "/ganeti-query"
|
130 | 3329f4de | Michael Hanselmann | |
131 | 3329f4de | Michael Hanselmann | LOG_OS_DIR = LOG_DIR + "/os"
|
132 | 376631d1 | Constantinos Venetsanopoulos | LOG_ES_DIR = LOG_DIR + "/extstorage"
|
133 | 48bba9de | Balazs Lecz | #: Directory for storing Xen config files after failed instance starts
|
134 | 48bba9de | Balazs Lecz | LOG_XEN_DIR = LOG_DIR + "/xen"
|
135 | 3329f4de | Michael Hanselmann | |
136 | 3329f4de | Michael Hanselmann | # Job queue paths
|
137 | 3329f4de | Michael Hanselmann | JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
|
138 | 3329f4de | Michael Hanselmann | JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
|
139 | 3329f4de | Michael Hanselmann | JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
|
140 | 3329f4de | Michael Hanselmann | JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
|
141 | 3329f4de | Michael Hanselmann | JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
|
142 | 3329f4de | Michael Hanselmann | |
143 | b8028dcf | Michael Hanselmann | ALL_CERT_FILES = compat.UniqueFrozenset([ |
144 | 3329f4de | Michael Hanselmann | NODED_CERT_FILE, |
145 | 3329f4de | Michael Hanselmann | RAPI_CERT_FILE, |
146 | 3329f4de | Michael Hanselmann | SPICE_CERT_FILE, |
147 | 3329f4de | Michael Hanselmann | SPICE_CACERT_FILE, |
148 | 3329f4de | Michael Hanselmann | ]) |
149 | 3329f4de | Michael Hanselmann | |
150 | 3329f4de | Michael Hanselmann | |
151 | 3329f4de | Michael Hanselmann | def GetLogFilename(daemon_name): |
152 | 3329f4de | Michael Hanselmann | """Returns the full path for a daemon's log file.
|
153 | 3329f4de | Michael Hanselmann |
|
154 | 3329f4de | Michael Hanselmann | """
|
155 | 3329f4de | Michael Hanselmann | return "%s/%s.log" % (LOG_DIR, daemon_name) |
156 | 3329f4de | Michael Hanselmann | |
157 | 3329f4de | Michael Hanselmann | |
158 | 3329f4de | Michael Hanselmann | LOG_WATCHER = GetLogFilename("watcher")
|
159 | 3329f4de | Michael Hanselmann | LOG_COMMANDS = GetLogFilename("commands")
|
160 | 3329f4de | Michael Hanselmann | LOG_BURNIN = GetLogFilename("burnin") |