Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 def test_defaults(self):
     code = 'EBADMSG'
     message = 'NexentaError'
     result = jsonrpc.NefException()
     self.assertEqual(code, result.code)
     self.assertIn(message, result.msg)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)