Merge "Fix MySQL user list pagination"

This commit is contained in:
Jenkins 2016-02-16 20:58:26 +00:00 committed by Gerrit Code Review
commit 3a44619af3
2 changed files with 15 additions and 5 deletions

View File

@ -133,6 +133,7 @@ def load_mysqld_options():
class BaseMySqlAppStatus(service.BaseDbStatus):
@classmethod
def get(cls):
if not cls._instance:
@ -488,6 +489,9 @@ class BaseMySqlAdmin(object):
LIMIT :limit;
'''
LOG.debug("---Listing Users---")
ignored_user_names = "'%s'" % "', '".join(cfg.get_ignored_users())
LOG.debug("The following user names are on ignore list and will "
"be omitted from the listing: %s" % ignored_user_names)
users = []
with self.local_sql_client(self.mysql_app.get_engine()) as client:
mysql_user = models.MySQLUser()
@ -500,7 +504,9 @@ class BaseMySqlAdmin(object):
oq = sql_query.Query() # Outer query.
oq.columns = ['User', 'Host', 'Marker']
oq.tables = ['(%s) as innerquery' % innerquery]
oq.where = ["Host != 'localhost'"]
oq.where = [
"Host != 'localhost'",
"User NOT IN (" + ignored_user_names + ")"]
oq.order = ['Marker']
if marker:
oq.where.append("Marker %s '%s'" %

View File

@ -647,7 +647,8 @@ class MySqlAdminTest(trove_testtools.TestCase):
expected = ("SELECT User, Host, Marker FROM"
" (SELECT User, Host, CONCAT(User, '@', Host) as Marker"
" FROM mysql.user ORDER BY User, Host) as innerquery WHERE"
" Host != 'localhost' ORDER BY Marker;"
" Host != 'localhost' AND User NOT IN ('os_admin', 'root')"
" ORDER BY Marker;"
)
with patch.object(self.mock_client, 'execute') as mock_execute:
@ -659,7 +660,8 @@ class MySqlAdminTest(trove_testtools.TestCase):
expected = ("SELECT User, Host, Marker FROM"
" (SELECT User, Host, CONCAT(User, '@', Host) as Marker"
" FROM mysql.user ORDER BY User, Host) as innerquery WHERE"
" Host != 'localhost' ORDER BY Marker"
" Host != 'localhost' AND User NOT IN ('os_admin', 'root')"
" ORDER BY Marker"
" LIMIT " + str(limit + 1) + ";"
)
@ -672,7 +674,8 @@ class MySqlAdminTest(trove_testtools.TestCase):
expected = ("SELECT User, Host, Marker FROM"
" (SELECT User, Host, CONCAT(User, '@', Host) as Marker"
" FROM mysql.user ORDER BY User, Host) as innerquery WHERE"
" Host != 'localhost' AND Marker > '" + marker + "'"
" Host != 'localhost' AND User NOT IN ('os_admin', 'root')"
" AND Marker > '" + marker + "'"
" ORDER BY Marker;"
)
@ -685,7 +688,8 @@ class MySqlAdminTest(trove_testtools.TestCase):
expected = ("SELECT User, Host, Marker FROM"
" (SELECT User, Host, CONCAT(User, '@', Host) as Marker"
" FROM mysql.user ORDER BY User, Host) as innerquery WHERE"
" Host != 'localhost' AND Marker >= '" + marker + "'"
" Host != 'localhost' AND User NOT IN ('os_admin', 'root')"
" AND Marker >= '" + marker + "'"
" ORDER BY Marker;"
)