]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Port key manager to Python 3
authorVictor Stinner <vstinner@redhat.com>
Tue, 24 Nov 2015 16:42:07 +0000 (17:42 +0100)
committerVictor Stinner <vstinner@redhat.com>
Tue, 24 Nov 2015 19:58:32 +0000 (20:58 +0100)
* Replace text.decode('hex') with binascii.unhexlify(text)
* test_barbican: base64 string is a bytes string
* tests-py3.txt: add keymgr tests

Partial-Implements: blueprint cinder-python3
Change-Id: Icc19fa354603857b259458b858e27c5bdd600360

cinder/keymgr/conf_key_mgr.py
cinder/tests/unit/keymgr/test_barbican.py
cinder/tests/unit/keymgr/test_conf_key_mgr.py
cinder/tests/unit/keymgr/test_key.py
tests-py3.txt

index 6ac307d4b2f50d7738a93088453bf85d85bf0a3b..aeea6767df59ef3fed5edc2568143f1b53036352 100644 (file)
@@ -32,6 +32,7 @@ encryption key so *any* volume can be decrypted once the fixed key is known.
 """
 
 import array
+import binascii
 
 from oslo_config import cfg
 from oslo_log import log as logging
@@ -70,8 +71,8 @@ class ConfKeyManager(key_mgr.KeyManager):
 
     def _generate_key(self, **kwargs):
         _hex = self._generate_hex_key(**kwargs)
-        return key.SymmetricKey('AES',
-                                array.array('B', _hex.decode('hex')).tolist())
+        key_list = array.array('B', binascii.unhexlify(_hex)).tolist()
+        return key.SymmetricKey('AES', key_list)
 
     def _generate_hex_key(self, **kwargs):
         if CONF.keymgr.fixed_key is None:
index 44d20fa9421b54ac5482a60451b6e639a06742bc..694bee6195bc6ae02b78034e09c0690bfc403d1b 100644 (file)
@@ -205,7 +205,7 @@ class BarbicanKeyManagerTestCase(test_key_mgr.KeyManagerTestCase):
         returned_uuid = self.key_mgr.store_key(self.ctxt, _key, bit_length=32)
 
         self.create.assert_called_once_with('Cinder Volume Key',
-                                            'AQKgsw==',
+                                            b'AQKgsw==',
                                             'application/octet-stream',
                                             'base64',
                                             'AES', 32, 'CBC',
index 756cc4c20a04e0a2d1b872e595af806dabb925a8..06e3b1f4f92b6a8caa6d65aba6fe28de6441b842 100644 (file)
@@ -18,6 +18,7 @@ Test cases for the conf key manager.
 """
 
 import array
+import binascii
 
 from oslo_config import cfg
 
@@ -48,7 +49,7 @@ class ConfKeyManagerTestCase(test_key_mgr.KeyManagerTestCase):
         self.ctxt = context.RequestContext('fake', 'fake')
 
         self.key_id = '00000000-0000-0000-0000-000000000000'
-        encoded = array.array('B', self._hex_key.decode('hex')).tolist()
+        encoded = array.array('B', binascii.unhexlify(self._hex_key)).tolist()
         self.key = key.SymmetricKey('AES', encoded)
 
     def test___init__(self):
index 139d42e5547a2cf011db151fc02ffff548f6897e..3430f05a2e65db78170a860f7b9ac968d9ae92f7 100644 (file)
@@ -17,8 +17,6 @@
 Test cases for the key classes.
 """
 
-import array
-
 from cinder.keymgr import key
 from cinder import test
 
@@ -41,7 +39,7 @@ class SymmetricKeyTestCase(KeyTestCase):
 
     def setUp(self):
         self.algorithm = 'AES'
-        self.encoded = array.array('B', ('0' * 64).decode('hex')).tolist()
+        self.encoded = [0] * 32
 
         super(SymmetricKeyTestCase, self).setUp()
 
index 3305ce77f45929016c904883909c4c7b9d4485e2..4490d572827b7d262009304a1aba529180b43d50 100644 (file)
@@ -18,7 +18,12 @@ cinder.tests.unit.api.test_versions
 cinder.tests.unit.api.test_xmlutil
 cinder.tests.unit.image.test_cache
 cinder.tests.unit.image.test_glance
+cinder.tests.unit.keymgr.test_barbican
+cinder.tests.unit.keymgr.test_conf_key_mgr
+cinder.tests.unit.keymgr.test_key
+cinder.tests.unit.keymgr.test_key_mgr
 cinder.tests.unit.keymgr.test_mock_key_mgr
+cinder.tests.unit.keymgr.test_not_implemented_key_mgr
 cinder.tests.unit.scheduler.test_allocated_capacity_weigher
 cinder.tests.unit.scheduler.test_capacity_weigher
 cinder.tests.unit.scheduler.test_chance_weigher