From 74b90e8e9e9b5e11a7975c055838f7ed94949065 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 16 Mar 2015 09:24:12 -0400 Subject: [PATCH] Handle image name for boot from volume OpenStack apparenty has moments where it can return the image info as a unicode string, primarily when the server was booted from volume. Change-Id: I40c6796ab9d0cb2bc999b0d91313e62f10b1fccf --- shade/meta.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/shade/meta.py b/shade/meta.py index 90a60d511..55f13760b 100644 --- a/shade/meta.py +++ b/shade/meta.py @@ -112,10 +112,15 @@ def get_hostvars_from_server(cloud, server, mounts=None): if flavor_name: server_vars['flavor']['name'] = flavor_name - image_id = server.image['id'] - image_name = cloud.get_image_name(image_id) - if image_name: - server_vars['image']['name'] = image_name + # OpenStack can return image as a string when you've booted from volume + if unicode(server.image) == server.image: + image_id = server.image + else: + image_id = server.image.get('id', None) + if image_id: + image_name = cloud.get_image_name(image_id) + if image_name: + server_vars['image']['name'] = image_name volumes = [] for vol in cloud.get_volumes(server):