Bug 1391891

Summary: [TestOnly] Verify compatibility with python-paramiko 2.0
Product: [oVirt] ovirt-engine Reporter: Sandro Bonazzola <sbonazzo>
Component: Setup.CoreAssignee: Yedidyah Bar David <didi>
Status: CLOSED CURRENTRELEASE QA Contact: Pavol Brilla <pbrilla>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 4.1.0CC: bugs, didi, pbrilla, sbonazzo, ylavi
Target Milestone: ovirt-4.1.6Keywords: FutureFeature, TestOnly
Target Release: 4.1.5.2Flags: sbonazzo: ovirt-4.1?
sbonazzo: blocker?
sbonazzo: planning_ack?
sbonazzo: devel_ack+
pstehlik: testing_ack+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Rebase: Bug Fixes and Enhancements
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-19 10:02:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Integration RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Sandro Bonazzola 2016-11-04 10:39:18 UTC
Description of problem:
python-paramiko 2.0 has been released and is available in CentOS Cloud SIG at http://cbs.centos.org/koji/buildinfo?buildID=11100 for OpenStack Newton Release

It will be also included in Fedora 25 http://koji.fedoraproject.org/koji/buildinfo?buildID=758637

Comment 1 Sandro Bonazzola 2017-08-14 11:48:44 UTC
Re-adding to 4.2 as urgent.
python-paramiko-2.1.1-2.el7 has been added to RHEL 7.4 extra as dependency for ansible 2.3.1.
extra repository is enabled by default in CentOS so it will break oVirt as soon as CentOS 7.4 will be released.

Comment 2 Sandro Bonazzola 2017-08-14 11:50:16 UTC
Retargeted to 4.1.6 since it will be hit as well.

Comment 3 Yedidyah Bar David 2017-08-16 07:49:29 UTC
Not sure why this is a CodeChange.

Now tested this flow:

1. Setup 4.1 engine on machine A
2. Install on machine B:
- dwh setup plugin
- websocket-proxy setup plugin
- python-paramiko-2.1.1
3. Run on machine B engine-setup, accept most defaults (configure dwh, websocket-proxy, ssh as root for access to the engine machine)

Everything seems to work well.

Anything else? Do we know about any reason why it should not work? Didn't check the release notes or anything else about the difference between paramiko 1 and 2.

IMO we can remove CodeChange and add TestOnly (and move to QE).

Also, do we want to _require_ newer paramiko (as opposed to simply make sure it works, but use whatever that's available)?

Comment 4 Yedidyah Bar David 2017-08-16 08:23:36 UTC
Also, now gave a brief look at the changelog, and at least in 2.0.0 it moved from PyCrypto to pyCA, stating this affects only installation, with no API changes intended or expected:

http://www.paramiko.org/changelog.html#2.0.0

Comment 5 Sandro Bonazzola 2017-08-17 06:04:17 UTC
Thanks for the analysis, moving to test only.

Comment 6 Pavol Brilla 2017-09-05 09:15:31 UTC
I need also erratum, so we will add this python-paramiko from extras channel to ours

Comment 7 Yedidyah Bar David 2017-09-05 09:46:06 UTC
(In reply to Pavol Brilla from comment #6)
> I need also erratum, so we will add this python-paramiko from extras channel
> to ours

To clarify: No code change was needed. Our code works with both 1 and 2.
We do not (currently) need specific features from 2. We are not going to require it, so no need to handle errata, shipping, etc. - just to verify that if it's installed, everything works. See comment 3 for a relevant flow, that covers at least parts of the code that uses paramiko.

Changed Summary and Keywords accordingly.

Comment 8 Pavol Brilla 2017-09-12 06:38:48 UTC
tested clean engine-setup with:

# yum list python-paramiko
Loaded plugins: product-id, search-disabled-repos, versionlock
Installed Packages
python-paramiko.noarch                                                                   2.1.1-2.el7

all - dwh engine websocket succesfull

Comment 9 Yedidyah Bar David 2017-09-12 06:52:31 UTC
(In reply to Pavol Brilla from comment #8)
> tested clean engine-setup with:
> 
> # yum list python-paramiko
> Loaded plugins: product-id, search-disabled-repos, versionlock
> Installed Packages
> python-paramiko.noarch                                                      
> 2.1.1-2.el7
> 
> all - dwh engine websocket succesfull

paramiko is not used if all are on a single machine. paramiko is the python library we use to do ssh inside setup, in case you setup some parts on separate machines and choose to use ssh as root to configure the engine machine. See comment 3 for a relevant flow.

Comment 10 Yedidyah Bar David 2017-09-12 06:54:05 UTC
And BTW, it would a good idea to verify this flow, having some components on separate machines, for every release, even if there isn't a specific bug about it.

Comment 11 Pavol Brilla 2017-11-03 06:45:32 UTC
Cleaning info, yes it was tested also on dwh on separate machine