diff options
author | Dan Smith <dansmith@redhat.com> | 2017-02-27 07:52:29 -0800 |
---|---|---|
committer | Matt Riedemann <mriedem.os@gmail.com> | 2017-02-27 12:17:03 -0500 |
commit | 2e05c82b807624b8420df4c94d68b75563b230d2 (patch) | |
tree | f80d9f3b145463428f9d330abd2039a015f241b2 | |
parent | fb1b9f224d6f05674667a7ddf7c8ba77f4f257aa (diff) | |
download | nova-2e05c82b807624b8420df4c94d68b75563b230d2.tar.gz |
Ignore deleted services in minimum version calculation13.1.3
When we go to detect the minimum version for a given service, we
should ignore any deleted services. Without this, we will return
the minimum version of all records, including those that have been
deleted with "nova service-delete". This patch filters deleted
services from the query.
Conflicts:
nova/db/sqlalchemy/api.py
nova/tests/unit/db/test_db_api.py
NOTE(mriedem): The conflicts are due to not having change
11cb56a2243faa9f2614a8f9a9a84603bc91d6b1 in Mitaka.
Closes-Bug: #1668310
Change-Id: Ic96a5eb3728f97a3c35d2c5121e6fdcd4fd1c70b
(cherry picked from commit c79770e615799cd4457ac603dcad4fb3452fe2bc)
(cherry picked from commit a1dd547d3ba7d9cf5b73da1ce9668e412501ace1)
(cherry picked from commit 1ad5c7305c37079ced24bf623810e63d5eac2661)
-rw-r--r-- | nova/db/sqlalchemy/api.py | 1 | ||||
-rw-r--r-- | nova/tests/unit/db/test_db_api.py | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 30bbb09c06..7f983d2bfa 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -512,6 +512,7 @@ def service_get_minimum_version(context, binary): min_version = context.session.query( func.min(models.Service.version)).\ filter(models.Service.binary == binary).\ + filter(models.Service.deleted == 0).\ filter(models.Service.forced_down == false()).\ scalar() return min_version diff --git a/nova/tests/unit/db/test_db_api.py b/nova/tests/unit/db/test_db_api.py index cb50fc9675..9e0eda9601 100644 --- a/nova/tests/unit/db/test_db_api.py +++ b/nova/tests/unit/db/test_db_api.py @@ -3427,6 +3427,10 @@ class ServiceTestCase(test.TestCase, ModelsObjectComparatorMixin): self._create_service({'version': 3, 'host': 'host2', 'binary': 'compute'}) + self._create_service({'version': 0, + 'host': 'host0', + 'binary': 'compute', + 'deleted': 1}) self.assertEqual(2, db.service_get_minimum_version(self.ctxt, 'compute')) |