From 6d2ab68a8aa0406ee6320e778b8e290827c9e730 Mon Sep 17 00:00:00 2001 From: Lingxian Kong Date: Mon, 21 Jun 2021 09:03:56 +1200 Subject: [PATCH] Fix backup using customized container image registry Change-Id: Ib35743e1c315bb7fd4d0fbd99eaa409a4bf5c792 Story: 2008996 Task: 42658 --- .../notes/xena-fix-backup-custom-image-registry.yaml | 4 ++++ trove/guestagent/datastore/mysql/service.py | 2 +- trove/guestagent/utils/docker.py | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/xena-fix-backup-custom-image-registry.yaml diff --git a/releasenotes/notes/xena-fix-backup-custom-image-registry.yaml b/releasenotes/notes/xena-fix-backup-custom-image-registry.yaml new file mode 100644 index 0000000000..d940c4e286 --- /dev/null +++ b/releasenotes/notes/xena-fix-backup-custom-image-registry.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - Fixed backup creation failed issue when using custom container image + registry. diff --git a/trove/guestagent/datastore/mysql/service.py b/trove/guestagent/datastore/mysql/service.py index 810e17ae81..78a371cd72 100644 --- a/trove/guestagent/datastore/mysql/service.py +++ b/trove/guestagent/datastore/mysql/service.py @@ -67,7 +67,7 @@ class MySqlApp(service.BaseMySqlApp): to openstacktrove/db-backup-mysql5.7:1.0.0 """ image = cfg.get_configuration_property('backup_docker_image') - name, tag = image.split(':', 1) + name, tag = image.rsplit(':', 1) # Get minor version cur_ver = semantic_version.Version.coerce(CONF.datastore_version) diff --git a/trove/guestagent/utils/docker.py b/trove/guestagent/utils/docker.py index 0fdda04980..0f254aa612 100644 --- a/trove/guestagent/utils/docker.py +++ b/trove/guestagent/utils/docker.py @@ -91,11 +91,16 @@ def run_container(client, image, name, network_mode="host", volumes={}, """ try: container = client.containers.get(name) + LOG.debug(f'Removing existing container {name}') container.remove(force=True) except docker.errors.NotFound: pass try: + LOG.info( + f'Running container {name}, image: {image}, ' + f'network_mode: {network_mode}, volumes: {volumes}, ' + f'command: {command}') output = client.containers.run( image, name=name,