From: Gord Thompson Date: Fri, 13 Nov 2020 19:13:32 +0000 (-0500) Subject: Added ssl_mode flag to mysqldb X-Git-Tag: rel_1_4_0b2~155 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e4dec934cb5215d628e02ed717454c165a33e4d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Added ssl_mode flag to mysqldb Fixes: #5692 ssl_mode flag is added to mysqldb ### Description mysqldb driver supports "ssl_mode" flag, which can be one of following values: "DISABLED", "PREFERRED", "REQUIRED", "VERIFY_CA", "VERIFY_IDENTITY". Depending on these values MySQL will behave accordingly to them. So this flag has been added to the sqlaclhemy. So in case if TLS is not supported on the server, we can drop the connection right away. Closes: #5693 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5693 Pull-request-sha: 94aed8b17d21da9a20be4b092f6a60b12f60b761 Change-Id: I7657b9c812d3a40ccacebbd8f4d5f20659d447c3 --- diff --git a/doc/build/changelog/unreleased_13/5692.rst b/doc/build/changelog/unreleased_13/5692.rst new file mode 100644 index 0000000000..475cafc596 --- /dev/null +++ b/doc/build/changelog/unreleased_13/5692.rst @@ -0,0 +1,6 @@ +.. change:: + :tags: mysql, usecase + :tickets: 5692 + + Added ``ssl_mode`` dialect keyword to MySQL dialect for use with mysqldb. + Pull request courtesy Teodor Moroz. diff --git a/lib/sqlalchemy/dialects/mysql/mysqldb.py b/lib/sqlalchemy/dialects/mysql/mysqldb.py index b20e061fb5..664c7a0474 100644 --- a/lib/sqlalchemy/dialects/mysql/mysqldb.py +++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py @@ -189,6 +189,7 @@ class MySQLDialect_mysqldb(MySQLDialect): util.coerce_kw_type(opts, "write_timeout", int) util.coerce_kw_type(opts, "client_flag", int) util.coerce_kw_type(opts, "local_infile", int) + util.coerce_kw_type(opts, "ssl_mode", str) # Note: using either of the below will cause all strings to be # returned as Unicode, both in raw SQL operations and with column # types like String and MSString. diff --git a/test/dialect/mysql/test_dialect.py b/test/dialect/mysql/test_dialect.py index abd3a491ff..d9aadb92d1 100644 --- a/test/dialect/mysql/test_dialect.py +++ b/test/dialect/mysql/test_dialect.py @@ -141,6 +141,7 @@ class DialectTest(fixtures.TestBase): make_url( "mysql://scott:tiger@localhost:3306/test" "?ssl_ca=/ca.pem&ssl_cert=/cert.pem&ssl_key=/key.pem" + "&ssl_mode=REQUIRED" ) )[1] # args that differ among mysqldb and oursql @@ -156,6 +157,7 @@ class DialectTest(fixtures.TestBase): "cert": "/cert.pem", "key": "/key.pem", }, + "ssl_mode": "REQUIRED", "host": "localhost", "user": "scott", "port": 3306,