ppf/new: Add str2bool method to store *_enabled values as booleans (as used in databa...
authorMariana Mărășoiu <mariana.marasoiu@gmail.com>
Fri, 16 Sep 2011 00:18:31 +0000 (03:18 +0300)
committerMariana Mărășoiu <mariana.marasoiu@gmail.com>
Fri, 16 Sep 2011 00:18:31 +0000 (03:18 +0300)
ppf/new/storage.py

index d7b2f47..1453940 100644 (file)
@@ -432,6 +432,7 @@ class TreeTextFileAccess(FileAccess):
                     msg.listen_port))
         f.close()
 
+
 class DatabaseAccess(SwarmDataAccess):
 
     """Subclass of SwarmDataAccess providing functions for database usage."""
@@ -454,6 +455,7 @@ class DatabaseAccess(SwarmDataAccess):
         self.cursor.close()
         self.conn.close()
 
+
 class SQLiteDatabaseAccess(DatabaseAccess):
 
     """Child class of DatabaseAccess for SQLite access."""
@@ -479,6 +481,12 @@ class SQLiteDatabaseAccess(DatabaseAccess):
             self.columns = self.columns + data_name + ", "
             self.values = self.values + "'" + str(data_value) + "'" + ", "
 
+    def str2bool(self, s):
+        """Convert a string to boolean (0 or 1)."""
+        if s is not None:
+            i = s.lower() in ("yes", "true", "t", "1")
+            return int(i)
+
     def add_swarm(self, swarm):
         """Insert swarm in database. swarm type is Swarm."""
         self.reset_query()
@@ -513,10 +521,12 @@ class SQLiteDatabaseAccess(DatabaseAccess):
         self.append_to_insert_query("ds_limit", session.ds_limit)
         self.append_to_insert_query("us_limit", session.us_limit)
         self.append_to_insert_query("start_time", session.start_time)
-        self.append_to_insert_query("dht_enabled", session.dht_enabled)
-        self.append_to_insert_query("pxe_enabled", session.pxe_enabled)
+        self.append_to_insert_query("dht_enabled",
+                                    self.str2bool(session.dht_enabled))
+        self.append_to_insert_query("pxe_enabled",
+                                    self.str2bool(session.pxe_enabled))
         self.append_to_insert_query("streaming_enabled",
-                                    session.streaming_enabled)
+                                    self.str2bool(session.streaming_enabled))
         self.append_to_insert_query("features", session.features)
         self.append_to_insert_query("description", session.description)
 
@@ -652,6 +662,12 @@ class MySQLDatabaseAccess(DatabaseAccess):
             self.columns = self.columns + data_name + ", "
             self.values = self.values + "'" + str(data_value) + "'" + ", "
 
+    def str2bool(self, s):
+        """Convert a string to boolean (0 or 1)."""
+        if s is not None:
+            i = s.lower() in ("yes", "true", "t", "1")
+            return int(i)
+
     def add_swarm(self, swarm):
         """Insert swarm in database. swarm type is Swarm."""
         self.reset_query()
@@ -686,10 +702,12 @@ class MySQLDatabaseAccess(DatabaseAccess):
         self.append_to_insert_query("ds_limit", session.ds_limit)
         self.append_to_insert_query("us_limit", session.us_limit)
         self.append_to_insert_query("start_time", session.start_time)
-        self.append_to_insert_query("dht_enabled", session.dht_enabled)
-        self.append_to_insert_query("pxe_enabled", session.pxe_enabled)
+        self.append_to_insert_query("dht_enabled",
+                                    self.str2bool(session.dht_enabled))
+        self.append_to_insert_query("pxe_enabled",
+                                    self.str2bool(session.pxe_enabled))
         self.append_to_insert_query("streaming_enabled",
-                                    session.streaming_enabled)
+                                    self.str2bool(session.streaming_enabled))
         self.append_to_insert_query("features", session.features)
         self.append_to_insert_query("description", session.description)