Revision 850c53f1 test/py/ganeti.cmdlib_unittest.py
b/test/py/ganeti.cmdlib_unittest.py | ||
---|---|---|
1166 | 1166 |
|
1167 | 1167 |
|
1168 | 1168 |
class _FakeConfigForGenDiskTemplate: |
1169 |
def __init__(self): |
|
1169 |
def __init__(self, enabled_disk_templates):
|
|
1170 | 1170 |
self._unique_id = itertools.count() |
1171 | 1171 |
self._drbd_minor = itertools.count(20) |
1172 | 1172 |
self._port = itertools.count(constants.FIRST_DRBD_PORT) |
1173 | 1173 |
self._secret = itertools.count() |
1174 |
self._enabled_disk_templates = enabled_disk_templates |
|
1174 | 1175 |
|
1175 | 1176 |
def GetVGName(self): |
1176 | 1177 |
return "testvg" |
... | ... | |
1191 | 1192 |
def GetInstanceInfo(self, _): |
1192 | 1193 |
return "foobar" |
1193 | 1194 |
|
1195 |
def GetClusterInfo(self): |
|
1196 |
cluster = objects.Cluster() |
|
1197 |
cluster.enabled_disk_templates = self._enabled_disk_templates |
|
1198 |
return cluster |
|
1199 |
|
|
1194 | 1200 |
|
1195 | 1201 |
class _FakeProcForGenDiskTemplate: |
1196 | 1202 |
def GetECId(self): |
... | ... | |
1198 | 1204 |
|
1199 | 1205 |
|
1200 | 1206 |
class TestGenerateDiskTemplate(unittest.TestCase): |
1201 |
def setUp(self): |
|
1202 |
nodegroup = objects.NodeGroup(name="ng") |
|
1203 |
nodegroup.UpgradeConfig() |
|
1204 | 1207 |
|
1205 |
cfg = _FakeConfigForGenDiskTemplate() |
|
1208 |
def _SetUpLUWithTemplates(self, enabled_disk_templates): |
|
1209 |
self._enabled_disk_templates = enabled_disk_templates |
|
1210 |
cfg = _FakeConfigForGenDiskTemplate(self._enabled_disk_templates) |
|
1206 | 1211 |
proc = _FakeProcForGenDiskTemplate() |
1207 | 1212 |
|
1208 | 1213 |
self.lu = _FakeLU(cfg=cfg, proc=proc) |
1214 |
|
|
1215 |
def setUp(self): |
|
1216 |
nodegroup = objects.NodeGroup(name="ng") |
|
1217 |
nodegroup.UpgradeConfig() |
|
1218 |
|
|
1219 |
self._enabled_disk_templates = list(constants.DISK_TEMPLATES) |
|
1220 |
self._SetUpLUWithTemplates(self._enabled_disk_templates) |
|
1209 | 1221 |
self.nodegroup = nodegroup |
1210 | 1222 |
|
1211 | 1223 |
@staticmethod |
... | ... | |
1218 | 1230 |
|
1219 | 1231 |
assert disk_template not in constants.DISK_TEMPLATES |
1220 | 1232 |
|
1221 |
self.assertRaises(errors.ProgrammerError, gdt, self.lu, disk_template,
|
|
1233 |
self.assertRaises(errors.OpPrereqError, gdt, self.lu, disk_template,
|
|
1222 | 1234 |
"inst26831.example.com", "node30113.example.com", [], [], |
1223 | 1235 |
NotImplemented, NotImplemented, 0, self.lu.LogInfo, |
1224 | 1236 |
self.GetDiskParams()) |
... | ... | |
1234 | 1246 |
|
1235 | 1247 |
def _TestTrivialDisk(self, template, disk_info, base_index, exp_dev_type, |
1236 | 1248 |
file_storage_dir=NotImplemented, |
1237 |
file_driver=NotImplemented, |
|
1238 |
req_file_storage=NotImplemented, |
|
1239 |
req_shr_file_storage=NotImplemented): |
|
1249 |
file_driver=NotImplemented): |
|
1240 | 1250 |
gdt = instance.GenerateDiskTemplate |
1241 | 1251 |
|
1242 | 1252 |
map(lambda params: utils.ForceDictType(params, |
... | ... | |
1248 | 1258 |
template, "inst25088.example.com", |
1249 | 1259 |
"node185.example.com", ["node323.example.com"], [], |
1250 | 1260 |
NotImplemented, NotImplemented, base_index, |
1251 |
self.lu.LogInfo, self.GetDiskParams(), |
|
1252 |
_req_file_storage=req_file_storage, |
|
1253 |
_req_shr_file_storage=req_shr_file_storage) |
|
1261 |
self.lu.LogInfo, self.GetDiskParams()) |
|
1254 | 1262 |
|
1255 | 1263 |
result = gdt(self.lu, template, "inst21662.example.com", |
1256 | 1264 |
"node21741.example.com", [], |
1257 | 1265 |
disk_info, file_storage_dir, file_driver, base_index, |
1258 |
self.lu.LogInfo, self.GetDiskParams(), |
|
1259 |
_req_file_storage=req_file_storage, |
|
1260 |
_req_shr_file_storage=req_shr_file_storage) |
|
1266 |
self.lu.LogInfo, self.GetDiskParams()) |
|
1261 | 1267 |
|
1262 | 1268 |
for (idx, disk) in enumerate(result): |
1263 | 1269 |
self.assertTrue(isinstance(disk, objects.Disk)) |
... | ... | |
1294 | 1300 |
("othervg", "ec0-uq1.disk4"), |
1295 | 1301 |
]) |
1296 | 1302 |
|
1297 |
@staticmethod |
|
1298 |
def _AllowFileStorage(): |
|
1299 |
pass |
|
1300 |
|
|
1301 |
@staticmethod |
|
1302 |
def _ForbidFileStorage(): |
|
1303 |
raise errors.OpPrereqError("Disallowed in test") |
|
1304 |
|
|
1305 | 1303 |
def testFile(self): |
1304 |
# anything != DT_FILE would do here |
|
1305 |
self._SetUpLUWithTemplates([constants.DT_PLAIN]) |
|
1306 | 1306 |
self.assertRaises(errors.OpPrereqError, self._TestTrivialDisk, |
1307 |
constants.DT_FILE, [], 0, NotImplemented, |
|
1308 |
req_file_storage=self._ForbidFileStorage) |
|
1307 |
constants.DT_FILE, [], 0, NotImplemented) |
|
1309 | 1308 |
self.assertRaises(errors.OpPrereqError, self._TestTrivialDisk, |
1310 |
constants.DT_SHARED_FILE, [], 0, NotImplemented, |
|
1311 |
req_shr_file_storage=self._ForbidFileStorage) |
|
1309 |
constants.DT_SHARED_FILE, [], 0, NotImplemented) |
|
1312 | 1310 |
|
1313 | 1311 |
for disk_template in [constants.DT_FILE, constants.DT_SHARED_FILE]: |
1314 | 1312 |
disk_info = [{ |
... | ... | |
1322 | 1320 |
constants.IDISK_MODE: constants.DISK_RDWR, |
1323 | 1321 |
}] |
1324 | 1322 |
|
1323 |
self._SetUpLUWithTemplates([disk_template]) |
|
1325 | 1324 |
result = self._TestTrivialDisk(disk_template, disk_info, 2, |
1326 | 1325 |
constants.LD_FILE, file_storage_dir="/tmp", |
1327 |
file_driver=constants.FD_BLKTAP, |
|
1328 |
req_file_storage=self._AllowFileStorage, |
|
1329 |
req_shr_file_storage=self._AllowFileStorage) |
|
1326 |
file_driver=constants.FD_BLKTAP) |
|
1330 | 1327 |
|
1331 | 1328 |
self.assertEqual(map(operator.attrgetter("logical_id"), result), [ |
1332 | 1329 |
(constants.FD_BLKTAP, "/tmp/disk2"), |
Also available in: Unified diff