Merge "Expand member_of functional test cases"

This commit is contained in:
Zuul 2018-05-17 00:56:00 +00:00 committed by Gerrit Code Review
commit 4b4e005c63
1 changed files with 33 additions and 7 deletions

View File

@ -1564,14 +1564,16 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
def test_sharing_providers_member_of(self):
# Covering the following setup:
#
# CN1 (VCPU) CN2 (VCPU)
# / agg1 \ agg2 / agg2 \ agg3
# SS1 (DISK_GB) SS2 (DISK_GB) SS3 (DISK_GB)
# CN1 (VCPU, DISK_GB) CN2 (VCPU, DISK_GB)
# / agg1 \ agg2 / agg2 \ agg3
# SS1 (DISK_GB) SS2 (DISK_GB) SS3 (DISK_GB)
cn1 = self._create_provider('cn1', uuids.agg1, uuids.agg2)
tb.add_inventory(cn1, fields.ResourceClass.VCPU, 24)
tb.add_inventory(cn1, fields.ResourceClass.DISK_GB, 1600)
cn2 = self._create_provider('cn2', uuids.agg2, uuids.agg3)
tb.add_inventory(cn2, fields.ResourceClass.VCPU, 24)
tb.add_inventory(cn2, fields.ResourceClass.DISK_GB, 1600)
# ss1 is connected to cn1
ss1 = self._create_provider('ss1', uuids.agg1)
@ -1601,6 +1603,8 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
)
expected = [
[('cn1', fields.ResourceClass.VCPU, 2),
('cn1', fields.ResourceClass.DISK_GB, 1500)],
[('cn1', fields.ResourceClass.VCPU, 2),
('ss1', fields.ResourceClass.DISK_GB, 1500)],
]
@ -1609,6 +1613,7 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
expected = {
'cn1': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
'ss1': set([
(fields.ResourceClass.DISK_GB, 1600, 0),
@ -1629,8 +1634,12 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
)
expected = [
[('cn1', fields.ResourceClass.VCPU, 2),
('cn1', fields.ResourceClass.DISK_GB, 1500)],
[('cn1', fields.ResourceClass.VCPU, 2),
('ss2', fields.ResourceClass.DISK_GB, 1500)],
[('cn2', fields.ResourceClass.VCPU, 2),
('cn2', fields.ResourceClass.DISK_GB, 1500)],
[('cn2', fields.ResourceClass.VCPU, 2),
('ss2', fields.ResourceClass.DISK_GB, 1500)],
]
@ -1639,9 +1648,11 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
expected = {
'cn1': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
'cn2': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
'ss2': set([
(fields.ResourceClass.DISK_GB, 1600, 0),
@ -1650,7 +1661,8 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
self._validate_provider_summary_resources(expected, alloc_cands)
# Let's move to validate multiple member_of scenario
# The request from agg1 *AND* agg2 would provide no candidate
# The request from agg1 *AND* agg2 would provide only
# resources from cn1 with its local DISK
alloc_cands = self._get_allocation_candidates(
{'': placement_lib.RequestGroup(
use_same_provider=False,
@ -1662,13 +1674,21 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
)}
)
expected = []
expected = [
[('cn1', fields.ResourceClass.VCPU, 2),
('cn1', fields.ResourceClass.DISK_GB, 1500)],
]
self._validate_allocation_requests(expected, alloc_cands)
expected = {}
expected = {
'cn1': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
}
self._validate_provider_summary_resources(expected, alloc_cands)
# The request from agg1 *OR* agg2 would provide three candidates
# The request from agg1 *OR* agg2 would provide five candidates
alloc_cands = self._get_allocation_candidates(
{'': placement_lib.RequestGroup(
use_same_provider=False,
@ -1681,10 +1701,14 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
)
expected = [
[('cn1', fields.ResourceClass.VCPU, 2),
('cn1', fields.ResourceClass.DISK_GB, 1500)],
[('cn1', fields.ResourceClass.VCPU, 2),
('ss1', fields.ResourceClass.DISK_GB, 1500)],
[('cn1', fields.ResourceClass.VCPU, 2),
('ss2', fields.ResourceClass.DISK_GB, 1500)],
[('cn2', fields.ResourceClass.VCPU, 2),
('cn2', fields.ResourceClass.DISK_GB, 1500)],
[('cn2', fields.ResourceClass.VCPU, 2),
('ss2', fields.ResourceClass.DISK_GB, 1500)],
]
@ -1693,9 +1717,11 @@ class AllocationCandidatesTestCase(tb.PlacementDbBaseTestCase):
expected = {
'cn1': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
'cn2': set([
(fields.ResourceClass.VCPU, 24, 0),
(fields.ResourceClass.DISK_GB, 1600, 0),
]),
'ss1': set([
(fields.ResourceClass.DISK_GB, 1600, 0),