Revision 7181fba0 test/ganeti.bdev_unittest.py

b/test/ganeti.bdev_unittest.py
340 340
    self.failUnless(stats.is_in_resync)
341 341
    self.failUnless(stats.sync_percent is not None)
342 342

  
343

  
344
class TestRADOSBlockDevice(testutils.GanetiTestCase):
345
  def test_ParseRbdShowmappedOutput(self):
346
    volume_name = "abc9778-8e8ace5b.rbd.disk0"
347
    output_ok = \
348
      ("0\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
349
       "1\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd16\n"
350
       "line\twith\tfewer\tfields\n"
351
       "")
352
    output_empty = ""
353
    output_no_matches = \
354
      ("0\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
355
       "1\trbd\tabcdef01-9817.rbd.disk0\t-\t/dev/rbd10\n"
356
       "2\trbd\tcdef0123-9817.rbd.disk0\t-\t/dev/rbd12\n"
357
       "something\twith\tfewer\tfields"
358
       "")
359
    output_extra_matches = \
360
      ("0\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd11\n"
361
       "1\trbd\te69f28e5-9817.rbd.disk0\t-\t/dev/rbd0\n"
362
       "2\t/dev/rbd0\tabc9778-8e8ace5b.rbd.disk0\t-\t/dev/rbd16\n"
363
       "something\twith\tfewer\tfields"
364
       "")
365

  
366
    parse_function = bdev.RADOSBlockDevice._ParseRbdShowmappedOutput
367
    self.assertEqual(parse_function(output_ok, volume_name), "/dev/rbd16")
368
    self.assertRaises(errors.BlockDeviceError, parse_function,
369
                      output_empty, volume_name)
370
    self.assertEqual(parse_function(output_no_matches, volume_name), None)
371
    self.assertRaises(errors.BlockDeviceError, parse_function,
372
                      output_extra_matches, volume_name)
373

  
374

  
343 375
if __name__ == '__main__':
344 376
  testutils.GanetiTestProgram()

Also available in: Unified diff