summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2021-06-21 09:03:56 +1200
committerLingxian Kong <anlin.kong@gmail.com>2021-06-21 23:58:37 +0000
commit8849cedaf70a5d76367e8f53985f536bbbe3b58e (patch)
tree969cc1b35dd778ccc0d0ffe8e2a07c542f50e568
parent698c715af847b453c9595173c4601dd14ef57fb4 (diff)
downloadtrove-8849cedaf70a5d76367e8f53985f536bbbe3b58e.tar.gz
Fix backup using customized container image registry
Change-Id: Ib35743e1c315bb7fd4d0fbd99eaa409a4bf5c792 Story: 2008996 Task: 42658 (cherry picked from commit 6d2ab68a8aa0406ee6320e778b8e290827c9e730)
-rw-r--r--releasenotes/notes/xena-fix-backup-custom-image-registry.yaml4
-rw-r--r--trove/guestagent/datastore/mysql/service.py2
-rw-r--r--trove/guestagent/utils/docker.py5
3 files changed, 10 insertions, 1 deletions
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 00000000..d940c4e2
--- /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 810e17ae..78a371cd 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 0fdda049..0f254aa6 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,