diff options
| author | paul@openstack.org <> | 2011-09-16 21:12:50 -0500 |
|---|---|---|
| committer | paul@openstack.org <> | 2011-09-16 21:12:50 -0500 |
| commit | 358dffe941cd280a69134dc59d3670e50b811800 (patch) | |
| tree | fcfac529c878f16d4232973f66a453c237b2876a | |
| parent | 94e23a3def4172e58264f051a9558ba536dd1d19 (diff) | |
fixed grant user, added stdout support
| -rwxr-xr-x | bin/nova-manage | 26 |
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): |
