Revision 2fe1e043
b/Makefile.am | ||
---|---|---|
1589 | 1589 |
echo "XEN_INITRD = '$(XEN_INITRD)'"; \ |
1590 | 1590 |
echo "KVM_KERNEL = '$(KVM_KERNEL)'"; \ |
1591 | 1591 |
echo "SHARED_FILE_STORAGE_DIR = '$(SHARED_FILE_STORAGE_DIR)'"; \ |
1592 |
echo "ENABLE_SHARED_FILE_STORAGE = $(ENABLE_SHARED_FILE_STORAGE)"; \ |
|
1593 | 1592 |
echo "IALLOCATOR_SEARCH_PATH = [$(IALLOCATOR_SEARCH_PATH)]"; \ |
1594 | 1593 |
echo "KVM_PATH = '$(KVM_PATH)'"; \ |
1595 | 1594 |
echo "IP_PATH = '$(IP_PATH)'"; \ |
b/configure.ac | ||
---|---|---|
134 | 134 |
[directory to store files for shared file-based backend] |
135 | 135 |
[ (default is /srv/ganeti/shared-file-storage)] |
136 | 136 |
)], |
137 |
[[shared_file_storage_dir="$withval"; |
|
138 |
if test "$withval" != no; then |
|
139 |
enable_shared_file_storage=True |
|
140 |
else |
|
141 |
enable_shared_file_storage=False |
|
142 |
fi |
|
143 |
]], |
|
144 |
[[shared_file_storage_dir="/srv/ganeti/shared-file-storage"; |
|
145 |
enable_shared_file_storage=True]]) |
|
137 |
[[shared_file_storage_dir="/srv/ganeti/shared-file-storage"]]) |
|
146 | 138 |
AC_SUBST(SHARED_FILE_STORAGE_DIR, $shared_file_storage_dir) |
147 |
AC_SUBST(ENABLE_SHARED_FILE_STORAGE, $enable_shared_file_storage) |
|
148 | 139 |
|
149 | 140 |
# --with-kvm-path=... |
150 | 141 |
AC_ARG_WITH([kvm-path], |
b/lib/constants.py | ||
---|---|---|
145 | 145 |
SECURE_DIR_MODE = 0700 |
146 | 146 |
SECURE_FILE_MODE = 0600 |
147 | 147 |
ADOPTABLE_BLOCKDEV_ROOT = "/dev/disk/" |
148 |
ENABLE_SHARED_FILE_STORAGE = _autoconf.ENABLE_SHARED_FILE_STORAGE |
|
149 | 148 |
ENABLE_CONFD = _autoconf.ENABLE_CONFD |
150 | 149 |
ENABLE_MOND = _autoconf.ENABLE_MOND |
151 | 150 |
ENABLE_SPLIT_QUERY = _autoconf.ENABLE_SPLIT_QUERY |
b/lib/pathutils.py | ||
---|---|---|
31 | 31 |
# Build-time constants |
32 | 32 |
DEFAULT_FILE_STORAGE_DIR = "/srv/ganeti/file-storage" |
33 | 33 |
DEFAULT_FILE_STORAGE_DIR = vcluster.AddNodePrefix(DEFAULT_FILE_STORAGE_DIR) |
34 |
|
|
35 | 34 |
DEFAULT_SHARED_FILE_STORAGE_DIR = "/srv/ganeti/shared-file-storage" |
36 |
if _autoconf.ENABLE_SHARED_FILE_STORAGE: |
|
37 |
DEFAULT_SHARED_FILE_STORAGE_DIR = \ |
|
38 |
vcluster.AddNodePrefix(_autoconf.SHARED_FILE_STORAGE_DIR) |
|
39 |
else: |
|
40 |
DEFAULT_SHARED_FILE_STORAGE_DIR = _autoconf.SHARED_FILE_STORAGE_DIR |
|
35 |
DEFAULT_SHARED_FILE_STORAGE_DIR = \ |
|
36 |
vcluster.AddNodePrefix(DEFAULT_SHARED_FILE_STORAGE_DIR) |
|
41 | 37 |
EXPORT_DIR = vcluster.AddNodePrefix(_autoconf.EXPORT_DIR) |
42 | 38 |
OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH |
43 | 39 |
ES_SEARCH_PATH = _autoconf.ES_SEARCH_PATH |
b/lib/utils/storage.py | ||
---|---|---|
97 | 97 |
return (storage_type, cfg.GetVGName()) |
98 | 98 |
elif disk_template == constants.DT_FILE: |
99 | 99 |
return (storage_type, cluster.file_storage_dir) |
100 |
# FIXME: Adjust this, once SHARED_FILE_STORAGE_DIR |
|
101 |
# is not in autoconf anymore. |
|
102 | 100 |
elif disk_template == constants.DT_SHARED_FILE: |
103 |
return (storage_type, pathutils.DEFAULT_SHARED_FILE_STORAGE_DIR)
|
|
101 |
return (storage_type, cluster.shared_file_storage_dir)
|
|
104 | 102 |
else: |
105 | 103 |
return (storage_type, None) |
106 | 104 |
|
b/test/hs/Test/Ganeti/Types.hs | ||
---|---|---|
37 | 37 |
, JobId(..) |
38 | 38 |
) where |
39 | 39 |
|
40 |
import Data.List (delete, sort)
|
|
40 |
import Data.List (sort) |
|
41 | 41 |
import Test.QuickCheck as QuickCheck hiding (Result) |
42 | 42 |
import Test.HUnit |
43 | 43 |
import qualified Text.JSON as J |
... | ... | |
81 | 81 |
|
82 | 82 |
-- | Valid disk templates (depending on configure options). |
83 | 83 |
allDiskTemplates :: [DiskTemplate] |
84 |
allDiskTemplates = |
|
85 |
let all_vals = [minBound..maxBound]::[DiskTemplate] |
|
86 |
sel1 = if C.enableSharedFileStorage |
|
87 |
then all_vals |
|
88 |
else delete DTSharedFile all_vals |
|
89 |
in sel1 |
|
84 |
allDiskTemplates = [minBound..maxBound]::[DiskTemplate] |
|
90 | 85 |
|
91 | 86 |
-- | Custom 'Arbitrary' instance for 'DiskTemplate', which needs to |
92 | 87 |
-- handle the case of file storage being disabled at configure time. |
b/test/py/ganeti.utils.storage_unittest.py | ||
---|---|---|
27 | 27 |
|
28 | 28 |
from ganeti import constants |
29 | 29 |
from ganeti import objects |
30 |
from ganeti import pathutils |
|
31 | 30 |
from ganeti.utils import storage |
32 | 31 |
|
33 | 32 |
import testutils |
... | ... | |
39 | 38 |
self._default_vg_name = "some_vg_name" |
40 | 39 |
self._cluster = mock.Mock() |
41 | 40 |
self._cluster.file_storage_dir = "my/file/storage/dir" |
41 |
self._cluster.shared_file_storage_dir = "my/shared/file/storage/dir" |
|
42 | 42 |
self._cfg = mock.Mock() |
43 | 43 |
self._cfg.GetVGName = mock.Mock(return_value=self._default_vg_name) |
44 | 44 |
self._cfg.GetClusterInfo = mock.Mock(return_value=self._cluster) |
... | ... | |
63 | 63 |
storage._GetDefaultStorageUnitForDiskTemplate(self._cfg, |
64 | 64 |
constants.DT_SHARED_FILE) |
65 | 65 |
self.assertEqual(storage_type, constants.ST_FILE) |
66 |
self.assertEqual(storage_key, pathutils.DEFAULT_SHARED_FILE_STORAGE_DIR)
|
|
66 |
self.assertEqual(storage_key, self._cluster.shared_file_storage_dir)
|
|
67 | 67 |
|
68 | 68 |
def testGetDefaultStorageUnitForDiskTemplateDiskless(self): |
69 | 69 |
(storage_type, storage_key) = \ |
Also available in: Unified diff