Signed-off-by: Cleber Rosa <[email protected]>
---
 installation_support/database_manager/base.py  |  7 +++++++
 installation_support/database_manager/dummy.py |  8 ++++++++
 installation_support/database_manager/mysql.py | 15 +++++++++++++++
 3 files changed, 30 insertions(+)

diff --git a/installation_support/database_manager/base.py 
b/installation_support/database_manager/base.py
index d45cc23..e6e86d3 100644
--- a/installation_support/database_manager/base.py
+++ b/installation_support/database_manager/base.py
@@ -43,6 +43,13 @@ class BaseDatabaseManager(object):
         self.host = host
 
 
+    def run_sql(self, sql):
+        '''
+        Runs the given SQL code blindly
+        '''
+        return NotImplementedError
+
+
     def config_as_dict(self):
         '''
         Returns relevant database configuration as a dictionary
diff --git a/installation_support/database_manager/dummy.py 
b/installation_support/database_manager/dummy.py
index 8012ef3..012b9ec 100644
--- a/installation_support/database_manager/dummy.py
+++ b/installation_support/database_manager/dummy.py
@@ -38,8 +38,16 @@ class DummyDatabaseManager(base.BaseDatabaseManager):
     def grant_privileges(self):
         return True
 
+
     def setup(self):
         '''
         Performs all the steps neede to completely setup a database instance
         '''
         return True
+
+
+    def run_sql(self, sql):
+        '''
+        Runs the given SQL code blindly
+        '''
+        return True
diff --git a/installation_support/database_manager/mysql.py 
b/installation_support/database_manager/mysql.py
index 258029a..70a3263 100644
--- a/installation_support/database_manager/mysql.py
+++ b/installation_support/database_manager/mysql.py
@@ -29,6 +29,21 @@ class MySQLDatabaseManager(base.BaseDatabaseManager):
             logging.error("Failed to logon as the database admin user")
 
 
+    def run_sql(self, sql):
+        '''
+        Runs the given SQL code blindly
+        '''
+        self.admin_connection.select_db(self.name)
+        cursor = self.admin_connection.cursor()
+        try:
+            cursor.execute(sql)
+        except (MySQLdb.ProgrammingError, MySQLdb.OperationalError):
+            self.admin_connection.rollback()
+            return False
+
+        return True
+
+
     def exists(self):
         '''
         Checks if the database instance exists
-- 
1.7.11.7

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to