From 4ecb5624df467e721cfc6d3d39ed4f40e0147b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Tue, 24 Mar 2015 17:58:01 +0000 Subject: [PATCH] add image_name_to_id filter --- filter_plugins/openstack.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/filter_plugins/openstack.py b/filter_plugins/openstack.py index 43073f5d63..cca097a8e6 100644 --- a/filter_plugins/openstack.py +++ b/filter_plugins/openstack.py @@ -35,9 +35,22 @@ def image_id_to_name(host_vars, user, password, tenant, auth_url): except glanceclient.exc.HTTPNotFound: raise errors.AnsibleFilterError('There is no image of id {0}'.format(host_vars)) +def image_name_to_id(host_vars, user, password, tenant, auth_url): + auth = identity.Password(auth_url=auth_url, username=user, + password=password, tenant_name=tenant) + sess = session.Session(auth=auth) + token = auth.get_token(sess) + endpoint = auth.get_endpoint(sess, service_name='glance', service_type='image') + glance = GlanceClient('2', endpoint=endpoint, token=token) + for i in glance.images.list(): + if i.name == host_vars: + return i.id + raise errors.AnsibleFilterError('There is no image of name {0}'.format(host_vars)) + class FilterModule (object): def filters(self): return {"flavor_id_to_name": flavor_id_to_name, "flavor_name_to_id": flavor_name_to_id, "image_id_to_name": image_id_to_name, + "image_name_to_id": image_name_to_id, }