Description of problem:
Octavia requires python2-cryptography!=2.0,>=1.9  and is synced with global-requirement.txt . 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 ? There might be some considerations to be made first, i.e. bump of openssl and pyopenssl versions?
python-cryptography>=1.9 is not good enough as recently discovered with a new gate using lower-constraints . Octavia requires python-cryptography>=2.1.
Version bump being requested upstream for global-requirements.txt and lower-constraints.txt in .
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.