Feature #10637
openPuppet orchestration on vagrant fails with Error: Non-HTTP proxy URI
Description
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.
Updated by jeremyevans0 (Jeremy Evans) about 4 years ago
- Related to Feature #16482: net/http should support TLS connection to proxies added
Updated by jeremyevans0 (Jeremy Evans) about 4 years ago
- Tracker changed from Bug to Feature
- Status changed from Open to Assigned
- Assignee set to akr (Akira Tanaka)
- ruby -v deleted (
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux-gnu]) - Backport deleted (
2.0.0: UNKNOWN, 2.1: UNKNOWN)
Currently, open-uri only supports http proxies, not https proxies (you can connect to https sites through an http proxy, though). That's not a bug, it is operating as expected.
Switching this to a feature request for https proxy support in open-uri. Note that this would first depend on https proxy support being added to net/http (#16482).