From 3324f0af0f867abf8435b4705500dc5f0c74932d Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Sun, 17 Nov 2019 12:25:33 +0100
Subject: [PATCH] add ganeti upstream patch for ceph mimic compat

---
 patches/ganeti/fix_rbd_showmapped_mimic.patch | 33 +++++++++++++++++++
 scripts/ganeti.sh                             |  1 +
 2 files changed, 34 insertions(+)
 create mode 100644 patches/ganeti/fix_rbd_showmapped_mimic.patch

diff --git a/patches/ganeti/fix_rbd_showmapped_mimic.patch b/patches/ganeti/fix_rbd_showmapped_mimic.patch
new file mode 100644
index 0000000..c57b46b
--- /dev/null
+++ b/patches/ganeti/fix_rbd_showmapped_mimic.patch
@@ -0,0 +1,33 @@
+From fa9a8fc141334b176380370b9622a28ad4a066fb Mon Sep 17 00:00:00 2001
+From: Ansgar Jazdzewski <ajaz@spreadshirt.net>
+Date: Tue, 19 Feb 2019 10:31:07 +0100
+Subject: [PATCH] fix 'rbd showmapped' for ceph mimic
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The json ouput changed from list to dict
+* http://docs.ceph.com/docs/master/releases/mimic/ - The rbd CLI’s
+showmapped JSON and XML output has changed.)
+---
+ lib/storage/bdev.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/storage/bdev.py b/lib/storage/bdev.py
+index c7d5f3b6d..7aa09cee6 100644
+--- a/lib/storage/bdev.py
++++ b/lib/storage/bdev.py
+@@ -1064,8 +1064,12 @@ def _ParseRbdShowmappedJson(output, volume_pool, volume_name):
+     except ValueError, err:
+       base.ThrowError("Unable to parse JSON data: %s" % err)
+ 
++    # since ceph mimic the json output changed from dict to list
++    if isinstance(devices, dict):
++      devices = devices.values()
++
+     rbd_dev = None
+-    for d in devices.values(): # pylint: disable=E1103
++    for d in devices:
+       try:
+         name = d["name"]
+       except KeyError:
diff --git a/scripts/ganeti.sh b/scripts/ganeti.sh
index 8c8f5c1..acc14be 100755
--- a/scripts/ganeti.sh
+++ b/scripts/ganeti.sh
@@ -8,6 +8,7 @@ import_patches ganeti
 dch_custom "Remove blockdev storage from the movable and mirrored devices lists."
 dch_custom "Increase maximum disk count per instance."
 dch_custom "Add support for disk cache usage with rbd devices."
+dch_custom "Add upstream patch for Ceph mimic compatibility."
 
 install_build_deps
 build
-- 
GitLab