diff options
author | Nguyen Van Trung <trungnvfet@outlook.com> | 2019-09-14 12:28:28 +0700 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2019-12-20 03:17:11 +0000 |
commit | 83ab7910015c299c486249db1d51fb41c7cd1452 (patch) | |
tree | a641a3d41232ac159de7126f0f032fcfcdf1483e | |
parent | 560857232af665d49ab030920d9cc7872ccadbd8 (diff) | |
download | trove-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.py | 2 | ||||
-rw-r--r-- | trove/tests/unittests/guestagent/test_dbaas.py | 6 | ||||
-rw-r--r-- | trove/tests/unittests/guestagent/test_query.py | 2 |
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): |