Add proxy support to glance_image resource

The glance_image resource provides the ability to
download remote images using the source parameter.
Specifying the proxy parameter will allow one to
use a proxy server when downloading the image.

Change-Id: I540a29be3eb6c95b1c3975228c23c9154b1a0cbe
Closes-Bug: 1719874
This commit is contained in:
Tobias Urdin 2018-04-04 15:49:59 +02:00
parent 80c58df276
commit 8a275afc76
3 changed files with 22 additions and 1 deletions

View File

@ -24,6 +24,15 @@ Puppet::Type.type(:glance_image).provide(
def create
temp_file = false
if @resource[:source]
if @resource[:proxy]
proxy_uri = URI(@resource[:proxy])
proxy_host = proxy_uri.host
proxy_port = proxy_uri.port
else
proxy_host = nil
proxy_port = nil
end
# copy_from cannot handle file://
if @resource[:source] =~ /^\// # local file
location = "--file=#{@resource[:source]}"
@ -31,7 +40,7 @@ Puppet::Type.type(:glance_image).provide(
temp_file = Tempfile.new('puppet-glance-image')
uri = URI(@resource[:source])
Net::HTTP.start(uri.host, uri.port,
Net::HTTP.start(uri.host, uri.port, proxy_host, proxy_port,
:use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
http.request request do |response|

View File

@ -11,6 +11,7 @@ Puppet::Type.newtype(:glance_image) do
container_format => 'ovf',
disk_format => 'qcow2',
source => 'http://uec-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img',
proxy => 'http://127.0.0.1:8080',
min_ram => 1234,
min_disk => 1234,
properties => { 'img_key' => img_value },
@ -73,6 +74,11 @@ Puppet::Type.newtype(:glance_image) do
newvalues(/\S+/)
end
newparam(:proxy) do
desc "The proxy server to use if source should be downloaded"
newvalues(/\S+/)
end
newproperty(:min_ram) do
desc "The minimal ram size"
newvalues(/\d+/)

View File

@ -0,0 +1,6 @@
---
features:
- |
The glance_image resource now provides a proxy parameter which can be used
to specify a proxy to use when downloading a remote image using the source
parameter. The new proxy parameter is optional.