Issue #10637 has been reported by Eshe Pickett.

----------------------------------------
Bug #10637: Puppet orchestration on vagrant fails with Error: Non-HTTP proxy URI
https://bugs.ruby-lang.org/issues/10637

* Author: Eshe Pickett
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux-gnu]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
I encountered this issue while bringing up a VM using vagrant with virtualbox. I am using puppet to do some provisioning

==> default: Notice: Downloading from https://forge.puppetlabs.com ...
==> default: Error: Non-HTTP proxy URI: https://[proxy]:[port]/ class is: URI::HTTPS
==> default: Error: Try 'puppet help module install' for usage
==> default: Notice: Preparing to install into /etc/puppet/modules ...
==> default: Notice: Downloading from https://forge.puppetlabs.com ...
==> default: Error: Non-HTTP proxy URI: https://[proxy]:[port]/ class is: URI::HTTPS
==> default: Error: Try 'puppet help module install' for usage

I put in the print out to see what class in the above  output

Puppet is using https to download modules, and it hits the open_http function

def OpenURI.open_http(buf, target, proxy, options) # :nodoc:
    if proxy
      proxy_uri, proxy_user, proxy_pass = proxy
      raise "Non-HTTP proxy URI: #{proxy_uri} class is: #{proxy_uri.class}" if proxy_uri.class != URI::HTTP
    end

I am new to ruby, so am unsure if this is the expected behavior. I have a work around, I set https_proxy to use the http_proxy, however, this is not by any means a permanent solution. Alternatively, I could change the ruby code to allow both HTTP and HTTPS URIs, please advise.



-- 
https://bugs.ruby-lang.org/