
Currently, the quota API/CLI allows users to set quotas for current tenant only. However, admin users needs the ability to set quota for other tenants. For example: $ source /opt/stack/devstack/openrc admin admin $ openstack appcontainer quota update --containers 100 <DEMO_TENANT_UUID> Depends-On: https://review.openstack.org/627075 Change-Id: Ia147575d3e8d2c6d54bddd98846f0c9e3e518ec3 Related-Bug: #1807620
92 lines
2.2 KiB
Python
92 lines
2.2 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain a
|
|
# copy of the License at
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import testtools
|
|
|
|
from zunclient.tests.unit import utils
|
|
from zunclient.v1 import quotas
|
|
|
|
|
|
DEFAULT_QUOTAS = {
|
|
'containers': '40',
|
|
'memory': '51200',
|
|
'cpu': '20',
|
|
'disk': '100'
|
|
}
|
|
|
|
MODIFIED_QUOTAS = {
|
|
'containers': '50',
|
|
'memory': '51200',
|
|
'cpu': '20',
|
|
'disk': '100'
|
|
}
|
|
|
|
MODIFIED_USAGE_QUOTAS = {
|
|
'containers': {
|
|
'limit': '50',
|
|
'in_use': '30'
|
|
},
|
|
'memory': {},
|
|
'cpu': {},
|
|
'disk': {}
|
|
}
|
|
|
|
fake_responses = {
|
|
'/v1/quotas/test_project_id':
|
|
{
|
|
'GET': (
|
|
{},
|
|
MODIFIED_QUOTAS
|
|
),
|
|
'PUT': (
|
|
{},
|
|
MODIFIED_QUOTAS
|
|
),
|
|
'DELETE': (
|
|
{},
|
|
None
|
|
)
|
|
},
|
|
'/v1/quotas/test_project_id/defaults':
|
|
{
|
|
'GET': (
|
|
{},
|
|
DEFAULT_QUOTAS
|
|
)
|
|
},
|
|
'/v1/quotas/test_project_id?usages=True':
|
|
{
|
|
'GET': (
|
|
{},
|
|
MODIFIED_USAGE_QUOTAS
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
class QuotaManagerTest(testtools.TestCase):
|
|
|
|
def setUp(self):
|
|
super(QuotaManagerTest, self).setUp()
|
|
self.api = utils.FakeAPI(fake_responses)
|
|
self.mgr = quotas.QuotaManager(self.api)
|
|
|
|
def test_quotas_get_defaults(self):
|
|
quotas = self.mgr.defaults('test_project_id')
|
|
expect = [
|
|
('GET', '/v1/quotas/test_project_id/defaults', {}, None)
|
|
]
|
|
self.assertEqual(expect, self.api.calls)
|
|
self.assertEqual(quotas.containers, DEFAULT_QUOTAS['containers'])
|
|
self.assertEqual(quotas.memory, DEFAULT_QUOTAS['memory'])
|
|
self.assertEqual(quotas.cpu, DEFAULT_QUOTAS['cpu'])
|
|
self.assertEqual(quotas.disk, DEFAULT_QUOTAS['disk'])
|