Bug 1332037

Summary: Synchronizing repositories that are published via HTTP and HTTPS should always default to the more secure method available.
Product: Red Hat Satellite Reporter: Will D <will_darton>
Component: PulpAssignee: Justin Sherrill <jsherril>
Status: CLOSED ERRATA QA Contact: Chris Duryee <cduryee>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: bbuckingham, cduryee, cwelton, ehelms, jsherril
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/14939
Whiteboard:
Fixed In Version: rubygem-katello-3.0.0.53-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-27 11:24:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Will D 2016-05-01 13:50:05 UTC
Description of problem:
Synchronizing repositories that are published via HTTP and HTTPS should always default to the more secure method available.
After publishing a Content View with a repository that has both HTTP and HTTPS enabled, the capsule will attempt to synchronize over HTTP rather than HTTPS.  Because HTTP is blocked between the Parent and the Capsule, the repository will not sync.

Version-Release number of selected component (if applicable):
Sat:
  satellite-6.2.0-8.2.beta.el7sat.noarch
  pulp-server-2.8.1.3-1.el7sat.noarch
  tfm-rubygem-foreman-tasks-0.7.16-1.fm1_11.el7.noarch
Capsule:
  satellite-capsule-6.2.0-8.2.beta.el7sat.noarch


How reproducible:
Everytime

Steps to Reproduce:
1 Sync RHEL7 Kickstart , RHEL 7 7Server and a custom channel

2. Assign Library to your capsule
   # hammer -u <user> -p <pass> capsule content add-lifecycle-environment \
     --organization-id 1 --id 4 --environment-id 1
3. Make the capsule to sync the content
   # hammer -u <user> -p <pass> capsule content synchronize --id 4


Actual results:
Any repository that has HTTPS enabled will synchronize fine.  Any repository that has both HTTP and HTTPS enabled will fail as pulp attempts to use HTTP (least secure)
May 01 09:36:40 <capsule name> pulp[6243]: requests.packages.urllib3.connectionpool:INFO: Starting new HTTP connection (3): <parent name>
May 01 09:36:40 <capsule name> pulp[6245]: requests.packages.urllib3.connectionpool:WARNING: Retrying (Retry(total=3, connect=3, read=5, redirect=None)) after connection broken by 'ConnectTimeoutError(<requests.packages.urllib3.connection.HTTPConnection object at 0x452e9d0>, 'Connection to <parent name> timed out. (connect timeout=6.05)')': /pulp/repos/Enterprise_Unix_Engineering/LAB/eue-7-server-x86_64/content/dist/rhel/server/7/7.2/x86_64/kickstart
May 01 09:36:40 <capsule name> pulp[6245]: requests.packages.urllib3.connectionpool:INFO: Starting new HTTP connection (3): <parent name>
May 01 09:36:50 <capsule name> pulp[6245]: requests.packages.urllib3.connectionpool:WARNING: Retrying (Retry(total=2, connect=2, read=5, redirect=None)) after connection broken by 'ConnectTimeoutError(<requests.packages.urllib3.connection.HTTPConnection object at 0x452e750>, 'Connection to <parent name> timed out. (connect timeout=6.05)')': /pulp/repos/Enterprise_Unix_Engineering/LAB/eue-7-server-x86_64/content/dist/rhel/server/7/7.2/x86_64/kickstart
May 01 09:36:50 <capsule name> pulp[6245]: requests.packages.urllib3.connectionpool:INFO: Starting new HTTP connection (4): <parent name>
May 01 09:36:50 <capsule name> pulp[6243]: requests.packages.urllib3.connectionpool:WARNING: Retrying (Retry(total=2, connect=2, read=5, redirect=None)) after connection broken by 'ConnectTimeoutError(<requests.packages.urllib3.connection.HTTPConnection object at 0x4fd2810>, 'Connection to <parent name> timed out. (connect timeout=6.05)')': /pulp/repos/Enterprise_Unix_Engineering/LAB/eue-7-server-x86_64-cv/content/dist/rhel/server/7/7.2/x86_64/kickstart



Expected results:
All repositories that have 'Publish via HTTPS' and 'Publish via HTTP' should default to HTTPS.


Additional info:

Comment 2 Justin Sherrill 2016-05-05 18:17:37 UTC
Created redmine issue http://projects.theforeman.org/issues/14939 from this bug

Comment 3 Bryan Kearney 2016-05-05 20:19:00 UTC
Upstream bug assigned to jsherril

Comment 4 Bryan Kearney 2016-05-05 20:19:03 UTC
Upstream bug assigned to jsherril

Comment 5 Bryan Kearney 2016-05-10 18:20:57 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/14939 has been closed

Comment 7 Chris Duryee 2016-07-12 20:51:17 UTC
verified on snap 19.1

how I tested:

 * set up sat + capsule
 * create a repo that is published on https and http, add to CV, publish CV
 * on sat, tail -f /var/log/httpd/* | grep <capsule ip>
 * sync capsule

result:

all GET calls for content are over ssl, and no errors in /var/log/messages on capsule

Comment 8 Bryan Kearney 2016-07-27 11:24:15 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-2016:1501