Use correct relation key for allocation defaults
The nova-cloud-controller charm passes allocation ratio defaults
in the format '{cpu,disk,ram}_allocation_ratio' on the cloud-compute
relation.
Ensure that later OpenStack releases (>= Stein) query using this
key rather than one prefixed with 'initial_' which is used for the
target Nova Compute configuration option.
Closes-Bug: 1961065
Change-Id: I7d3e7f9f5c69f7ad06191a20bdfcfd6b5dca50d3
(cherry picked from commit 764adf7007
)
This commit is contained in:
parent
f3b587a5af
commit
6ae6d50112
|
@ -960,8 +960,13 @@ class NovaComputePlacementContext(context.OSContextGenerator):
|
|||
for rid in relation_ids('cloud-compute'):
|
||||
for unit in related_units(rid):
|
||||
rel = {'rid': rid, 'unit': unit}
|
||||
ctxt[ratio_config] = relation_get(ratio_config,
|
||||
**rel)
|
||||
# NOTE(jamespage):
|
||||
# nova-cloud-controller passes ratio values
|
||||
# without the initial_ prefix.
|
||||
ctxt[ratio_config] = relation_get(
|
||||
ratio_config.lstrip("initial_"),
|
||||
**rel
|
||||
)
|
||||
else:
|
||||
for ratio_config in ['cpu_allocation_ratio',
|
||||
'ram_allocation_ratio',
|
||||
|
|
|
@ -1259,3 +1259,47 @@ class NovaComputePlacementContextTest(CharmTestCase):
|
|||
'initial_cpu_allocation_ratio': None,
|
||||
'initial_ram_allocation_ratio': None,
|
||||
'initial_disk_allocation_ratio': None}, ctxt())
|
||||
|
||||
def test_allocation_ratio_defaults_pre_stein(self):
|
||||
_allocation_ratios = {
|
||||
'cpu_allocation_ratio': 8,
|
||||
'ram_allocation_ratio': 24,
|
||||
'disk_allocation_ratio': 32,
|
||||
}
|
||||
self.os_release.return_value = 'queens'
|
||||
self.relation_ids.return_value = ['cloud-compute:0']
|
||||
self.related_units.return_value = ['nova-cloud-controller/0']
|
||||
self.relation_get.side_effect = (
|
||||
lambda k, **kwargs: _allocation_ratios.get(k)
|
||||
)
|
||||
ctxt = context.NovaComputePlacementContext()
|
||||
|
||||
self.assertEqual(
|
||||
{'cpu_allocation_ratio': 8,
|
||||
'ram_allocation_ratio': 24,
|
||||
'disk_allocation_ratio': 32,
|
||||
'initial_cpu_allocation_ratio': None,
|
||||
'initial_ram_allocation_ratio': None,
|
||||
'initial_disk_allocation_ratio': None}, ctxt())
|
||||
|
||||
def test_allocation_ratio_defaults(self):
|
||||
_allocation_ratios = {
|
||||
'cpu_allocation_ratio': 8,
|
||||
'ram_allocation_ratio': 24,
|
||||
'disk_allocation_ratio': 32,
|
||||
}
|
||||
self.os_release.return_value = 'ussuri'
|
||||
self.relation_ids.return_value = ['cloud-compute:0']
|
||||
self.related_units.return_value = ['nova-cloud-controller/0']
|
||||
self.relation_get.side_effect = (
|
||||
lambda k, **kwargs: _allocation_ratios.get(k)
|
||||
)
|
||||
ctxt = context.NovaComputePlacementContext()
|
||||
|
||||
self.assertEqual(
|
||||
{'cpu_allocation_ratio': None,
|
||||
'ram_allocation_ratio': None,
|
||||
'disk_allocation_ratio': None,
|
||||
'initial_cpu_allocation_ratio': 8,
|
||||
'initial_ram_allocation_ratio': 24,
|
||||
'initial_disk_allocation_ratio': 32}, ctxt())
|
||||
|
|
Loading…
Reference in New Issue