Merge "Added tag property for glance_image provider class"
This commit is contained in:
commit
7af1fa25d4
|
@ -71,6 +71,7 @@ Puppet::Type.type(:glance_image).provide(
|
||||||
opts << "--min-ram=#{@resource[:min_ram]}" if @resource[:min_ram]
|
opts << "--min-ram=#{@resource[:min_ram]}" if @resource[:min_ram]
|
||||||
opts << "--id=#{@resource[:id]}" if @resource[:id]
|
opts << "--id=#{@resource[:id]}" if @resource[:id]
|
||||||
opts << props_to_s(@resource[:properties]) if @resource[:properties]
|
opts << props_to_s(@resource[:properties]) if @resource[:properties]
|
||||||
|
opts << "--tag=#{@resource[:image_tag]}" if @resource[:image_tag]
|
||||||
opts << location
|
opts << location
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
@ -122,6 +123,10 @@ Puppet::Type.type(:glance_image).provide(
|
||||||
@property_flush[:properties] = value
|
@property_flush[:properties] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def image_tag=(value)
|
||||||
|
@property_flush[:image_tag] = value
|
||||||
|
end
|
||||||
|
|
||||||
def id=(id)
|
def id=(id)
|
||||||
fail('id for existing images can not be modified')
|
fail('id for existing images can not be modified')
|
||||||
end
|
end
|
||||||
|
@ -140,7 +145,8 @@ Puppet::Type.type(:glance_image).provide(
|
||||||
:disk_format => attrs[:disk_format],
|
:disk_format => attrs[:disk_format],
|
||||||
:min_disk => attrs[:min_disk],
|
:min_disk => attrs[:min_disk],
|
||||||
:min_ram => attrs[:min_ram],
|
:min_ram => attrs[:min_ram],
|
||||||
:properties => exclude_readonly_props(properties)
|
:properties => exclude_readonly_props(properties),
|
||||||
|
:image_tag => attrs[:image_tag]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -165,6 +171,7 @@ Puppet::Type.type(:glance_image).provide(
|
||||||
(opts << "--min-ram=#{@property_flush[:min_ram]}") if @property_flush[:min_ram]
|
(opts << "--min-ram=#{@property_flush[:min_ram]}") if @property_flush[:min_ram]
|
||||||
(opts << "--min-disk=#{@property_flush[:min_disk]}") if @property_flush[:min_disk]
|
(opts << "--min-disk=#{@property_flush[:min_disk]}") if @property_flush[:min_disk]
|
||||||
(opts << props_to_s(@property_flush[:properties])) if @property_flush[:properties]
|
(opts << props_to_s(@property_flush[:properties])) if @property_flush[:properties]
|
||||||
|
(opts << "--tag=#{@property_flush[:image_tag]}") if @property_flush[:image_tag]
|
||||||
|
|
||||||
self.class.request('image', 'set', opts)
|
self.class.request('image', 'set', opts)
|
||||||
@property_flush.clear
|
@property_flush.clear
|
||||||
|
|
|
@ -15,6 +15,7 @@ Puppet::Type.newtype(:glance_image) do
|
||||||
min_ram => 1234,
|
min_ram => 1234,
|
||||||
min_disk => 1234,
|
min_disk => 1234,
|
||||||
properties => { 'img_key' => img_value },
|
properties => { 'img_key' => img_value },
|
||||||
|
image_tag => 'amphora',
|
||||||
}
|
}
|
||||||
|
|
||||||
Known problems / limitations:
|
Known problems / limitations:
|
||||||
|
@ -107,6 +108,11 @@ Puppet::Type.newtype(:glance_image) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
newproperty(:image_tag) do
|
||||||
|
desc "The image tag"
|
||||||
|
newvalues(/\S+/)
|
||||||
|
end
|
||||||
|
|
||||||
# Require the Glance service to be running
|
# Require the Glance service to be running
|
||||||
autorequire(:service) do
|
autorequire(:service) do
|
||||||
['glance-api', 'glance-registry']
|
['glance-api', 'glance-registry']
|
||||||
|
|
|
@ -290,4 +290,90 @@ virtual_size="None"
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'when creating image with tag' do
|
||||||
|
|
||||||
|
let(:tenant_attrs) do
|
||||||
|
{
|
||||||
|
:ensure => 'present',
|
||||||
|
:name => 'image1',
|
||||||
|
:is_public => 'yes',
|
||||||
|
:container_format => 'bare',
|
||||||
|
:disk_format => 'qcow2',
|
||||||
|
:source => '/var/tmp/image1.img',
|
||||||
|
:image_tag => 'testtag',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:resource) do
|
||||||
|
Puppet::Type::Glance_image.new(tenant_attrs)
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:provider) do
|
||||||
|
provider_class.new(resource)
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'authenticated with environment variables' do
|
||||||
|
describe '#create' do
|
||||||
|
it 'creates an image' do
|
||||||
|
provider.class.stubs(:openstack)
|
||||||
|
.with('image', 'create', '--format', 'shell', ['image1', '--public', '--container-format=bare', '--disk-format=qcow2', '--tag=testtag', '--file=/var/tmp/image1.img' ])
|
||||||
|
.returns('checksum="ee1eca47dc88f4879d8a229cc70a07c6"
|
||||||
|
container_format="bare"
|
||||||
|
created_at="2016-03-29T20:52:24Z"
|
||||||
|
disk_format="qcow2"
|
||||||
|
file="/v2/images/8801c5b0-c505-4a15-8ca3-1d2383f8c015/file"
|
||||||
|
id="8801c5b0-c505-4a15-8ca3-1d2383f8c015"
|
||||||
|
name="image1"
|
||||||
|
owner="5a9e521e17014804ab8b4e8b3de488a4"
|
||||||
|
tag="testtag"
|
||||||
|
protected="False"
|
||||||
|
schema="/v2/schemas/image"
|
||||||
|
size="13287936"
|
||||||
|
status="active"
|
||||||
|
tags=""
|
||||||
|
updated_at="2016-03-29T20:52:40Z"
|
||||||
|
virtual_size="None"
|
||||||
|
visibility="public"
|
||||||
|
')
|
||||||
|
provider.create
|
||||||
|
expect(provider.exists?).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '.instances' do
|
||||||
|
it 'finds every image' do
|
||||||
|
provider.class.stubs(:openstack)
|
||||||
|
.with('image', 'list', '--quiet', '--format', 'csv', '--long')
|
||||||
|
.returns('"ID","Name","Disk Format","Container Format","Size","Status","Tags"
|
||||||
|
"5345b502-efe4-4852-a45d-edaba3a3acc6","image1","raw","bare",1270,"active","testtag"
|
||||||
|
')
|
||||||
|
provider.class.stubs(:openstack)
|
||||||
|
.with('image', 'show', '--format', 'shell', '5345b502-efe4-4852-a45d-edaba3a3acc6')
|
||||||
|
.returns('checksum="09b9c392dc1f6e914cea287cb6be34b0"
|
||||||
|
container_format="bare"
|
||||||
|
created_at="2015-04-08T18:28:01"
|
||||||
|
deleted="False"
|
||||||
|
deleted_at="None"
|
||||||
|
disk_format="qcow2"
|
||||||
|
id="5345b502-efe4-4852-a45d-edaba3a3acc6"
|
||||||
|
visibility="public"
|
||||||
|
name="image1"
|
||||||
|
owner="None"
|
||||||
|
tag="testtag"
|
||||||
|
tags=""
|
||||||
|
protected="False"
|
||||||
|
size="1270"
|
||||||
|
status="active"
|
||||||
|
updated_at="2015-04-10T18:18:18"
|
||||||
|
virtual_size="None"
|
||||||
|
')
|
||||||
|
instances = provider_class.instances
|
||||||
|
expect(instances.count).to eq(1)
|
||||||
|
# expect(instances[0].image_tag).to eq('testtag')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue