Ejemplo n.º 1
0
    def test_rename_existing_name(self, mock_get, mock_update):
        id = UPDATE_NAME_AFTER_DELETE_TYPE
        name = "vol_type_%s" % id
        updated_name = "%s_%s" % (name, id)
        desc = "vol_type_desc_%s" % id
        mock_update.side_effect = exception.VolumeTypeExists(id=id, name=name)
        mock_get.return_value = return_volume_types_get_volume_type_updated(
            UPDATE_NAME_AFTER_DELETE_TYPE)
        # first attempt fail
        body = {"volume_type": {"name": name}}
        req = fakes.HTTPRequest.blank(
            '/v2/%s/types/%s' %
            (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE))
        req.method = 'PUT'

        self.assertEqual(0, len(self.notifier.notifications))
        self.assertRaises(webob.exc.HTTPConflict,
                          self.controller._update,
                          req,
                          UPDATE_NAME_AFTER_DELETE_TYPE,
                          body=body)

        self.assertEqual(1, len(self.notifier.notifications))

        # delete
        self.notifier.reset()
        self.mock_object(volume_types, 'destroy', return_volume_types_destroy)
        req = fakes.HTTPRequest.blank(
            '/v2/%s/types/%s' %
            (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE))
        self.assertEqual(0, len(self.notifier.notifications))
        self.controller._delete(req, UPDATE_NAME_AFTER_DELETE_TYPE)
        self.assertEqual(1, len(self.notifier.notifications))

        # update again
        mock_update.side_effect = mock.MagicMock()
        body = {"volume_type": {"name": updated_name}}
        req = fakes.HTTPRequest.blank(
            '/v2/%s/types/%s' %
            (fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE))
        req.method = 'PUT'

        self.notifier.reset()
        self.assertEqual(0, len(self.notifier.notifications))
        res_dict = self.controller._update(req,
                                           UPDATE_NAME_AFTER_DELETE_TYPE,
                                           body=body)
        self._check_test_results(res_dict, {
            'expected_name': name,
            'expected_desc': desc
        })
        self.assertEqual(1, len(self.notifier.notifications))
Ejemplo n.º 2
0
    def test_rename_existing_name(self, mock_get, mock_update):
        mock_update.side_effect = exception.VolumeTypeExists(
            id="666", name="vol_type_666")
        mock_get.return_value = return_volume_types_get_volume_type_updated(
            '666')
        # first attempt fail
        body = {"volume_type": {"name": "vol_type_666"}}
        req = fakes.HTTPRequest.blank('/v2/fake/types/666')
        req.method = 'PUT'

        self.assertEqual(0, len(self.notifier.notifications))
        self.assertRaises(webob.exc.HTTPConflict,
                          self.controller._update, req, '666', body)
        self.assertEqual(1, len(self.notifier.notifications))

        # delete
        self.notifier.reset()
        self.stubs.Set(volume_types, 'destroy',
                       return_volume_types_destroy)

        req = fakes.HTTPRequest.blank('/v2/fake/types/1')
        self.assertEqual(0, len(self.notifier.notifications))
        self.controller._delete(req, '1')
        self.assertEqual(1, len(self.notifier.notifications))

        # update again
        mock_update.side_effect = mock.MagicMock()
        body = {"volume_type": {"name": "vol_type_666_666"}}
        req = fakes.HTTPRequest.blank('/v2/fake/types/666')
        req.method = 'PUT'

        self.notifier.reset()
        self.assertEqual(0, len(self.notifier.notifications))
        res_dict = self.controller._update(req, '666', body)
        self._check_test_results(res_dict,
                                 {'expected_name': 'vol_type_666',
                                  'expected_desc': 'vol_type_desc_666'})
        self.assertEqual(1, len(self.notifier.notifications))
Ejemplo n.º 3
0
def return_volume_types_create_duplicate_type(context,
                                              name,
                                              specs,
                                              is_public,
                                              description):
    raise exception.VolumeTypeExists(id=name)
Ejemplo n.º 4
0
def return_volume_types_update_exist(context, id, name, description):
    raise exception.VolumeTypeExists(id=id, name=name)