From e3ff1c3c69d76eab4115705c0c6ba71b25f8280a Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 8 Nov 2015 22:13:14 +0100 Subject: [PATCH] Port zfssa driver to Python 3 * Replace base64.encodestring() with oslo_serialization.base64.encode_as_text() to accept Unicode as input (encoded to UTF-8). On Python 3, the function decodes base64 from ASCII to get Unicode. * tests-py3.txt: add cinder.tests.unit.test_zfssa Partial-Implements: blueprint cinder-python3 Change-Id: I29a1a752d4cad5796fba1f21fe88238cb4414717 --- cinder/volume/drivers/zfssa/zfssaiscsi.py | 12 +++++------- cinder/volume/drivers/zfssa/zfssanfs.py | 4 ++-- tests-py3.txt | 1 + 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/cinder/volume/drivers/zfssa/zfssaiscsi.py b/cinder/volume/drivers/zfssa/zfssaiscsi.py index 389182b0b..ccbcb74a7 100644 --- a/cinder/volume/drivers/zfssa/zfssaiscsi.py +++ b/cinder/volume/drivers/zfssa/zfssaiscsi.py @@ -15,11 +15,11 @@ ZFS Storage Appliance Cinder Volume Driver """ import ast -import base64 import math from oslo_config import cfg from oslo_log import log +from oslo_serialization import base64 from oslo_utils import units import six @@ -135,9 +135,8 @@ class ZFSSAISCSIDriver(driver.ISCSIDriver): self.zfssa = factory_zfssa() self.tgt_zfssa = factory_zfssa() self.zfssa.set_host(lcfg.san_ip, timeout=lcfg.zfssa_rest_timeout) - auth_str = base64.encodestring('%s:%s' % - (lcfg.san_login, - lcfg.san_password))[:-1] + auth_str = '%s:%s' % (lcfg.san_login, lcfg.san_password) + auth_str = base64.encode_as_text(auth_str)[:-1] self.zfssa.login(auth_str) self.zfssa.create_project(lcfg.zfssa_pool, lcfg.zfssa_project, @@ -401,9 +400,8 @@ class ZFSSAISCSIDriver(driver.ISCSIDriver): host = lcfg.san_ip pool = lcfg.zfssa_pool project = lcfg.zfssa_project - auth_str = base64.encodestring('%s:%s' % - (lcfg.san_login, - lcfg.san_password))[:-1] + auth_str = '%s:%s' % (lcfg.san_login, lcfg.san_password) + auth_str = base64.encode_as_text(auth_str)[:-1] zfssa_tgt_group = lcfg.zfssa_target_group repl_ip = lcfg.zfssa_replication_ip diff --git a/cinder/volume/drivers/zfssa/zfssanfs.py b/cinder/volume/drivers/zfssa/zfssanfs.py index 71dcc32b6..519606d57 100644 --- a/cinder/volume/drivers/zfssa/zfssanfs.py +++ b/cinder/volume/drivers/zfssa/zfssanfs.py @@ -14,13 +14,13 @@ """ ZFS Storage Appliance NFS Cinder Volume Driver """ -import base64 import datetime as dt import errno import math from oslo_config import cfg from oslo_log import log +from oslo_serialization import base64 from oslo_utils import excutils from oslo_utils import units import six @@ -133,7 +133,7 @@ class ZFSSANFSDriver(nfs.NfsDriver): self.zfssa = factory_zfssa() self.zfssa.set_host(host, timeout=lcfg.zfssa_rest_timeout) - auth_str = base64.encodestring('%s:%s' % (user, password))[:-1] + auth_str = base64.encode_as_text('%s:%s' % (user, password))[:-1] self.zfssa.login(auth_str) self.zfssa.create_project(lcfg.zfssa_nfs_pool, lcfg.zfssa_nfs_project, diff --git a/tests-py3.txt b/tests-py3.txt index 179e93af1..11ef1e25a 100644 --- a/tests-py3.txt +++ b/tests-py3.txt @@ -121,6 +121,7 @@ cinder.tests.unit.test_volume_types cinder.tests.unit.test_volume_types_extra_specs cinder.tests.unit.test_volume_utils cinder.tests.unit.test_vzstorage +cinder.tests.unit.test_zfssa cinder.tests.unit.volume.drivers.emc.scaleio cinder.tests.unit.volume.flows.test_create_volume_flow cinder.tests.unit.windows.test_smbfs -- 2.45.2