Revision 2fe690f1 test/py/ganeti.block.bdev_unittest.py

b/test/py/ganeti.block.bdev_unittest.py
71 71
      }
72 72
    ]
73 73
    for d,r in zip(data, result):
74
      self.assertEqual(drbd.DRBD8._GetVersion(d), r)
74
      info = drbd.DRBD8Info.CreateFromLines(d)
75
      self.assertEqual(info.GetVersion(), r)
75 76

  
76 77

  
77 78
class TestDRBD8Runner(testutils.GanetiTestCase):
......
244 245
    proc83_sync_data = testutils.TestDataFilename("proc_drbd83_sync.txt")
245 246
    proc83_sync_krnl_data = \
246 247
      testutils.TestDataFilename("proc_drbd83_sync_krnl2.6.39.txt")
247
    self.proc_data = drbd.DRBD8._GetProcData(filename=proc_data)
248
    self.proc80e_data = drbd.DRBD8._GetProcData(filename=proc80e_data)
249
    self.proc83_data = drbd.DRBD8._GetProcData(filename=proc83_data)
250
    self.proc83_sync_data = drbd.DRBD8._GetProcData(filename=proc83_sync_data)
251
    self.proc83_sync_krnl_data = \
252
      drbd.DRBD8._GetProcData(filename=proc83_sync_krnl_data)
253
    self.mass_data = drbd.DRBD8._JoinProcDataPerMinor(self.proc_data)
254
    self.mass80e_data = drbd.DRBD8._JoinProcDataPerMinor(self.proc80e_data)
255
    self.mass83_data = drbd.DRBD8._JoinProcDataPerMinor(self.proc83_data)
256
    self.mass83_sync_data = \
257
      drbd.DRBD8._JoinProcDataPerMinor(self.proc83_sync_data)
258
    self.mass83_sync_krnl_data = \
259
      drbd.DRBD8._JoinProcDataPerMinor(self.proc83_sync_krnl_data)
248

  
249
    self.drbd_info = drbd.DRBD8Info.CreateFromFile(filename=proc_data)
250
    self.drbd_info80e = drbd.DRBD8Info.CreateFromFile(filename=proc80e_data)
251
    self.drbd_info83 = drbd.DRBD8Info.CreateFromFile(filename=proc83_data)
252
    self.drbd_info83_sync = \
253
      drbd.DRBD8Info.CreateFromFile(filename=proc83_sync_data)
254
    self.drbd_info83_sync_krnl = \
255
      drbd.DRBD8Info.CreateFromFile(filename=proc83_sync_krnl_data)
260 256

  
261 257
  def testIOErrors(self):
262 258
    """Test handling of errors while reading the proc file."""
263 259
    temp_file = self._CreateTempFile()
264 260
    os.unlink(temp_file)
265 261
    self.failUnlessRaises(errors.BlockDeviceError,
266
                          drbd.DRBD8._GetProcData, filename=temp_file)
262
                          drbd.DRBD8Info.CreateFromFile, filename=temp_file)
267 263

  
268 264
  def testHelper(self):
269 265
    """Test reading usermode_helper in /sys."""
......
280 276

  
281 277
  def testMinorNotFound(self):
282 278
    """Test not-found-minor in /proc"""
283
    self.failUnless(9 not in self.mass_data)
284
    self.failUnless(9 not in self.mass83_data)
285
    self.failUnless(3 not in self.mass80e_data)
279
    self.failUnless(not self.drbd_info.HasMinorStatus(9))
280
    self.failUnless(not self.drbd_info83.HasMinorStatus(9))
281
    self.failUnless(not self.drbd_info80e.HasMinorStatus(3))
286 282

  
287 283
  def testLineNotMatch(self):
288 284
    """Test wrong line passed to drbd.DRBD8Status"""
......
290 286

  
291 287
  def testMinor0(self):
292 288
    """Test connected, primary device"""
293
    for data in [self.mass_data, self.mass83_data]:
294
      stats = drbd.DRBD8Status(data[0])
289
    for info in [self.drbd_info, self.drbd_info83]:
290
      stats = info.GetMinorStatus(0)
295 291
      self.failUnless(stats.is_in_use)
296 292
      self.failUnless(stats.is_connected and stats.is_primary and
297 293
                      stats.peer_secondary and stats.is_disk_uptodate)
298 294

  
299 295
  def testMinor1(self):
300 296
    """Test connected, secondary device"""
301
    for data in [self.mass_data, self.mass83_data]:
302
      stats = drbd.DRBD8Status(data[1])
297
    for info in [self.drbd_info, self.drbd_info83]:
298
      stats = info.GetMinorStatus(1)
303 299
      self.failUnless(stats.is_in_use)
304 300
      self.failUnless(stats.is_connected and stats.is_secondary and
305 301
                      stats.peer_primary and stats.is_disk_uptodate)
306 302

  
307 303
  def testMinor2(self):
308 304
    """Test unconfigured device"""
309
    for data in [self.mass_data, self.mass83_data, self.mass80e_data]:
310
      stats = drbd.DRBD8Status(data[2])
305
    for info in [self.drbd_info, self.drbd_info83, self.drbd_info80e]:
306
      stats = info.GetMinorStatus(2)
311 307
      self.failIf(stats.is_in_use)
312 308

  
313 309
  def testMinor4(self):
314 310
    """Test WFconn device"""
315
    for data in [self.mass_data, self.mass83_data]:
316
      stats = drbd.DRBD8Status(data[4])
311
    for info in [self.drbd_info, self.drbd_info83]:
312
      stats = info.GetMinorStatus(4)
317 313
      self.failUnless(stats.is_in_use)
318 314
      self.failUnless(stats.is_wfconn and stats.is_primary and
319 315
                      stats.rrole == "Unknown" and
......
321 317

  
322 318
  def testMinor6(self):
323 319
    """Test diskless device"""
324
    for data in [self.mass_data, self.mass83_data]:
325
      stats = drbd.DRBD8Status(data[6])
320
    for info in [self.drbd_info, self.drbd_info83]:
321
      stats = info.GetMinorStatus(6)
326 322
      self.failUnless(stats.is_in_use)
327 323
      self.failUnless(stats.is_connected and stats.is_secondary and
328 324
                      stats.peer_primary and stats.is_diskless)
329 325

  
330 326
  def testMinor8(self):
331 327
    """Test standalone device"""
332
    for data in [self.mass_data, self.mass83_data]:
333
      stats = drbd.DRBD8Status(data[8])
328
    for info in [self.drbd_info, self.drbd_info83]:
329
      stats = info.GetMinorStatus(8)
334 330
      self.failUnless(stats.is_in_use)
335 331
      self.failUnless(stats.is_standalone and
336 332
                      stats.rrole == "Unknown" and
337 333
                      stats.is_disk_uptodate)
338 334

  
339 335
  def testDRBD83SyncFine(self):
340
    stats = drbd.DRBD8Status(self.mass83_sync_data[3])
336
    stats = self.drbd_info83_sync.GetMinorStatus(3)
341 337
    self.failUnless(stats.is_in_resync)
342 338
    self.failUnless(stats.sync_percent is not None)
343 339

  
344 340
  def testDRBD83SyncBroken(self):
345
    stats = drbd.DRBD8Status(self.mass83_sync_krnl_data[3])
341
    stats = self.drbd_info83_sync_krnl.GetMinorStatus(3)
346 342
    self.failUnless(stats.is_in_resync)
347 343
    self.failUnless(stats.sync_percent is not None)
348 344

  

Also available in: Unified diff