allowed_cores = _get_request_allotment(requested_cores, used_cores,
quota['cores'])
allowed_ram = _get_request_allotment(requested_ram, used_ram, quota['ram'])
- allowed_instances = min(allowed_instances,
- allowed_cores // instance_type['vcpus'],
- allowed_ram // instance_type['memory_mb'])
+ if instance_type['vcpus']:
+ allowed_instances = min(allowed_instances,
+ allowed_cores // instance_type['vcpus'])
+ if instance_type['memory_mb']:
+ allowed_instances = min(allowed_instances,
+ allowed_ram // instance_type['memory_mb'])
+
return min(requested_instances, allowed_instances)
dict(memory_mb=4096, vcpus=2, root_gb=40, flavorid=3),
'm1.large': dict(memory_mb=8192, vcpus=4, root_gb=80, flavorid=4),
'm1.xlarge':
- dict(memory_mb=16384, vcpus=8, root_gb=160, flavorid=5)}
+ dict(memory_mb=16384, vcpus=8, root_gb=160, flavorid=5),
+ 'm1.nocpu': dict(memory_mb=512, vcpus=0, root_gb=0, flavorid=6),
+ 'm1.nomem': dict(memory_mb=0, vcpus=1, root_gb=0, flavorid=7)}
return instance_types[name]
+ def test_quota_no_mem_no_cpu(self):
+ num_instances = quota.allowed_instances(self.context, 100,
+ self._get_instance_type('m1.nocpu'))
+ self.assertEqual(num_instances, 2)
+ num_instances = quota.allowed_instances(self.context, 100,
+ self._get_instance_type('m1.nomem'))
+ self.assertEqual(num_instances, 2)
+
def test_quota_overrides(self):
"""Make sure overriding a projects quotas works"""
num_instances = quota.allowed_instances(self.context, 100,