diff options
| author | Dan Prince <dan.prince@rackspace.com> | 2011-12-26 17:40:51 -0500 |
|---|---|---|
| committer | Dan Prince <dan.prince@rackspace.com> | 2011-12-26 22:14:39 -0500 |
| commit | 93359c8476471b6e000afff1b991e05969e46ee6 (patch) | |
| tree | 8c59fa518b7a04d8b971015d26396c67f729f48b /plugins/xenserver | |
| parent | cff2ddcbd532ed54d60dbfbdbb7720f4634487b9 (diff) | |
| download | nova-93359c8476471b6e000afff1b991e05969e46ee6.tar.gz nova-93359c8476471b6e000afff1b991e05969e46ee6.tar.xz nova-93359c8476471b6e000afff1b991e05969e46ee6.zip | |
Update glance Xen plugin w/ purge props header.
Update glance XenServer plugin to use X-Glance-Registry-Purge-Props.
Fixes LP Bug #908922.
Change-Id: I4d16fc8fb34e24195f3bc589d42bdbfadaf77398
Diffstat (limited to 'plugins/xenserver')
| -rwxr-xr-x | plugins/xenserver/xenapi/etc/xapi.d/plugins/glance | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/glance b/plugins/xenserver/xenapi/etc/xapi.d/plugins/glance index 538c82110..9f9e2686b 100755 --- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/glance +++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/glance @@ -315,25 +315,6 @@ def _upload_tarball(staging_path, image_id, glance_host, glance_port, """ conn = httplib.HTTPConnection(glance_host, glance_port) - # NOTE(dprince): We need to resend any existing Glance meta/property - # headers so they are preserved in Glance. We obtain them here with a - # HEAD request. - conn.putrequest('HEAD', '/v1/images/%s' % image_id) - if auth_token: - conn.putheader('x-auth-token', auth_token) - conn.endheaders() - - resp = conn.getresponse() - if resp.status != httplib.OK: - raise Exception("Unexpected response from Glance %i" % resp.status) - headers = {} - for header, value in resp.getheaders(): - if header.lower().startswith("x-image-meta-property-"): - headers[header.lower()] = value - - # Toss body so connection state-machine is ready for next request/response - resp.read() - # NOTE(sirp): httplib under python2.4 won't accept a file-like object # to request conn.putrequest('PUT', '/v1/images/%s' % image_id) @@ -346,23 +327,21 @@ def _upload_tarball(staging_path, image_id, glance_host, glance_port, # 2. We're currently uploading a vanilla tarball. In order to be OVF/OVA # compliant, we'll need to embed a minimal OVF manifest as the first # file. - ovf_headers = { + + # NOTE(dprince): In order to preserve existing Glance properties + # we set X-Glance-Registry-Purge-Props on this request. + headers = { 'content-type': 'application/octet-stream', 'transfer-encoding': 'chunked', 'x-image-meta-is-public': 'False', 'x-image-meta-status': 'queued', 'x-image-meta-disk-format': 'vhd', - 'x-image-meta-container-format': 'ovf'} - - for key, value in properties.items(): - header_key = "x-image-meta-property-%s" % key.replace('_', '-') - headers[header_key] = str(value) + 'x-image-meta-container-format': 'ovf', + 'x-glance-registry-purge-props': 'False'} # If we have an auth_token, set an x-auth-token header if auth_token: - ovf_headers['x-auth-token'] = auth_token - - headers.update(ovf_headers) + headers['x-auth-token'] = auth_token for header, value in headers.iteritems(): conn.putheader(header, value) |
