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(
|
||||
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
|
||||
|
|
|
@ -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'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue