Beispiel #1
0
 def setUp(self):
     super(QuotaControllerTest, self).setUp()
     context = mock()
     context.is_admin = True
     req = mock()
     req.environ = mock()
     when(req.environ).get(any()).thenReturn(context)
     self.req = req
     self.controller = QuotaController()
Beispiel #2
0
class QuotaControllerTest(testtools.TestCase):

    def setUp(self):
        super(QuotaControllerTest, self).setUp()
        context = mock()
        context.is_admin = True
        req = mock()
        req.environ = mock()
        when(req.environ).get(any()).thenReturn(context)
        self.req = req
        self.controller = QuotaController()

    def tearDown(self):
        super(QuotaControllerTest, self).tearDown()
        unstub()

    def test_update_unknown_resource(self):
        body = {'quotas': {'unknown_resource': 5}}
        self.assertRaises(exception.QuotaResourceUnknown,
                          self.controller.update, self.req, body,
                          FAKE_TENANT1, FAKE_TENANT2)

    def test_update_resource_no_value(self):
        quota = mock(Quota)
        when(DatabaseModelBase).find_by(tenant_id=FAKE_TENANT2,
                                        resource='instances').thenReturn(quota)
        body = {'quotas': {'instances': None}}
        result = self.controller.update(self.req, body, FAKE_TENANT1,
                                        FAKE_TENANT2)
        verify(quota, never).save()
        self.assertEquals(200, result.status)

    def test_update_resource_(self):
        instance_quota = mock(Quota)
        when(DatabaseModelBase).find_by(
            tenant_id=FAKE_TENANT2,
            resource='instances').thenReturn(instance_quota)
        volume_quota = mock(Quota)
        when(DatabaseModelBase).find_by(
            tenant_id=FAKE_TENANT2,
            resource='volumes').thenReturn(volume_quota)
        body = {'quotas': {'instances': None, 'volumes': 10}}
        result = self.controller.update(self.req, body, FAKE_TENANT1,
                                        FAKE_TENANT2)
        verify(instance_quota, never).save()
        self.assertFalse('instances' in result._data)
        verify(volume_quota, times=1).save()
        self.assertEquals(200, result.status)
        self.assertEquals(10, result._data['quotas']['volumes'])
Beispiel #3
0
 def setUp(self):
     super(QuotaControllerTest, self).setUp()
     context = mock()
     context.is_admin = True
     req = mock()
     req.environ = mock()
     when(req.environ).get(any()).thenReturn(context)
     self.req = req
     self.controller = QuotaController()
Beispiel #4
0
    def get_resources(self):
        resources = []
        serializer = wsgi.ReddwarfResponseSerializer(
            body_serializers={
                'application/xml': wsgi.ReddwarfXMLDictSerializer()
            })
        instances = extensions.ResourceExtension(
            '{tenant_id}/mgmt/instances',
            MgmtInstanceController(),
            deserializer=wsgi.ReddwarfRequestDeserializer(),
            serializer=serializer,
            member_actions={
                'root': 'GET',
                'diagnostics': 'GET',
                'hwinfo': 'GET',
                'action': 'POST'
            })
        resources.append(instances)

        hosts = extensions.ResourceExtension(
            '{tenant_id}/mgmt/hosts',
            HostController(),
            deserializer=wsgi.RequestDeserializer(),
            serializer=serializer,
            member_actions={})
        resources.append(hosts)

        quota = extensions.ResourceExtension(
            '{tenant_id}/mgmt/quotas',
            QuotaController(),
            deserializer=wsgi.RequestDeserializer(),
            serializer=serializer,
            member_actions={})
        resources.append(quota)

        storage = extensions.ResourceExtension(
            '{tenant_id}/mgmt/storage',
            StorageController(),
            deserializer=wsgi.RequestDeserializer(),
            serializer=serializer,
            member_actions={})
        resources.append(storage)

        host_instances = extensions.ResourceExtension(
            'instances',
            hostservice.HostInstanceController(),
            parent={
                'member_name': 'host',
                'collection_name': '{tenant_id}/mgmt/hosts'
            },
            deserializer=wsgi.RequestDeserializer(),
            serializer=serializer,
            collection_actions={'action': 'POST'})
        resources.append(host_instances)

        return resources