]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks: decode bytes returned by base64.b64encode()
authorKefu Chai <kchai@redhat.com>
Mon, 27 Apr 2020 03:04:21 +0000 (11:04 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 3 Jun 2020 11:57:00 +0000 (19:57 +0800)
we use the return value from `base64.b64encode()` as a string, this works
in python2, but in python3, instead of a string, `base64.b64encode()`
returns bytes. so for instance, if we try to compose command line
arguments using `pipes.quote()` by passing a byte instance, we will have
```
TypeError: cannot use a string pattern on a bytes-like object
```

in this change, the retval is always decoded using ASCII, because base64
only returns ASCII strings when encoding.

this change is not cherry-picked from master, as the changed files do
not exist in master anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
qa/tasks/s3readwrite.py
qa/tasks/s3roundtrip.py
qa/tasks/swift.py

index b70eb83b7a3f18fdc4c67a941147d39e9d13b4c6..89e6ff835da518eeabed84d599a36c2c68ad1ccb 100644 (file)
@@ -78,7 +78,7 @@ def _config_user(s3tests_conf, section, user):
     s3tests_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     s3tests_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
     s3tests_conf[section].setdefault('access_key', ''.join(random.choice(string.uppercase) for i in range(20)))
-    s3tests_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)))
+    s3tests_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)).decode('ascii'))
 
 @contextlib.contextmanager
 def create_users(ctx, config):
index 9b27b4ae86d699db7766c663472d8bda3252274f..97c0f71151cd5cd63c4a53c15cdef3c41c92d7a1 100644 (file)
@@ -78,7 +78,7 @@ def _config_user(s3tests_conf, section, user):
     s3tests_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     s3tests_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
     s3tests_conf[section].setdefault('access_key', ''.join(random.choice(string.uppercase) for i in range(20)))
-    s3tests_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)))
+    s3tests_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)).decode('ascii'))
 
 @contextlib.contextmanager
 def create_users(ctx, config):
index 83a9d4c509b905ad3cc11e2d692a80ede8d9d794..be19937bf2742dd564ad116dad397d0d4080b84a 100644 (file)
@@ -60,7 +60,7 @@ def _config_user(testswift_conf, account, user, suffix):
     testswift_conf['func_test'].setdefault('username{s}'.format(s=suffix), user)
     testswift_conf['func_test'].setdefault('email{s}'.format(s=suffix), '{account}+test@test.test'.format(account=account))
     testswift_conf['func_test'].setdefault('display_name{s}'.format(s=suffix), 'Mr. {account} {user}'.format(account=account, user=user))
-    testswift_conf['func_test'].setdefault('password{s}'.format(s=suffix), base64.b64encode(os.urandom(40)))
+    testswift_conf['func_test'].setdefault('password{s}'.format(s=suffix), base64.b64encode(os.urandom(40)).decode('ascii'))
 
 @contextlib.contextmanager
 def create_users(ctx, config):