From c49e156ed03265bd4773d01790f8d4691afd1956 Mon Sep 17 00:00:00 2001
From: Chris Hines <chris.hines@monash.edu>
Date: Fri, 16 Oct 2015 11:19:29 +1100
Subject: [PATCH] fixes to dynamicInventory again

---
 dynamicInventory | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/dynamicInventory b/dynamicInventory
index 5d1b5311..5ada7f57 100755
--- a/dynamicInventory
+++ b/dynamicInventory
@@ -92,7 +92,7 @@ class OpenStackConnection:
                             instance_ids.extend(self.recurse_resources(stack=i,resource=r))
 
                 nc=self.nc
-#                cc=self.cc
+                cc=self.cc
 		inventory = {}
 		inventory['_meta'] = { 'hostvars': {} }
 		for server in nc.servers.list():
@@ -114,8 +114,6 @@ class OpenStackConnection:
                                     else:
                                             inventory[server.metadata['ansible_host_group']] = [hostname]
                             #print dir(server)
-                            if len(server.to_dict()['os-extended-volumes:volumes_attached']) >0:
-                                pass
                             # Set the other host variables
                             inventory['_meta']['hostvars'][hostname] = {}
                             inventory['_meta']['hostvars'][hostname]['ansible_ssh_host'] = server.networks.values()[0][0]
@@ -124,6 +122,13 @@ class OpenStackConnection:
                                 if 'ansible_ssh' in key:
                                     inventory['_meta']['hostvars'][hostname][key] = server.metadata[key]
                             inventory['_meta']['hostvars'][hostname]['ansible_ssh_user'] = 'ec2-user'
+                            for vol in server.to_dict()['os-extended-volumes:volumes_attached']:
+                                for cv in cc.volumes.findall():
+                                    if cv.id == vol['id']:
+                                        devname = '/dev/disk/by-id/virtio-'+cv.id[0:20]
+                                        if not 'ansible_host_volumes' in inventory['_meta']['hostvars'][hostname]:
+                                            inventory['_meta']['hostvars'][hostname]['ansible_host_volumes']={}
+                                        inventory['_meta']['hostvars'][hostname]['ansible_host_volumes'][cv.display_name]={'uuid':vol['id'],'dev':devname}
 		print json.dumps(inventory)
 
 if __name__ == "__main__":
-- 
GitLab