From c5cae2f63448c145c80b7f82ddccc7a9e672d534 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Tue, 25 Sep 2018 19:22:22 -0400 Subject: [PATCH] Revert "Make host_aggregate_map dictionary case-insensitive" This reverts commit 8f5fbd83de3759407b8f928159067211af156d60. 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 pike, we don't cherry pick the revert from queens, but this is using the same change ID as the revert in queens. Change-Id: Ibd44ba9de5680958f55f0ae6325cfc33dabadc4c Closes-Bug: #1793747 --- nova/scheduler/host_manager.py | 6 +++--- nova/tests/unit/scheduler/test_host_manager.py | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/nova/scheduler/host_manager.py b/nova/scheduler/host_manager.py index 4feffe4530b8..6fcd979a5fb3 100644 --- a/nova/scheduler/host_manager.py +++ b/nova/scheduler/host_manager.py @@ -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: diff --git a/nova/tests/unit/scheduler/test_host_manager.py b/nova/tests/unit/scheduler/test_host_manager.py index c147780ff12f..42a263c3234f 100644 --- a/nova/tests/unit/scheduler/test_host_manager.py +++ b/nova/tests/unit/scheduler/test_host_manager.py @@ -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])