Ignore deleted services in minimum version calculation
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 change11cb56a224
in Mitaka. Closes-Bug: #1668310 Change-Id: Ic96a5eb3728f97a3c35d2c5121e6fdcd4fd1c70b (cherry picked from commitc79770e615
) (cherry picked from commita1dd547d3b
) (cherry picked from commit1ad5c7305c
)
This commit is contained in:
parent
fb1b9f224d
commit
2e05c82b80
@ -512,6 +512,7 @@ def service_get_minimum_version(context, binary):
|
|||||||
min_version = context.session.query(
|
min_version = context.session.query(
|
||||||
func.min(models.Service.version)).\
|
func.min(models.Service.version)).\
|
||||||
filter(models.Service.binary == binary).\
|
filter(models.Service.binary == binary).\
|
||||||
|
filter(models.Service.deleted == 0).\
|
||||||
filter(models.Service.forced_down == false()).\
|
filter(models.Service.forced_down == false()).\
|
||||||
scalar()
|
scalar()
|
||||||
return min_version
|
return min_version
|
||||||
|
@ -3427,6 +3427,10 @@ class ServiceTestCase(test.TestCase, ModelsObjectComparatorMixin):
|
|||||||
self._create_service({'version': 3,
|
self._create_service({'version': 3,
|
||||||
'host': 'host2',
|
'host': 'host2',
|
||||||
'binary': 'compute'})
|
'binary': 'compute'})
|
||||||
|
self._create_service({'version': 0,
|
||||||
|
'host': 'host0',
|
||||||
|
'binary': 'compute',
|
||||||
|
'deleted': 1})
|
||||||
self.assertEqual(2, db.service_get_minimum_version(self.ctxt,
|
self.assertEqual(2, db.service_get_minimum_version(self.ctxt,
|
||||||
'compute'))
|
'compute'))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user