Revert "Make host_aggregate_map dictionary case-insensitive"

This reverts commit 2caf8f65e4.

The original change caused our host state processing to be inconsistent
with our own hypervisors API. Automation tooling that used our API
to add hosts to aggregates would fail silently. We are reverting
this and will propose a check on the aggregate host add action
which will confirm the case-sensitive mapping of the host being
added, which is what we should have done in the first place.

NOTE(mriedem): Since this is a revert of a backport to queens,
we don't cherry pick the revert from rocky, but this is using
the same change ID as the revert in rocky.

Change-Id: Ibd44ba9de5680958f55f0ae6325cfc33dabadc4c
Closes-Bug: #1793747
This commit is contained in:
Matt Riedemann 2018-09-25 19:10:48 -04:00
parent cd8b45e272
commit 329780eb92
2 changed files with 3 additions and 14 deletions

View File

@ -376,7 +376,7 @@ class HostManager(object):
for agg in aggs:
self.aggs_by_id[agg.id] = agg
for host in agg.hosts:
self.host_aggregates_map[host.lower()].add(agg.id)
self.host_aggregates_map[host].add(agg.id)
def update_aggregates(self, aggregates):
"""Updates internal HostManager information about aggregates."""
@ -395,7 +395,7 @@ class HostManager(object):
for host in self.host_aggregates_map:
if (aggregate.id in self.host_aggregates_map[host]
and host not in aggregate.hosts):
self.host_aggregates_map[host.lower()].remove(aggregate.id)
self.host_aggregates_map[host].remove(aggregate.id)
def delete_aggregate(self, aggregate):
"""Deletes internal HostManager information about a specific aggregate.
@ -714,7 +714,7 @@ class HostManager(object):
def _get_aggregates_info(self, host):
return [self.aggs_by_id[agg_id] for agg_id in
self.host_aggregates_map[host.lower()]]
self.host_aggregates_map[host]]
def _get_instances_by_host(self, context, host_name):
try:

View File

@ -173,17 +173,6 @@ class HostManagerTestCase(test.NoDBTestCase):
self.assertEqual({'fake-host': set([1])},
self.host_manager.host_aggregates_map)
@mock.patch.object(host_manager.HostManager, '_init_instance_info')
@mock.patch.object(objects.AggregateList, 'get_all')
def test_init_aggregates_one_agg_with_hosts_upper_case(self, agg_get_all,
mock_init_info):
fake_agg = objects.Aggregate(id=1, hosts=['FAKE-host'])
agg_get_all.return_value = [fake_agg]
self.host_manager = host_manager.HostManager()
self.assertEqual({1: fake_agg}, self.host_manager.aggs_by_id)
self.assertEqual({'fake-host': set([1])},
self.host_manager.host_aggregates_map)
def test_update_aggregates(self):
fake_agg = objects.Aggregate(id=1, hosts=['fake-host'])
self.host_manager.update_aggregates([fake_agg])