From ea78088ecb256f6ad6b97512cc0e7fb5c0090f1d Mon Sep 17 00:00:00 2001 From: Arx Cruz Date: Fri, 8 Jul 2022 17:22:17 +0200 Subject: [PATCH] Fix cinder-backup logic When you have several controllers, if the first controller have cinder-backup service disabled, the pacemaker return it as down, and so the cinder-backup is set to False, even though it is running in a different controller. This patch do a loop to check if the cinder-backup is enabled in other controllers, if so return it as True. Change-Id: I3a16ec4f7b45267fcb8f9c6d01f28fe40faf7661 --- config_tempest/services/volume.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/config_tempest/services/volume.py b/config_tempest/services/volume.py index f429784c..451b135c 100644 --- a/config_tempest/services/volume.py +++ b/config_tempest/services/volume.py @@ -94,13 +94,16 @@ class VolumeService(VersionedService): return if is_backup: - service = is_backup['services'] - if not service or service[0]['state'] == 'down': - conf.set('volume-feature-enabled', 'backup', 'False') - else: - # post_configuration method is called with every volume (v2, - # v3) service, therefore set the value with priority so that it - # can't be overrided by this method called from other instance - # of volume service - conf.set('volume-feature-enabled', 'backup', 'True', - priority=True) + services = is_backup['services'] + backup_enabled = 'False' + for service in services: + if service['state'] == 'up': + backup_enabled = 'True' + break + + # post_configuration method is called with every volume (v2, + # v3) service, therefore set the value with priority so that it + # can't be overrided by this method called from other instance + # of volume service + conf.set('volume-feature-enabled', 'backup', backup_enabled, + priority=True)