summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyen Van Trung <trungnvfet@outlook.com>2019-09-14 12:28:28 +0700
committerLingxian Kong <anlin.kong@gmail.com>2019-12-20 03:17:11 +0000
commit83ab7910015c299c486249db1d51fb41c7cd1452 (patch)
treea641a3d41232ac159de7126f0f032fcfcdf1483e
parent560857232af665d49ab030920d9cc7872ccadbd8 (diff)
downloadtrove-83ab7910015c299c486249db1d51fb41c7cd1452.tar.gz
Fix an error when generate root password during DB initialization
This issue was occurring with percona database (v5.6). Error logs: `An error occurred preparing datastore: (pymysql.err.InternalError) (1372, 'Password hash should be a 41-digit hexadecimal number'` Tested with re-enable root function for both v5.6 and v5.7. Change-Id: Ied67c7c243d3f8c644708548cce71ea2aa3cf2e7 Story: #2006546 Task: #36629 (cherry picked from commit e84718c7824b4567d8eb53346fc04fee94187e37)
-rw-r--r--trove/guestagent/common/sql_query.py2
-rw-r--r--trove/tests/unittests/guestagent/test_dbaas.py6
-rw-r--r--trove/tests/unittests/guestagent/test_query.py2
3 files changed, 5 insertions, 5 deletions
diff --git a/trove/guestagent/common/sql_query.py b/trove/guestagent/common/sql_query.py
index 37dce923..2ad291e9 100644
--- a/trove/guestagent/common/sql_query.py
+++ b/trove/guestagent/common/sql_query.py
@@ -382,7 +382,7 @@ class SetPassword(object):
'user_host': self.host,
'new_password': self.new_password}
return ("SET PASSWORD FOR '%(user_name)s'@'%(user_host)s' = "
- "'%(new_password)s';" % properties)
+ "PASSWORD('%(new_password)s');" % properties)
class DropUser(object):
diff --git a/trove/tests/unittests/guestagent/test_dbaas.py b/trove/tests/unittests/guestagent/test_dbaas.py
index 76b0eff8..b2de1527 100644
--- a/trove/tests/unittests/guestagent/test_dbaas.py
+++ b/trove/tests/unittests/guestagent/test_dbaas.py
@@ -468,13 +468,13 @@ class MySqlAdminTest(trove_testtools.TestCase):
def test_change_passwords(self):
user = [{"name": "test_user", "host": "%", "password": "password"}]
- expected = ("SET PASSWORD FOR 'test_user'@'%' = 'password';")
+ expected = ("SET PASSWORD FOR 'test_user'@'%' = PASSWORD('password');")
with patch.object(self.mock_client, 'execute') as mock_execute:
self.mySqlAdmin.change_passwords(user)
self._assert_execute_call(expected, mock_execute)
def test_update_attributes_password(self):
- expected = ("SET PASSWORD FOR 'test_user'@'%' = 'password';")
+ expected = ("SET PASSWORD FOR 'test_user'@'%' = PASSWORD('password');")
user = MagicMock()
user.name = "test_user"
user.host = "%"
@@ -1409,7 +1409,7 @@ class MySqlAppTest(trove_testtools.TestCase):
self.mySqlApp.secure_root()
update_root_password, _ = self.mock_execute.call_args_list[0]
update_expected = ("SET PASSWORD FOR 'root'@'localhost' = "
- "'some_password';")
+ "PASSWORD('some_password');")
remove_root, _ = self.mock_execute.call_args_list[1]
remove_expected = ("DELETE FROM mysql.user WHERE "
diff --git a/trove/tests/unittests/guestagent/test_query.py b/trove/tests/unittests/guestagent/test_query.py
index 991cca7b..162d4470 100644
--- a/trove/tests/unittests/guestagent/test_query.py
+++ b/trove/tests/unittests/guestagent/test_query.py
@@ -403,7 +403,7 @@ class SetPasswordTest(QueryTestBase):
uu = sql_query.SetPassword(user=username, host=hostname,
new_password=new_password)
self.assertEqual("SET PASSWORD FOR 'root'@'localhost' = "
- "'new_password';", str(uu))
+ "PASSWORD('new_password');", str(uu))
class DropUserTest(QueryTestBase):