If possible, replace symbolic links in place
[ganeti-local] / lib / pathutils.py
index fe53180..756aec4 100644 (file)
@@ -1,7 +1,7 @@
 #
 #
 
-# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Google Inc.
+# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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
 
 """
 
-from ganeti import _autoconf
+from ganeti import _constants
 from ganeti import compat
 from ganeti import vcluster
 
 
 # Build-time constants
-DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(_autoconf.FILE_STORAGE_DIR)
+DEFAULT_FILE_STORAGE_DIR = "/srv/ganeti/file-storage"
+DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(DEFAULT_FILE_STORAGE_DIR)
+DEFAULT_SHARED_FILE_STORAGE_DIR = "/srv/ganeti/shared-file-storage"
 DEFAULT_SHARED_FILE_STORAGE_DIR = \
-  vcluster.AddNodePrefix(_autoconf.SHARED_FILE_STORAGE_DIR)
-EXPORT_DIR = vcluster.AddNodePrefix(_autoconf.EXPORT_DIR)
-OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH
-ES_SEARCH_PATH = _autoconf.ES_SEARCH_PATH
-SSH_CONFIG_DIR = _autoconf.SSH_CONFIG_DIR
-XEN_CONFIG_DIR = vcluster.AddNodePrefix(_autoconf.XEN_CONFIG_DIR)
-SYSCONFDIR = vcluster.AddNodePrefix(_autoconf.SYSCONFDIR)
-TOOLSDIR = _autoconf.TOOLSDIR
-LOCALSTATEDIR = vcluster.AddNodePrefix(_autoconf.LOCALSTATEDIR)
+    vcluster.AddNodePrefix(DEFAULT_SHARED_FILE_STORAGE_DIR)
+EXPORT_DIR = vcluster.AddNodePrefix(_constants.EXPORT_DIR)
+OS_SEARCH_PATH = _constants.OS_SEARCH_PATH
+ES_SEARCH_PATH = _constants.ES_SEARCH_PATH
+SSH_CONFIG_DIR = _constants.SSH_CONFIG_DIR
+XEN_CONFIG_DIR = vcluster.AddNodePrefix(_constants.XEN_CONFIG_DIR)
+SYSCONFDIR = vcluster.AddNodePrefix(_constants.SYSCONFDIR)
+TOOLSDIR = _constants.TOOLSDIR
+PKGLIBDIR = _constants.PKGLIBDIR
+SHAREDIR = _constants.SHAREDIR
+LOCALSTATEDIR = vcluster.AddNodePrefix(_constants.LOCALSTATEDIR)
 
 # Paths which don't change for a virtual cluster
-DAEMON_UTIL = _autoconf.PKGLIBDIR + "/daemon-util"
-IMPORT_EXPORT_DAEMON = _autoconf.PKGLIBDIR + "/import-export"
-KVM_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/kvm-console-wrapper"
-KVM_IFUP = _autoconf.PKGLIBDIR + "/kvm-ifup"
-PREPARE_NODE_JOIN = _autoconf.PKGLIBDIR + "/prepare-node-join"
-NODE_DAEMON_SETUP = _autoconf.PKGLIBDIR + "/node-daemon-setup"
-XEN_CONSOLE_WRAPPER = _autoconf.PKGLIBDIR + "/tools/xen-console-wrapper"
+DAEMON_UTIL = _constants.PKGLIBDIR + "/daemon-util"
+IMPORT_EXPORT_DAEMON = _constants.PKGLIBDIR + "/import-export"
+KVM_CONSOLE_WRAPPER = _constants.PKGLIBDIR + "/tools/kvm-console-wrapper"
+KVM_IFUP = _constants.PKGLIBDIR + "/kvm-ifup"
+PREPARE_NODE_JOIN = _constants.PKGLIBDIR + "/prepare-node-join"
+NODE_DAEMON_SETUP = _constants.PKGLIBDIR + "/node-daemon-setup"
+XEN_CONSOLE_WRAPPER = _constants.PKGLIBDIR + "/tools/xen-console-wrapper"
+CFGUPGRADE = _constants.PKGLIBDIR + "/tools/cfgupgrade"
+ENSURE_DIRS = _constants.PKGLIBDIR + "/ensure-dirs"
 ETC_HOSTS = vcluster.ETC_HOSTS
 
 # Top-level paths
@@ -60,10 +66,10 @@ RUN_DIR = LOCALSTATEDIR + "/run/ganeti"
 #: Script to configure master IP address
 DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
 
-SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_dsa_key"
-SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub"
-SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "/ssh_host_rsa_key"
-SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub"
+SSH_HOST_DSA_PRIV = _constants.SSH_HOST_DSA_PRIV
+SSH_HOST_DSA_PUB = _constants.SSH_HOST_DSA_PUB
+SSH_HOST_RSA_PRIV = _constants.SSH_HOST_RSA_PRIV
+SSH_HOST_RSA_PUB = _constants.SSH_HOST_RSA_PUB
 
 BDEV_CACHE_DIR = RUN_DIR + "/bdev-cache"
 DISK_LINKS_DIR = RUN_DIR + "/instance-disks"
@@ -71,6 +77,7 @@ SOCKET_DIR = RUN_DIR + "/socket"
 CRYPTO_KEYS_DIR = RUN_DIR + "/crypto"
 IMPORT_EXPORT_DIR = RUN_DIR + "/import-export"
 INSTANCE_STATUS_FILE = RUN_DIR + "/instance-status"
+INSTANCE_REASON_DIR = RUN_DIR + "/instance-reason"
 #: User-id pool lock directory (used user IDs have a corresponding lock file in
 #: this directory)
 UIDPOOL_LOCKDIR = RUN_DIR + "/uid-pool"
@@ -86,6 +93,7 @@ CLUSTER_DOMAIN_SECRET_FILE = DATA_DIR + "/cluster-domain-secret"
 SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts"
 RAPI_USERS_FILE = DATA_DIR + "/rapi/users"
 QUEUE_DIR = DATA_DIR + "/queue"
+INTENT_TO_UPGRADE = DATA_DIR + "/intent-to-upgrade"
 CONF_DIR = SYSCONFDIR + "/ganeti"
 USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
 VNC_PASSWORD_FILE = CONF_DIR + "/vnc-cluster-password"
@@ -126,6 +134,8 @@ QUERY_SOCKET = SOCKET_DIR + "/ganeti-query"
 
 LOG_OS_DIR = LOG_DIR + "/os"
 LOG_ES_DIR = LOG_DIR + "/extstorage"
+#: Directory for storing Xen config files after failed instance starts
+LOG_XEN_DIR = LOG_DIR + "/xen"
 
 # Job queue paths
 JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"