From bf30ea8a8155b86a7f3c2162d9aaec452d89c1c1 Mon Sep 17 00:00:00 2001 From: Ed Cranford Date: Thu, 28 Feb 2013 17:05:30 -0600 Subject: [PATCH] Fixes data type bug in get-user call Additionally, fixes a bug in the fake guestagent causing grant permissions to persist after a user is deleted. Partially addresses bug #1132975 Change-Id: I2b6951d1569224661747b3a889c8840ce2b205fa --- reddwarf/extensions/mysql/views.py | 11 +++++------ reddwarf/tests/fakes/guestagent.py | 8 ++++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/reddwarf/extensions/mysql/views.py b/reddwarf/extensions/mysql/views.py index 2877da0b15..ddcb8088de 100644 --- a/reddwarf/extensions/mysql/views.py +++ b/reddwarf/extensions/mysql/views.py @@ -26,7 +26,7 @@ class UserView(object): "name": self.user.name, "databases": self.user.databases } - return user_dict + return {"user": user_dict} class UsersView(object): @@ -35,12 +35,11 @@ class UsersView(object): self.users = users def data(self): - data = [] - # These are model instances - for user in self.users: - data.append(UserView(user).data()) + userlist = [{"name": user.name, + "databases": user.databases} + for user in self.users] - return {"users": data} + return {"users": userlist} class UserAccessView(object): diff --git a/reddwarf/tests/fakes/guestagent.py b/reddwarf/tests/fakes/guestagent.py index d1e53348f4..ea6a8dc91b 100644 --- a/reddwarf/tests/fakes/guestagent.py +++ b/reddwarf/tests/fakes/guestagent.py @@ -64,6 +64,8 @@ class FakeGuest(object): def _create_user(self, user): self.users[user['_name']] = user + databases = [db['_name'] for db in user['_databases']] + self.grant_access(user['_name'], databases) return user def delete_database(self, database): @@ -82,8 +84,10 @@ class FakeGuest(object): }) def delete_user(self, user): - if user['_name'] in self.users: - del self.users[user['_name']] + username = user['_name'] + self.grants[(username, '%')] = set() + if username in self.users: + del self.users[username] def is_root_enabled(self): return self.root_was_enabled