Revert "[autotest] Remove unnecessary tko/db construction logic"
This reverts commit 027561f6e13704357744b035917284f44b3de1b7.
Reason for revert: https://crbug.com/860166
Original change's description:
> [autotest] Remove unnecessary tko/db construction logic
>
> There was exactly one db_type implemented but we were redirecting via
> some string formatted imports to get to it. Yuck.
>
> Also, implementing logic via magic functions implemented in subclasses
> is bad.
>
> BUG=chromium:852083
> TEST=pre-cq passes.
>
> Change-Id: I5029cbe63e2c4e8d093f3776848fff83103e75df
> Reviewed-on: https://chromium-review.googlesource.com/1123026
> Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
> Tested-by: Aviv Keshet <akeshet@chromium.org>
> Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Bug: chromium:852083
Change-Id: I5d376dd7ff1903e36c5085955285b4810c1a494a
Reviewed-on: https://chromium-review.googlesource.com/1126419
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Commit-Queue: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Trybot-Ready: Jason Clinton <jclinton@chromium.org>
diff --git a/tko/db_mysql.py b/tko/db_mysql.py
new file mode 100644
index 0000000..02b1e96
--- /dev/null
+++ b/tko/db_mysql.py
@@ -0,0 +1,19 @@
+import common
+import MySQLdb as driver
+import db
+from autotest_lib.client.common_lib.cros import retry
+
+class db_mysql(db.db_sql):
+ @retry.retry(db._get_error_class("OperationalError"), timeout_min=10,
+ delay_sec=5)
+ def connect(self, host, database, user, password, port):
+ connection_args = {
+ 'host': host,
+ 'user': user,
+ 'db': database,
+ 'passwd': password,
+ 'connect_timeout': 20,
+ }
+ if port:
+ connection_args['port'] = int(port)
+ return driver.connect(**connection_args)