Adding Python 3.4 support to Magnum
All Magnum dependencies (bar oslo.messaging AMQP and Qpid support) are now python 3 compatible, Magnum should also be python 3 compatible without losing python 2 support.
Other OpenStack projects have progress underway on python 3 support, see https:/
'caniusepython3' also agrees that Magnum dependencies are python 3 compatible: https:/
A python3.4 test job (non-voting initially) will also be setup to test this compatibility.
Blueprint information
- Status:
- Not started
- Approver:
- hongbin
- Priority:
- Undefined
- Drafter:
- Tom Cammann
- Direction:
- Approved
- Assignee:
- Tom Cammann
- Definition:
- Discussion
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
@hongyang: After my series patches for python3 compatibility, we can pass python34 unit test, I think we
can enable py34-unit gate job(non-voting) now:
======
Totals
======
Ran: 1150 tests in 18.8871 sec.
- Passed: 1150
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 0
Sum of execute time for each test: 31.0744 sec.
==============
Worker Balance
==============
- Worker 0 (287 tests) => 0:00:08.435993
- Worker 1 (288 tests) => 0:00:08.491709
- Worker 2 (287 tests) => 0:00:09.313717
- Worker 3 (288 tests) => 0:00:06.976586
_______
py34: commands succeeded
congratulations :)
Gerrit topic: https:/
Addressed by: https:/
Replace dict.iteritems() with six.iteritems(dict)
Gerrit topic: https:/
Addressed by: https:/
Upgrade code to be python 3 compatible
Addressed by: https:/
Check for Python 2 when using unicode builtin
Gerrit topic: https:/
Addressed by: https:/
Replace dict.iteritems() with dict.items()
Addressed by: https:/
Python 3 use logger.warning instead of log.warn
Addressed by: https:/
Use six.moves.
Gerrit topic: https:/
Addressed by: https:/
Do not use __builtin__ in python3
Gerrit topic: https:/
Addressed by: https:/
Do not use __builtin__ in python3
Gerrit topic: https:/
Addressed by: https:/
Add python 3 support
Addressed by: https:/
Correctly compare utf8 strings
Addressed by: https:/
Avoid compare None type using min()
Addressed by: https:/
Use six.moves.
Addressed by: https:/
Return correct object type
Addressed by: https:/
Use exception.
Addressed by: https:/
handle bytes list in api middleware
Addressed by: https:/
Use specific key to sort list of dicts
Addressed by: https:/
Fix CertificateStor
Addressed by: https:/
Fix x509 cert generation python3 compability
Addressed by: https:/
Encode string before hash it
Addressed by: https:/
Convert bytes to string in get_id for python3 compatibility
Addressed by: https:/
Do not use translate to delete chars
Gerrit topic: https:/
Addressed by: https:/
Use obj_attr_is_set to check whether an attr is set in oslo_versionedo