def test_create_cloned_volume(self, create_snapshot, create_volume, delete_snapshot): volume = fake_volume(self.ctxt) clone_spec = {'id': fake.VOLUME2_ID} clone = fake_volume(self.ctxt, **clone_spec) create_snapshot.return_value = {} create_volume.return_value = {} delete_snapshot.return_value = {} self.assertIsNone(self.drv.create_cloned_volume(clone, volume)) snapshot = { 'name': self.drv.origin_snapshot_template % clone['id'], 'volume_id': volume['id'], 'volume_name': volume['name'], 'volume_size': volume['size'] } create_snapshot.assert_called_with(snapshot) create_volume.assert_called_with(clone, snapshot) create_volume.side_effect = jsonrpc.NefException({ 'message': 'Failed to create volume', 'code': 'EBUSY' }) self.assertRaises(jsonrpc.NefException, self.drv.create_cloned_volume, clone, volume) create_snapshot.side_effect = jsonrpc.NefException({ 'message': 'Failed to open dataset', 'code': 'ENOENT' }) self.assertRaises(jsonrpc.NefException, self.drv.create_cloned_volume, clone, volume)
def test_check_for_setup_error(self, volume_group_get, volume_group_create, service_get): path = self.drv.root_path bs = self.cfg.nexenta_ns5_blocksize * units.Ki name = 'iscsit' state = 'online' volume_group_get.return_value = {'path': path} service_get.return_value = {'name': name, 'state': state} self.assertIsNone(self.drv.check_for_setup_error()) volume_group_get.assert_called_with(path) service_get.assert_called_with(name) volume_group_get.side_effect = jsonrpc.NefException({ 'message': 'Failed to open dataset', 'code': 'ENOENT' }) volume_group_create.return_value = {} self.assertIsNone(self.drv.check_for_setup_error()) volume_group_get.assert_called_with(path) payload = {'path': path, 'volumeBlockSize': bs} volume_group_create.assert_called_with(payload) service_get.assert_called_with(name) state = 'offline' volume_group_get.return_value = {'path': path} service_get.return_value = {'name': name, 'state': state} self.assertRaises(jsonrpc.NefException, self.drv.check_for_setup_error)
def test_defaults(self): code = 'EBADMSG' message = 'NexentaError' result = jsonrpc.NefException() self.assertEqual(code, result.code) self.assertIn(message, result.msg)
def test_dict_kwargs(self): code = 'EINVAL' message = 'test message 6' result = jsonrpc.NefException({'code': code}, message=message) self.assertEqual(code, result.code) self.assertIn(message, result.msg)
def test_kwargs(self): code = 'EPERM' message = 'test message 5' result = jsonrpc.NefException(code=code, message=message) self.assertEqual(code, result.code) self.assertIn(message, result.msg)