Commit Graph

19 Commits (1e09e553edf091f53b3bbfe667630adc236cf223)

Author SHA1 Message Date
Alfredo Moralejo 3079b7caae Add option id to glance_image
In glance, user can specify the desired id when creating
a new image. This can be convenient for some cases where
users want predictable ids for image, as referencing ramdisk_id
or kernel_id for AMI images.

Change-Id: I7868f2005041dea6ecd63cd601e9244cefd08e5b
7 years ago
Javier Pena 109cda8b24 Fix image list in glance_image provider changed the way images are listed,
by removing the '--long' parameter. This breaks when called by the
openstacklib provider, because that was the "properties" argument in
adb0b1d012/lib/puppet/provider/openstack.rb (L74)
so the command-line used '' as a last argument, causing the failure.

This will require a stable/mitaka backport.

Change-Id: I69e3cc848fbacbda01f9bd7d8a079c99b15cb5cf
7 years ago
Michael Polenchuk d0957fb622 Add ability to set properties with glance_image
This change updates the glance_image provider to support the ability to
specify properties for an image.  This change only adds the support for
setting properties. The conversion and update to using the v2 will
require further rework of this provider.

Change-Id: I22b92c5ccd0f77c837e9abe987cee07c7d90867e
Co-Authored-By: Alex Schultz <>
7 years ago
Denis Egorenko da8a3aa022 Add Glance Glare API service
In Mitaka Glance v3 was moved to stand alone service [1] - now
it's called Glance Artifacts Repository (Glare).

This patch adds appropriate service managing, package installation,
configuration and related spec tests.

[1] I5b7bd4cdcc5f2a40fc4a5f74bcc422fd700c4fb0

Change-Id: I3371d1d57486e79ccfae565417f2195d3ae66bc9
Closes-bug: #1555697
7 years ago
Mykyta Karpin 7d1c73ba0a spec: Add Unit Tests for glance paste_ini types/providers
Change-Id: Ia6688b80f983c76db5b076eafc842bfe2be4481b
Partial-bug: #1440401
7 years ago
Denis Egorenko c8b7d3319b Use glance-swift conf for swift backend
For working with Swift backend, Glance needs authentication parameters,
which are supplied to Swift when making calls to its storage system.
Glance will use information from the file specified under parameter
swift_store_config_file. When this parameter is set to the same file
(glance-api.conf), we have lot of non-critical errors in glance-api
log, because of 'Invalid format of swift store config'.

The same problem, when we have RadosGW.

Change-Id: I18ee8f68f7ce793d2580685e79ed636556c57ddd
Related-bug: #1540890
7 years ago
gcmalloc 7e2e1162d0 Add support for min ram and min disk
Add min_ram and min_disk properties to the glance_image resource.

Change-Id: I27202559bc73283a318575669c957238f5aee988
7 years ago
Dan Prince bce0eac01c Autorequire correct package based on the distro
Some distros (RHEL based) have a single glance package. On those
distros the ensure_package/autorequire stuff doesn't quite work
correctly as per the type code it is assumed two packages 'glance-api'
and 'glance-registry'

This commit makes sure that on RHEL based distros type only autorequire
'openstack-glance' while on other distros it correctly autorequire
'glance-api' and 'glance-registry'

Change-Id: I17c84b2282beadaec80f4db42fa5696b7967159f
Closes-bug: #1493442
Co-Authored-By: Yanis Guenane <>
8 years ago
Yanis Guenane 8db8143c89 Reflect provider change in puppet-openstacklib
With the creation of the new openstack_config provider, some processing
that was done in glance_api_config has been centralized in

The same changes apply for glance_registry_config and

Impacted methods are :

  * section
  * setting
  * separator

Also, this commit adds the fact that, when passing a specific string
(ensure_absent_val) the provider will behave as if ensure => absent was
specified. '<SERVICE DEFAULT>' is the default value for

The use case is the following :

glance_api_config { 'DEFAULT/foo' : value => 'bar' } # will work as usual

glance_api_config { 'DEFAULT/foo' : value => '<SERVICE DEFAULT>' } # will mean absent

That means that all the current :

if $myvar {
  glance_api_config { 'DEFAULT/foo' : value => $myvar }
} else {
  glance_api_config { 'DEFAULT/foo' : ensure => absent }

can be removed in favor of :

glance_api_config { 'DEFAULT/foo' : value => $myvar }

If for any reason '<SERVICE DEFAULT>' turns out to be a valid value for
a specific parameter. One could by pass that doing the following :

glance_api_config { 'DEFAULT/foo' : value => '<SERVICE DEFAULT>',
ensure_absent_val => 'foo' }

Change-Id: I3bbdf63d1b9b5a2daba30fd4ba897db703f979ae
Depends-On: I0eeebde3aac2662cc7e69bfad7f8d2481463a218
8 years ago
Yanis Guenane d769137e38 Rely on autorequire for config resource ordering
Currently we specify the ordering of config resources wherever it is
necessary based on the presence of the file it will write to, or the
presence of the package in charge of providing the file it will write

Those kind of ordering can be specified directly at the resource level
using the autorequire mechanism. With this patch, any config resource
will make sure the package in charge of providing the file will be
installed first.

Change-Id: Idb19da25958e79787b0c66e4ae275216849a9a2e
8 years ago
Colleen Murphy 39b58df7a8 Use OpenstackClient for glance_image auth
This patch changes the glance_image provider to use
puppet-openstacklib's authentication methods, which use
python-openstackclient as an interface, instead of the glance command
line client. The benefits of this is:

- Code reduction. This patch reduces the amount of code in the
  glance parent provider and glance_image provider by reusing code from
  Puppet::Provider::Openstack instead of implementing authentication,
  retries, and response parsing in the provider.
- Presumed reduction in sudden API changes that require quick fixes in
  this module, such as f377c0229c.
- Ability to set project-based access control for images

Additional reasoning for this change is in the blueprint.

Important note: this change does not work on Ubuntu under Juno due to a
major bug in the version of python-openstackclient shipped in UCA [1].
This change targets the Kilo releases.

Note about performance: the self.instances and instances methods make
API requests for each image found in the list of instances. This is not
a change from how this was implemented before. The --long formatted
list, either from the glance client or openstackclient, does not
provide all information needed to query an instance and populate
setters. Future patches could possibly improve on this.

Other details of this change:

- Removes auth_glance method, replaced by the request and
  glance_request methods
- Removes auth_glance_stdin method which was not being used
- Removes parse_table which is now unnecessary because openstackclient
  formats its responses as CSV and Puppet::Provider::Openstack#request
  returns the results a hash
- Removes remove_warnings methods which are handled by
- Removes list_glance_images and get_glance_image_attr which are
  sufficiently replaced by using the 'list' and 'show' commands with
  Puppet::Provider::Openstack's request method.
- Removed self.prefetch since we can't populate auth parameters during
  a prefetch. Instead we prepopulate the list via the instances method.
- Added a flush method to do updates more efficiently
- Changed is_public property to accept true/false in addition to yes/no
  and to munge to a symbol instead of a capitalized string, for
  consistency with keystone_tenant's enabled property
- Move the reset method into the spec tests since it is only necessary
  for testing
- Added tests for glance_image, which did not exist before
- Removed connection retry test since this is taken care of in


blueprint use-openstackclient-in-module-resources

Change-Id: Iceab5e1c6138e7aba0f883ed4acb8f7ecbcd2830
8 years ago
Colleen Murphy 378523be43 Revert "glance provider: pick os_region_name from DEFAULT"
This reverts commit b76fbcbea3.

With 268370457c now merged, we need to go
back to looking for os_region_name in [glance_store] instead of

Change-Id: I197d012387d630ca6fb3a38c48f0603add6c6de1
8 years ago
Emilien Macchi b76fbcbea3 glance provider: pick os_region_name from DEFAULT
In ::glance::api, os_region_name is set in DEFAULT which work for both
Juno & Kilo.

'glance_store' section has been introduced in Kilo which breaks Juno.
Until we decide our policy to manage master, let's use DEFAULT so both
releases work well.

Change-Id: I1c519146d3fe62f8c8fc8c2d85805db11af21e4c
8 years ago
Colleen Murphy 62c42a5f61 Revert "Revert "Fix os_region_name in provider""
Depends on

This reverts commit e2301958e9.

Change-Id: I86db306b90cfdba53cf40bd9e3b2cce453e821d0
8 years ago
Colleen Murphy e2301958e9 Revert "Fix os_region_name in provider"
When we revert the change that moved os_region_name, we must also
revert this fix that resulted from that change.

Depends on

This reverts commit 354ae692a5.

Change-Id: I65249b0734ae1a1bfbf0e5e153d19787f6aded5f
8 years ago
Javier Pena 354ae692a5 Fix os_region_name in provider
Commit e6e8f6a562 changed the section
where the os_region_name setting is placed from 'DEFAULT' to
'glance_store'. However, the provider was not updated to reflect
this change, so it broke.

Change-Id: I9e91faac2a45ac4eba4cc27c328e8dc67e619ab3
8 years ago
Jan Kundrát abd028a5f6 Run the `glance` CLI tool with appropriate region name
This is pretty important in situations where Keystone contains information about
multiple regions. The holding assumption is that the glance::image etc are used
for image upload for the current region.

Change-Id: I0a24cd24ddf3e0b1fab94e693a2fac847cc7271c
9 years ago
Emilien Macchi f377c0229c Update deprecated Glance CLI
Since this patch has been merged in python-glanceclient 0.14.1:

We have to update the way to call Glance Client.
This patch updates for glance image-list, image-show and the way to get
a token, and also the way the glance command output is parsed.

Change-Id: If3e1e42b1245dd064fa00e07037535afc9caa04c
9 years ago
Dan Bode 850bca13c7 Glance provider should retry once when service is not ready
Just b/c the glance service has started correctly does not
mean the service is actually running. Often, the service
is not operational and attempts to use the glance_image provider
results in connection errors.

This commit inserts code that allows the glance provider to
sleep for 10 seconds and perform a single retry.

The template for the code and tests was borrowed from keystone.

Change-Id: I565f1befea6ec3d2347f8e29c9aa05d5a312a827
10 years ago