From 988cf2fecff95e20933fcd43b3aefb6c6ae14b95 Mon Sep 17 00:00:00 2001 From: Travis Truman Date: Wed, 15 Jul 2015 21:31:13 -0400 Subject: [PATCH] Fixes #2434 by adding OpenStack Glance metadata support --- builder/openstack/image_config.go | 3 ++- builder/openstack/step_create_image.go | 3 ++- website/source/docs/builders/openstack.html.markdown | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/builder/openstack/image_config.go b/builder/openstack/image_config.go index 124449eab..b52ad2c67 100644 --- a/builder/openstack/image_config.go +++ b/builder/openstack/image_config.go @@ -8,7 +8,8 @@ import ( // ImageConfig is for common configuration related to creating Images. type ImageConfig struct { - ImageName string `mapstructure:"image_name"` + ImageName string `mapstructure:"image_name"` + ImageMetadata map[string]string `mapstructure:"metadata"` } func (c *ImageConfig) Prepare(ctx *interpolate.Context) []error { diff --git a/builder/openstack/step_create_image.go b/builder/openstack/step_create_image.go index b777e8b0b..9b6ac0cd8 100644 --- a/builder/openstack/step_create_image.go +++ b/builder/openstack/step_create_image.go @@ -30,7 +30,8 @@ func (s *stepCreateImage) Run(state multistep.StateBag) multistep.StepAction { // Create the image ui.Say(fmt.Sprintf("Creating the image: %s", config.ImageName)) imageId, err := servers.CreateImage(client, server.ID, servers.CreateImageOpts{ - Name: config.ImageName, + Name: config.ImageName, + Metadata: config.ImageMetadata, }).ExtractImageID() if err != nil { err := fmt.Errorf("Error creating image: %s", err) diff --git a/website/source/docs/builders/openstack.html.markdown b/website/source/docs/builders/openstack.html.markdown index fec1a85a6..b61e503be 100644 --- a/website/source/docs/builders/openstack.html.markdown +++ b/website/source/docs/builders/openstack.html.markdown @@ -96,6 +96,8 @@ can be configured for this builder. * `rackconnect_wait` (boolean) - For rackspace, whether or not to wait for Rackconnect to assign the machine an IP address before connecting via SSH. Defaults to false. +* `metadata` (object of key/value strings) - Glance metadata that will be applied + to the image. ## Basic Example: Rackspace public cloud