summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaul@openstack.org <>2011-09-16 21:12:50 -0500
committerpaul@openstack.org <>2011-09-16 21:12:50 -0500
commit358dffe941cd280a69134dc59d3670e50b811800 (patch)
treefcfac529c878f16d4232973f66a453c237b2876a
parent94e23a3def4172e58264f051a9558ba536dd1d19 (diff)
fixed grant user, added stdout support
-rwxr-xr-xbin/nova-manage26
1 files changed, 17 insertions, 9 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 60799024c..4e9307273 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -275,11 +275,13 @@ class ShellCommands(object):
arguments: path"""
exec(compile(open(path).read(), path, 'exec'), locals(), globals())
- @args('--filename', dest='filename', metavar='<path>', help='Export path')
+ @args('--filename', dest='filename', metavar='<path>', default=False,
+ help='Export file path')
def export(self, filename):
"""Export Nova users into a file that can be consumed by Keystone"""
+
def create_file(filename):
- data = generate_file()
+ data = generate_data()
with open(filename, 'w') as f:
f.write(data.getvalue())
@@ -303,21 +305,27 @@ class ShellCommands(object):
for project in am.get_projects():
for u in project.member_ids:
user = am.get_user(u)
- for role in roles:
- if user.has_role(role):
- print >> data, ("role grant '%s', '%s', '%s')," %
- (user.name, role, project.name))
- print >> data, footer
+ for role in db.user_get_roles_for_project(ctxt, u,
+ project.id):
+ print >> data, ("role grant '%s', '%s', '%s')," %
+ (user.name, role, project.name))
+ print >> data
- def generate_file():
+ def generate_data():
data = StringIO.StringIO()
am = manager.AuthManager()
tenants(data, am)
roles(data, am)
+ grant_roles(data, am)
data.seek(0)
return data
- create_file(filename)
+ ctxt = context.get_admin_context()
+ if filename:
+ create_file(filename)
+ else:
+ data = generate_data()
+ print data.getvalue()
class RoleCommands(object):