Fix python3 compatibility of rbd get_fsid
In python3 conn.get_fsid() is represented as binary.
Because of this, direct_url is corrupted in DB.
This patch is fixing this. More informations in
closing bug.
Closes-Bug: #1816721
Change-Id: I6a89042fae63bf5c9096a6bee6774aebf3f5864b
(cherry picked from commit 9c73370358
)
This commit is contained in:
parent
840bbc424e
commit
7880a5bfa7
|
@ -24,6 +24,7 @@ import logging
|
|||
import math
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_utils import encodeutils
|
||||
from oslo_utils import units
|
||||
from six.moves import urllib
|
||||
|
||||
|
@ -469,7 +470,18 @@ class Store(driver.Store):
|
|||
rados_id=self.user) as conn:
|
||||
fsid = None
|
||||
if hasattr(conn, 'get_fsid'):
|
||||
fsid = conn.get_fsid()
|
||||
# Librados's get_fsid is represented as binary
|
||||
# in py3 instead of str as it is in py2.
|
||||
# This is causing problems with ceph.
|
||||
# Decode binary to str fixes these issues.
|
||||
# Fix with encodeutils.safe_decode CAN BE REMOVED
|
||||
# after librados's fix will be stable.
|
||||
#
|
||||
# More informations:
|
||||
# https://bugs.launchpad.net/glance-store/+bug/1816721
|
||||
# https://bugs.launchpad.net/cinder/+bug/1816468
|
||||
# https://tracker.ceph.com/issues/38381
|
||||
fsid = encodeutils.safe_decode(conn.get_fsid())
|
||||
with conn.open_ioctx(self.pool) as ioctx:
|
||||
order = int(math.log(self.WRITE_CHUNKSIZE, 2))
|
||||
LOG.debug('creating image %s with order %d and size %d',
|
||||
|
|
Loading…
Reference in New Issue