1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 """Module containing constants and functions for filesystem paths.
32
33 """
34
35 from ganeti import _constants
36 from ganeti import compat
37 from ganeti import vcluster
38
39
40
41 DEFAULT_FILE_STORAGE_DIR = "/srv/ganeti/file-storage"
42 DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(DEFAULT_FILE_STORAGE_DIR)
43 DEFAULT_SHARED_FILE_STORAGE_DIR = "/srv/ganeti/shared-file-storage"
44 DEFAULT_SHARED_FILE_STORAGE_DIR = \
45 vcluster.AddNodePrefix(DEFAULT_SHARED_FILE_STORAGE_DIR)
46 DEFAULT_GLUSTER_STORAGE_DIR = "/var/run/ganeti/gluster"
47 DEFAULT_GLUSTER_STORAGE_DIR = \
48 vcluster.AddNodePrefix(DEFAULT_GLUSTER_STORAGE_DIR)
49 EXPORT_DIR = vcluster.AddNodePrefix(_constants.EXPORT_DIR)
50 BACKUP_DIR = vcluster.AddNodePrefix(_constants.BACKUP_DIR)
51 OS_SEARCH_PATH = _constants.OS_SEARCH_PATH
52 ES_SEARCH_PATH = _constants.ES_SEARCH_PATH
53 SSH_CONFIG_DIR = _constants.SSH_CONFIG_DIR
54 XEN_CONFIG_DIR = vcluster.AddNodePrefix(_constants.XEN_CONFIG_DIR)
55 SYSCONFDIR = vcluster.AddNodePrefix(_constants.SYSCONFDIR)
56 TOOLSDIR = _constants.TOOLSDIR
57 PKGLIBDIR = _constants.PKGLIBDIR
58 SHAREDIR = _constants.SHAREDIR
59 LOCALSTATEDIR = vcluster.AddNodePrefix(_constants.LOCALSTATEDIR)
60
61
62 DAEMON_UTIL = _constants.PKGLIBDIR + "/daemon-util"
63 IMPORT_EXPORT_DAEMON = _constants.PKGLIBDIR + "/import-export"
64 KVM_CONSOLE_WRAPPER = _constants.PKGLIBDIR + "/tools/kvm-console-wrapper"
65 KVM_IFUP = _constants.PKGLIBDIR + "/kvm-ifup"
66 PREPARE_NODE_JOIN = _constants.PKGLIBDIR + "/prepare-node-join"
67 NODE_DAEMON_SETUP = _constants.PKGLIBDIR + "/node-daemon-setup"
68 SSL_UPDATE = _constants.PKGLIBDIR + "/ssl-update"
69 XEN_CONSOLE_WRAPPER = _constants.PKGLIBDIR + "/tools/xen-console-wrapper"
70 CFGUPGRADE = _constants.PKGLIBDIR + "/tools/cfgupgrade"
71 POST_UPGRADE = _constants.PKGLIBDIR + "/tools/post-upgrade"
72 ENSURE_DIRS = _constants.PKGLIBDIR + "/ensure-dirs"
73
74 XEN_VIF_METAD_SETUP = _constants.PKGLIBDIR + "/vif-ganeti-metad"
75 ETC_HOSTS = vcluster.ETC_HOSTS
76
77
78 DATA_DIR = LOCALSTATEDIR + "/lib/ganeti"
79 LOCK_DIR = LOCALSTATEDIR + "/lock"
80 LOG_DIR = LOCALSTATEDIR + "/log/ganeti"
81 RUN_DIR = LOCALSTATEDIR + "/run/ganeti"
82
83
84 DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
85
86 SSH_HOST_DSA_PRIV = _constants.SSH_HOST_DSA_PRIV
87 SSH_HOST_DSA_PUB = _constants.SSH_HOST_DSA_PUB
88 SSH_HOST_RSA_PRIV = _constants.SSH_HOST_RSA_PRIV
89 SSH_HOST_RSA_PUB = _constants.SSH_HOST_RSA_PUB
90
91 BDEV_CACHE_DIR = RUN_DIR + "/bdev-cache"
92 DISK_LINKS_DIR = RUN_DIR + "/instance-disks"
93 SOCKET_DIR = RUN_DIR + "/socket"
94 CRYPTO_KEYS_DIR = RUN_DIR + "/crypto"
95 IMPORT_EXPORT_DIR = RUN_DIR + "/import-export"
96 INSTANCE_STATUS_FILE = RUN_DIR + "/instance-status"
97 INSTANCE_REASON_DIR = RUN_DIR + "/instance-reason"
98
99
100 UIDPOOL_LOCKDIR = RUN_DIR + "/uid-pool"
101 LIVELOCK_DIR = RUN_DIR + "/livelocks"
102 LUXID_MESSAGE_DIR = RUN_DIR + "/luxidmessages"
103
104 SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock"
105
106 CLUSTER_CONF_FILE = DATA_DIR + "/config.data"
107 RAPI_CERT_FILE = DATA_DIR + "/rapi.pem"
108 CONFD_HMAC_KEY = DATA_DIR + "/hmac.key"
109 SPICE_CERT_FILE = DATA_DIR + "/spice.pem"
110 SPICE_CACERT_FILE = DATA_DIR + "/spice-ca.pem"
111 CLUSTER_DOMAIN_SECRET_FILE = DATA_DIR + "/cluster-domain-secret"
112 SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
113 RAPI_DATA_DIR = DATA_DIR + "/rapi"
114 RAPI_USERS_FILE = RAPI_DATA_DIR + "/users"
115 QUEUE_DIR = DATA_DIR + "/queue"
116 INTENT_TO_UPGRADE = DATA_DIR + "/intent-to-upgrade"
117 CONF_DIR = SYSCONFDIR + "/ganeti"
118 XEN_IFUP_OS = CONF_DIR + "/xen-ifup-os"
119 USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
120 VNC_PASSWORD_FILE = CONF_DIR + "/vnc-cluster-password"
121 HOOKS_BASE_DIR = CONF_DIR + "/hooks"
122 FILE_STORAGE_PATHS_FILE = CONF_DIR + "/file-storage-paths"
123 RESTRICTED_COMMANDS_DIR = CONF_DIR + "/restricted-commands"
124
125
126 NODED_CERT_FILE = DATA_DIR + "/server.pem"
127 NODED_CLIENT_CERT_FILE = DATA_DIR + "/client.pem"
128
129
130 NODED_CERT_MODE = 0440
131
132
133 RESTRICTED_COMMANDS_LOCK_FILE = LOCK_DIR + "/ganeti-restricted-commands.lock"
134
135
136
137 WATCHER_LOCK_FILE = LOCK_DIR + "/ganeti-watcher.lock"
138
139
140 WATCHER_GROUP_STATE_FILE = DATA_DIR + "/watcher.%s.data"
141
142
143
144 WATCHER_GROUP_INSTANCE_STATUS_FILE = DATA_DIR + "/watcher.%s.instance-status"
145
146
147 WATCHER_PAUSEFILE = DATA_DIR + "/watcher.pause"
148
149
150 EXTERNAL_MASTER_SETUP_SCRIPT = USER_SCRIPTS_DIR + "/master-ip-setup"
151
152
153 MASTER_SOCKET = SOCKET_DIR + "/ganeti-master"
154
155 QUERY_SOCKET = SOCKET_DIR + "/ganeti-query"
156
157 WCONFD_SOCKET = SOCKET_DIR + "/ganeti-wconfd"
158
159 LOG_OS_DIR = LOG_DIR + "/os"
160 LOG_ES_DIR = LOG_DIR + "/extstorage"
161
162 LOG_XEN_DIR = LOG_DIR + "/xen"
163
164
165 JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
166 JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
167 JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
168 JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
169 JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain"
170
171 ALL_CERT_FILES = compat.UniqueFrozenset([
172 NODED_CERT_FILE,
173 RAPI_CERT_FILE,
174 SPICE_CERT_FILE,
175 SPICE_CACERT_FILE,
176 ])
177
178
180 """Returns the full path for a daemon's log file.
181
182 """
183 return "%s/%s.log" % (LOG_DIR, daemon_name)
184
185
186 LOG_WATCHER = GetLogFilename("watcher")
187 LOG_COMMANDS = GetLogFilename("commands")
188 LOG_BURNIN = GetLogFilename("burnin")
189