Bug 1597711

Summary: [RHV] take python-pyOpenSSL from OSP
Product: Red Hat Enterprise Virtualization Manager Reporter: Andreas Bleischwitz <ableisch>
Component: pyOpenSSLAssignee: Alona Kaplan <alkaplan>
Status: CLOSED ERRATA QA Contact: Pavel Novotny <pnovotny>
Severity: urgent Docs Contact:
Priority: high    
Version: 4.2.4CC: asabadra, danken, lsvaty, mkalinin
Target Milestone: ovirt-4.3.0Keywords: Rebase, ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: ovirt-engine-4.3.0-0.5.alpha1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1601471 (view as bug list) Environment:
Last Closed: 2019-05-08 12:39:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1601471    

Description Andreas Bleischwitz 2018-07-03 13:40:58 UTC
Description of problem:
After the update of python-pyOpenSSL from the rhel-7-server-rhv-4.2-manager-rpms repository the yum-rhn-plugin will no longer be able to connect to a Satellite 5 system.


Version-Release number of selected component (if applicable):

RHEL-7.5, RHV-manager 4.2 rhnlib-2.5.22-15.el6, Satellite 5

Jul 03 07:00:35 Updated: ovirt-engine-setup-4.2.4.5-0.1.el7_3.noarch
Jul 03 07:00:35 Installed: python-pyOpenSSL-16.2.0-3.el7ost.noarch
Jul 03 07:01:16 Erased: pyOpenSSL-0.13.1-3.el7.x86_64

How reproducible:
- Always

Actual results:

# yum repolist
Loaded plugins: rhnplugin, search-disabled-repos, versionlock
Traceback (most recent call last):
  File "/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 375, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 170, in main
    base.getOptionsConfig(args)
  File "/usr/share/yum-cli/cli.py", line 262, in getOptionsConfig
    self.conf
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1078, in <lambda>
    conf = property(fget=lambda self: self._getConfig(),
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 420, in _getConfig
    self.plugins.run('init')
  File "/usr/lib/python2.7/site-packages/yum/plugins.py", line 188, in run
    func(conduitcls(self, self.base, conf, **kwargs))
  File "/usr/share/yum-plugins/rhnplugin.py", line 121, in init_hook
    login_info = up2dateAuth.getLoginInfo(timeout=timeout)
  File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 228, in getLoginInfo
    login(timeout=timeout)
  File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 195, in login
    li = server.up2date.login(systemId)
  File "/usr/share/rhn/up2date_client/rhnserver.py", line 63, in __call__
    return rpcServer.doCall(method, *args, **kwargs)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 204, in doCall
    ret = method(*args, **kwargs)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__
    return self.__send(self.__name, args)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 38, in _request1
    ret = self._request(methodname, params)
  File "/usr/lib/python2.7/site-packages/rhn/rpclib.py", line 384, in _request
    self._handler, request, verbose=self._verbose)
  File "/usr/lib/python2.7/site-packages/rhn/transports.py", line 188, in request
    return self._process_response(fd, connection)
  File "/usr/lib/python2.7/site-packages/rhn/transports.py", line 195, in _process_response
    fd = resp.decode(fd)
  File "/usr/lib/python2.7/site-packages/rhn/transports.py", line 442, in decode
    self.read(fd)
  File "/usr/lib/python2.7/site-packages/rhn/transports.py", line 420, in read
    max_mem_size=self.max_mem_size)
  File "/usr/lib/python2.7/site-packages/rhn/transports.py", line 528, in _smart_read
    chunk = fd.read(l)
  File "/usr/lib64/python2.7/httplib.py", line 610, in read
    self.close()
  File "/usr/lib64/python2.7/httplib.py", line 555, in close
    self.fp.close()
  File "/usr/lib/python2.7/site-packages/rhn/SSL.py", line 133, in close
    self._really_close()
  File "/usr/lib/python2.7/site-packages/rhn/SSL.py", line 148, in _really_close
    if self._connection.state_string() == 'SSL negotiation finished successfully':
  File "/usr/lib/python2.7/site-packages/OpenSSL/SSL.py", line 1135, in __getattr__
    return getattr(self._socket, name)
AttributeError: '_socketobject' object has no attribute 'state_string'

Expected results:
yum is able to communicate via rhnlib with Satellite 5

Additional info:

Workaround described in https://access.redhat.com/solutions/3469361 fixes rhnlib, but the issue is introduced by the change of the API of pyOpenSSL.

pyOpenSSL-17.3.0-4.el7ost from the OpenStack repos fixed that issue and re-introduced the API function.

Comment 2 Dan Kenigsberg 2018-07-14 05:04:07 UTC
Aviv, please remind me: what should we do to inherit pyOpenSSL from OSP13? Our current erratum https://errata.devel.redhat.com/errata/details/30165 is not marked as multi-product.

Comment 5 Pavel Novotny 2019-02-22 17:56:44 UTC
Verified with
python2-asn1crypto-0.23.0-2.el7ost.noarch
python2-idna-2.5-1.el7ost.noarch
python2-cryptography-2.1.4-3.el7ost.x86_64
python2-cffi-1.11.2-1.el7ost.x86_64
python-cffi-doc-1.11.2-1.el7ost.noarch
pyOpenSSL-doc-17.3.0-4.el7ost.noarch
python2-six-1.10.0-9.el7ost.noarch
python2-pyOpenSSL-17.3.0-4.el7ost.noarch

All builds are attached to the erratum and installation test passed.

Comment 7 errata-xmlrpc 2019-05-08 12:39:45 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:1098