diff options
author | Victor Stinner <vstinner@redhat.com> | 2016-06-22 11:24:27 +0200 |
---|---|---|
committer | ChangBo Guo(gcb) <eric.guo@easystack.cn> | 2016-11-29 11:28:24 +0800 |
commit | 67af1eefc5c1cf8cde4b4becb933808850acec2d (patch) | |
tree | dfdb47d1639a0d31b9cf143c6220d3dd82310076 /nova/availability_zones.py | |
parent | 00b359ce146c7a26e2ad578ee8ec5b83461e7dbf (diff) | |
download | nova-67af1eefc5c1cf8cde4b4becb933808850acec2d.tar.gz |
Port test_metadata to Python 3
* convert_password(): on Python 3, decode password from UTF-8 if it
is a byte string
* convert_password(): don't modify password in the loop body, use an
index increased at each iteration. This is a minor cleanup,
unrelated to Python 3.
* ec2_md_print() now returns byte strings unchanged. On Python 3,
str(bytes) uses "b'...'" format which is not the expected result
(or it raises a BytesWarinng exception when using python3 -bb).
* Replace the base64 module with oslo_serialization.base64 to control
the output type (bytes or text) on Python 2 and Python 3.
* _make_cache_key(): on Python 3, don't encode the host to UTF-8.
Python 3 requires text.
* MetadataRequestHandler: on Python 3, encode HTTP body to UTF-8 if
the body type is Unicode.
* test_metadata:
- encode hmac.new() parameters using encodeutils.to_utf8()
- use response.text rather than response.body to compare with
Unicode string
- use a byte strings for the instance identifier
- fix some Unicode versus bytes issues
* tests-py3.txt: run test_metadata on Python 3
Co-Authored-By: Davanum Srinivas <davanum@gmail.com>
Co-Authored-By: ChangBo Guo(gcb) <eric.guo@easystack.cn>
Partially-Implements: blueprint goal-python35
Change-Id: Ifb43ce164d9fd80f9f85c95c762d7b010e84dfeb
Diffstat (limited to 'nova/availability_zones.py')
-rw-r--r-- | nova/availability_zones.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/nova/availability_zones.py b/nova/availability_zones.py index 4ae4f3ef36..190882d90d 100644 --- a/nova/availability_zones.py +++ b/nova/availability_zones.py @@ -16,9 +16,11 @@ """Availability zone helper functions.""" import collections -import nova.conf + +import six from nova import cache_utils +import nova.conf from nova import objects # NOTE(vish): azs don't change that often, so cache them for an hour to @@ -49,7 +51,9 @@ def reset_cache(): def _make_cache_key(host): - return "azcache-%s" % host.encode('utf-8') + if six.PY2: + host = host.encode('utf-8') + return "azcache-%s" % host def _build_metadata_by_host(aggregates, hosts=None): |