+++ /dev/null
-Puppet::Type.newtype(:glance_image) do
- desc <<-EOT
- This allows manifests to declare an image to be
- stored in glance.
-
- glance_image { "Ubuntu 12.04 cloudimg amd64":
- ensure => present,
- name => "Ubuntu 12.04 cloudimg amd64"
- is_public => yes,
- container_format => ovf,
- disk_format => 'qcow2',
- source => 'http://uec-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img'
- }
-
- Known problems / limitations:
- * All images are managed by the glance service.
- This means that since users are unable to manage their own images via this type,
- is_public is really of no use. You can probably hide images this way but that's all.
- * As glance image names do not have to be unique, you must ensure that your glance
- repository does not have any duplicate names prior to using this.
- * Ensure this is run on the same server as the glance-api service.
-
- EOT
-
- ensurable
-
- newparam(:name, :namevar => true) do
- desc 'The image name'
- newvalues(/.*/)
- end
-
- newproperty(:id) do
- desc 'The unique id of the image'
- validate do |v|
- raise(Puppet::Error, 'This is a read only property')
- end
- end
-
- newproperty(:location) do
- desc "The permanent location of the image. Optional"
- newvalues(/\S+/)
- end
-
- newproperty(:is_public) do
- desc "Whether the image is public or not. Default true"
- newvalues(/(y|Y)es/, /(n|N)o/)
- defaultto('Yes')
- munge do |v|
- if v =~ /^(y|Y)es$/
- 'True'
- elsif v =~ /^(n|N)o$/
- 'False'
- end
- end
- end
-
- newproperty(:container_format) do
- desc "The format of the container"
- newvalues(:ami, :ari, :aki, :bare, :ovf)
- end
-
- newproperty(:disk_format) do
- desc "The format of the disk"
- newvalues(:ami, :ari, :aki, :vhd, :vmd, :raw, :qcow2, :vdi, :iso)
- end
-
- newparam(:source) do
- desc "The source of the image to import from"
- newvalues(/\S+/)
- end
-
- # Require the Glance service to be running
- autorequire(:service) do
- ['glance']
- end
-
-end
-
-