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
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/
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.