Fix image upload to provide error message when type not supported

Current upload only handles .gz, .tgz for ami and .qcow2 and .img for .qcow
Handle different extension with log error and don't mark resource as
updated.
Add new spec to cover provider logic which will make it easier for
bp below.

Created blueprint glance-upload-image-formats
to allow support for ALL format and container types.

Change-Id: Iee740ae6994a2bcc2880844c76f84e58ca735a73
Closes-bug: #1327249
This commit is contained in:
Mark Vanderwiel 2014-06-04 17:15:20 -05:00
parent 78803f2456
commit d929f8dfe1
5 changed files with 15 additions and 2 deletions

View File

@ -2,6 +2,10 @@
This file is used to list changes made in each version of cookbook-openstack-image.
## 9.1.2
### Bug
* Fix image upload to provide error message when type not supported
## 9.1.1
### Bug
* Fix data bag item id issue in recipes/api.rb

View File

@ -3,7 +3,7 @@ maintainer 'Opscode, Inc.'
license 'Apache 2.0'
description 'Installs and configures the Glance Image Registry and Delivery Service'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '9.1.1'
version '9.1.2'
recipe 'openstack-image::api', 'Installs packages required for a glance api server'
recipe 'openstack-image::client', 'Install packages required for glance client'
recipe 'openstack-image::registry', 'Installs packages required for a glance registry server'

View File

@ -48,6 +48,8 @@ def _determine_type(url)
return 'ami'
when '.qcow2', '.img'
return 'qcow'
else
fail ArgumentError, "File extension not supported for #{url}, supported extensions are: .gz, .tgz for .ami and .qcow2 and .img for .qcow"
end
end

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-image::image_upload' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS.merge(step_into: ['openstack_image_image'])) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)
@ -23,5 +23,11 @@ describe 'openstack-image::image_upload' do
image_name: 'cirros'
)
end
it 'raises error for unsupported image extension type' do
node.set['openstack']['image']['upload_images'] = ['image1']
node.set['openstack']['image']['upload_image']['image1'] = 'http://download.net/image.xxx'
expect { chef_run }.to raise_error(ArgumentError)
end
end
end

View File

@ -51,6 +51,7 @@ shared_context 'image-stubs' do
.and_return('rbd-pass')
Chef::Application.stub(:fatal!)
stub_command('glance --insecure --os-username glance --os-password glance-pass --os-tenant-name service --os-image-url http://127.0.0.1:9292 --os-auth-url http://127.0.0.1:5000/v2.0 image-list | grep cirros').and_return('')
end
end