import copy import json from rally import api from rally.common import objects from rally import osclients from rally.plugins.openstack.cleanup import manager from rally.plugins.openstack.context.keystone import users from rally.plugins.openstack.services.identity import identity from rally.plugins.openstack.wrappers import keystone deployment_uuid = "b9129340-5c6a-4e66-8882-90b255a894c0" task_uuid = "6581512b-8a95-4096-8452-eaf242fca491" rapi = api.API() deployment = rapi.deployment.get(deployment_uuid) #admin = deployment["admin"] admin = objects.Credential(**deployment["admin"]) #keystone = identity.Identity(osclients.Clients(admin)) #projects = [p for p in keystone.list_projects() # if users.UserGenerator.name_matches_object(p.name, task_id=task_uuid)] #users = [u for u in keystone.list_users() # if users.UserGenerator.name_matches_object(u.name, task_id=task_uuid)] projects = [keystone.Project(name="c_rally_6581512b_ZQPiZJv6", id="0f70c92ce3c444a48c6f86a1f5012a3a", domain_id="default"), keystone.Project(name="c_rally_6581512b_YdqkRdvf", id="bb9fb63e2307428ea83f7eb0e2bc1d2b", domain_id="default"), keystone.Project(name="c_rally_6581512b_HUJ4UZ0D", id="f5139a02ec7846fc82fce0d631e01dfa", domain_id="default")] users =[keystone.User(name="c_rally_6581512b_6Rjat0Za", id="195ab1dbb08e4602838ee360e803a7c4", project_id="f5139a02ec7846fc82fce0d631e01dfa", domain_id="default"), keystone.User(name="c_rally_6581512b_2p2TPz1K", id="297782332ed04e7d9f9a086394913ee8", project_id="bb9fb63e2307428ea83f7eb0e2bc1d2b", domain_id="default")] print("Projects created by rally:") for p in projects: print("Name: %s\tID:%s" % (p.name, p.id)) print("\n\nUsers created by rally:") for u in users: print("Name: %s\tID:%s" % (u.name, u.id)) #raise Exception("Remove this line when use ensure that list of projects and users are not 'real'") def make_user(project): user = copy.deepcopy(admin) user.tenant_name = project.name print user return {"credential": user, "tenant_id": project.id} specific_users = [make_user(p) for p in projects] SERVICES_TO_CLEANUP = ["nova", "neutron"] # modify list of services manager.cleanup(names=SERVICES_TO_CLEANUP, admin={"credential": admin}, users=specific_users)