Guest User

Untitled

a guest
Feb 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #/usr/bin/env python3
  2. # ./{0} cloud.linaro.cloud cloud.csv
  3.  
  4. from collections import OrderedDict
  5.  
  6. import shade
  7. import sys
  8. import csv
  9.  
  10.  
  11. def main(cloud):
  12. cloud = shade.openstack_cloud(cloud=cloud)
  13. attrs = ('ram', 'cores', 'instances', 'floatingip', 'subnetpool')
  14. to_skip = ('service', )
  15. to_print = []
  16. for project in filter(lambda name: name not in to_skip,
  17. cloud.list_projects()):
  18. compute, network = (cloud.get_compute_quotas(project.id),
  19. cloud.get_network_quotas(project.id))
  20. project_quota = OrderedDict({'project': project.name})
  21. project_quota.update({'description': project.description})
  22.  
  23. for attribute, value in compute.items():
  24. if attribute in attrs:
  25. project_quota.update({attribute: value})
  26.  
  27. for attribute, value in network.items():
  28. if attribute in attrs:
  29. project_quota.update({attribute: value})
  30. to_print.append(project_quota)
  31.  
  32. with open(sys.argv[2], 'w', newline='') as fd:
  33. writer = csv.DictWriter(fd, fieldnames=to_print[0].keys())
  34. writer.writeheader()
  35. for row in to_print:
  36. writer.writerow(row)
  37.  
  38.  
  39. if __name__ == "__main__":
  40. main(sys.argv[1])
Add Comment
Please, Sign In to add comment