def test_always_logout_iscsi(self): """logout_iscsi() must be called once login_iscsi() is called.""" address = '127.0.0.1' port = 3306 iqn = 'iqn.xyz' lun = 1 image_path = '/tmp/xyz/image' pxe_config_path = '/tmp/abc/pxeconfig' root_mb = 128 swap_mb = 64 dev = '/dev/fake' self.mox.StubOutWithMock(bmdh, 'get_dev') self.mox.StubOutWithMock(bmdh, 'get_image_mb') self.mox.StubOutWithMock(bmdh, 'discovery') self.mox.StubOutWithMock(bmdh, 'login_iscsi') self.mox.StubOutWithMock(bmdh, 'logout_iscsi') self.mox.StubOutWithMock(bmdh, 'work_on_disk') class TestException(Exception): pass bmdh.get_dev(address, port, iqn, lun).AndReturn(dev) bmdh.get_image_mb(image_path).AndReturn(1) # < root_mb bmdh.discovery(address, port) bmdh.login_iscsi(address, port, iqn) bmdh.work_on_disk(dev, root_mb, swap_mb, image_path).\ AndRaise(TestException) bmdh.logout_iscsi(address, port, iqn) self.mox.ReplayAll() self.assertRaises(TestException, bmdh.deploy, address, port, iqn, lun, image_path, pxe_config_path, root_mb, swap_mb)
def test_deploy(self): """Check loosely all functions are called with right args.""" address = '127.0.0.1' port = 3306 iqn = 'iqn.xyz' lun = 1 image_path = '/tmp/xyz/image' pxe_config_path = '/tmp/abc/pxeconfig' root_mb = 128 swap_mb = 64 dev = '/dev/fake' root_part = '/dev/fake-part1' swap_part = '/dev/fake-part2' root_uuid = '12345678-1234-1234-12345678-12345678abcdef' self.mox.StubOutWithMock(bmdh, 'get_dev') self.mox.StubOutWithMock(bmdh, 'get_image_mb') self.mox.StubOutWithMock(bmdh, 'discovery') self.mox.StubOutWithMock(bmdh, 'login_iscsi') self.mox.StubOutWithMock(bmdh, 'logout_iscsi') self.mox.StubOutWithMock(bmdh, 'make_partitions') self.mox.StubOutWithMock(bmdh, 'is_block_device') self.mox.StubOutWithMock(bmdh, 'dd') self.mox.StubOutWithMock(bmdh, 'mkswap') self.mox.StubOutWithMock(bmdh, 'block_uuid') self.mox.StubOutWithMock(bmdh, 'switch_pxe_config') self.mox.StubOutWithMock(bmdh, 'notify') bmdh.get_dev(address, port, iqn, lun).AndReturn(dev) bmdh.get_image_mb(image_path).AndReturn(1) # < root_mb bmdh.discovery(address, port) bmdh.login_iscsi(address, port, iqn) bmdh.is_block_device(dev).AndReturn(True) bmdh.make_partitions(dev, root_mb, swap_mb) bmdh.is_block_device(root_part).AndReturn(True) bmdh.is_block_device(swap_part).AndReturn(True) bmdh.dd(image_path, root_part) bmdh.mkswap(swap_part) bmdh.block_uuid(root_part).AndReturn(root_uuid) bmdh.logout_iscsi(address, port, iqn) bmdh.switch_pxe_config(pxe_config_path, root_uuid) bmdh.notify(address, 10000) self.mox.ReplayAll() bmdh.deploy(address, port, iqn, lun, image_path, pxe_config_path, root_mb, swap_mb) self.mox.VerifyAll()