Bug 1553517 - Bump python-cryptography to >=2.1
Summary: Bump python-cryptography to >=2.1
Alias: None
Product: RDO
Classification: Community
Component: distribution
Version: trunk
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: trunk
Assignee: Alfredo Moralejo
QA Contact: Shai Revivo
Depends On:
Blocks: 1553520 1553521 1554409 1556933
TreeView+ depends on / blocked
Reported: 2018-03-09 01:09 UTC by Carlos Goncalves
Modified: 2018-03-29 07:57 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1553752 1556933 (view as bug list)
Last Closed: 2018-03-29 07:57:51 UTC

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
RDO 12859 0 None None None 2018-03-13 14:23:50 UTC

Description Carlos Goncalves 2018-03-09 01:09:24 UTC
Description of problem:

Octavia requires python2-cryptography!=2.0,>=1.9 [1] and is synced with global-requirement.txt [2]. CentOS7 provides python2-cryptography-1.7.2-1.el7 which is not good enough and throws exceptions on load balancer create in Octavia:

2018-03-08 23:45:46.453 24634 ERROR octavia.controller.worker.controller_worker   File "/usr/lib/python2.7/site-packages/octavia/certificates/common/pkcs12.py", line 35, in get_certificate
2018-03-08 23:45:46.453 24634 ERROR octavia.controller.worker.controller_worker     return self.certificate.to_cryptography().public_bytes(
2018-03-08 23:45:46.453 24634 ERROR octavia.controller.worker.controller_worker AttributeError: 'X509' object has no attribute 'to_cryptography'

Could we promote python2-cryptography-2.1.4 from Fedora [3]? There might be some considerations to be made first, i.e. bump of openssl and pyopenssl versions?

[1] https://github.com/openstack/octavia/blob/master/requirements.txt#L47
[2] https://github.com/openstack/requirements/blob/master/global-requirements.txt#L28
[3] https://src.fedoraproject.org/rpms/python-cryptography/blob/master/f/python-cryptography.spec

Comment 1 Carlos Goncalves 2018-03-15 11:02:17 UTC
python-cryptography>=1.9 is not good enough as recently discovered with a new gate using lower-constraints [1]. Octavia requires python-cryptography>=2.1.

Version bump being requested upstream for global-requirements.txt and lower-constraints.txt in [2].

[1] https://review.openstack.org/#/c/553134/
[2] https://review.openstack.org/#/c/553136/

Comment 2 Alfredo Moralejo 2018-03-15 15:02:05 UTC
We are bumping python-cryptography to 2.1.4. This introduces new dependencies:

- cryptography-vectors (required same version as cryptography)
- python-cffi >= 1.7.0 is required for updated cryptography (updating to 1.11.2, overriding version in RHEL7)
- python-asn1crypto = 0.23.0, new dependency for updated python-cryptography

Currently we are hitting an issue because of a non-backwards compatible change in python-cryptography-2.1:

BACKWARDS INCOMPATIBLE: :attr:`DNSName.value <cryptography.x509.DNSName.value>`, :attr:`RFC822Name.value <cryptography.x509.RFC822Name.value>`, and :attr:`UniformResourceIdentifier.value <cryptography.x509.UniformResourceIdentifier.value>` will now return an :term:`A-label` string when parsing a certificate containing an internationalized domain name (IDN) or if the caller passed a :term:`U-label` to the constructor. See below for additional deprecations related to this change.

This is making puppet-openstack-integration jobs to fail and we are still evaluating the impact.

Note You need to log in before you can comment on or make changes to this bug.