CephRGWTest: Deduplicate code to create multi-site relation
Signed-off-by: Ionut Balutoiu <ibalutoiu@cloudbasesolutions.com>
This commit is contained in:
@@ -878,6 +878,33 @@ class CephRGWTest(test_utils.BaseCharmTest):
|
||||
}
|
||||
)
|
||||
|
||||
def configure_rgw_multisite_relation(self):
|
||||
"""Configure multi-site relation between primary and secondary apps."""
|
||||
multisite_relation = zaza_model.get_relation_id(
|
||||
self.primary_rgw_app, self.secondary_rgw_app,
|
||||
remote_interface_name='secondary'
|
||||
)
|
||||
if multisite_relation is None:
|
||||
logging.info('Configuring Multisite')
|
||||
self.configure_rgw_apps_for_multisite()
|
||||
zaza_model.add_relation(
|
||||
self.primary_rgw_app,
|
||||
self.primary_rgw_app + ":primary",
|
||||
self.secondary_rgw_app + ":secondary"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "waiting"
|
||||
)
|
||||
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "active"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.primary_rgw_unit, "active"
|
||||
)
|
||||
zaza_model.wait_for_unit_idle(self.secondary_rgw_unit)
|
||||
zaza_model.wait_for_unit_idle(self.primary_rgw_unit)
|
||||
|
||||
def clean_rgw_multisite_config(self, app_name):
|
||||
"""Clear Multisite Juju config values to default.
|
||||
|
||||
@@ -1102,29 +1129,7 @@ class CephRGWTest(test_utils.BaseCharmTest):
|
||||
zaza_model.wait_for_unit_idle(self.primary_rgw_unit)
|
||||
|
||||
# Setup multisite relation.
|
||||
multisite_relation = zaza_model.get_relation_id(
|
||||
self.primary_rgw_app, self.secondary_rgw_app,
|
||||
remote_interface_name='secondary'
|
||||
)
|
||||
if multisite_relation is None:
|
||||
logging.info('Configuring Multisite')
|
||||
self.configure_rgw_apps_for_multisite()
|
||||
zaza_model.add_relation(
|
||||
self.primary_rgw_app,
|
||||
self.primary_rgw_app + ":primary",
|
||||
self.secondary_rgw_app + ":secondary"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "waiting"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.primary_rgw_unit, "active"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "active"
|
||||
)
|
||||
zaza_model.wait_for_unit_idle(self.secondary_rgw_unit)
|
||||
zaza_model.wait_for_unit_idle(self.primary_rgw_unit)
|
||||
self.configure_rgw_multisite_relation()
|
||||
|
||||
logging.info('Waiting for Data and Metadata to Synchronize')
|
||||
# NOTE: We only check the secondary zone, because the sync policy flow
|
||||
@@ -1317,24 +1322,8 @@ class CephRGWTest(test_utils.BaseCharmTest):
|
||||
).put(Body=obj_data)
|
||||
|
||||
# If Primary/Secondary relation does not exist, add it.
|
||||
if zaza_model.get_relation_id(
|
||||
self.primary_rgw_app, self.secondary_rgw_app,
|
||||
remote_interface_name='secondary'
|
||||
) is None:
|
||||
logging.info('Configuring Multisite')
|
||||
self.configure_rgw_apps_for_multisite()
|
||||
zaza_model.add_relation(
|
||||
self.primary_rgw_app,
|
||||
self.primary_rgw_app + ":primary",
|
||||
self.secondary_rgw_app + ":secondary"
|
||||
)
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "waiting"
|
||||
)
|
||||
self.configure_rgw_multisite_relation()
|
||||
|
||||
zaza_model.block_until_unit_wl_status(
|
||||
self.secondary_rgw_unit, "active"
|
||||
)
|
||||
logging.info('Waiting for Data and Metadata to Synchronize')
|
||||
self.wait_for_status(self.secondary_rgw_app, is_primary=False)
|
||||
self.wait_for_status(self.primary_rgw_app, is_primary=True)
|
||||
|
||||
Reference in New Issue
Block a user