[gentoo-commits] proj/layman:master commit in: layman/db_modules/sqlite_db/, layman/db_modules/json_db/, layman/, ...

2015-08-15 Thread Devan Franchini
commit: a7a267a46660e168bc1d46c4b39c4e89bed20767
Author: Devan Franchini twitch153 AT gentoo DOT org
AuthorDate: Sat Aug 15 08:00:35 2015 +
Commit: Devan Franchini twitch153 AT gentoo DOT org
CommitDate: Sat Aug 15 08:00:37 2015 +
URL:https://gitweb.gentoo.org/proj/layman.git/commit/?id=a7a267a4

Adds remove parameter to database write() function

This parameter has been added in order to obtain proper
parallelization support for layman sqlite databases. With this
additional parameter it prompts the sqlite db module's write function to
simply return when removing an overlay, preventing it from re-adding any
database entires and causing oddness, run-time errors, or other unwanted
badness.

 layman/db.py |  2 +-
 layman/db_modules/json_db/json_db.py |  2 +-
 layman/db_modules/sqlite_db/sqlite_db.py | 11 +++
 layman/db_modules/xml_db/xml_db.py   |  2 +-
 layman/dbbase.py |  4 ++--
 5 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/layman/db.py b/layman/db.py
index 673e6bf..a7ed1ce 100644
--- a/layman/db.py
+++ b/layman/db.py
@@ -149,7 +149,7 @@ class DB(DbBase):
 overlay.delete(self.config['storage'])
 repo_ok = self.repo_conf.delete(overlay)
 self.remove(overlay, self.path)
-self.write(self.path)
+self.write(self.path, remove=True)
 else:
 self.output.error('No local overlay named ' + overlay.name + '!')
 return False

diff --git a/layman/db_modules/json_db/json_db.py 
b/layman/db_modules/json_db/json_db.py
index d466385..70e41d5 100644
--- a/layman/db_modules/json_db/json_db.py
+++ b/layman/db_modules/json_db/json_db.py
@@ -112,7 +112,7 @@ class DBHandler(object):
 del self.overlays[overlay.name]
 
 
-def write(self, path):
+def write(self, path, remove=False):
 '''
 Write the list of overlays to a file.
 '''

diff --git a/layman/db_modules/sqlite_db/sqlite_db.py 
b/layman/db_modules/sqlite_db/sqlite_db.py
index 6619699..22ae5f3 100644
--- a/layman/db_modules/sqlite_db/sqlite_db.py
+++ b/layman/db_modules/sqlite_db/sqlite_db.py
@@ -283,6 +283,9 @@ class DBHandler(object):
 owner_id = 0
 source_ids = []
 
+if overlay.name in self.overlays:
+del self.overlays[overlay.name]
+
 with self.__connect__(path) as connection:
 cursor = connection.cursor()
 
@@ -318,14 +321,14 @@ class DBHandler(object):
 
 connection.commit()
 
-if overlay.name in self.overlays:
-del self.overlays[overlay.name]
-
 
-def write(self, path):
+def write(self, path, remove=False):
 '''
 Write the list of overlays to the database.
 '''
+if remove:
+return
+
 try:
 with self.__connect__(path) as connection:
 for overlay in self.overlays:

diff --git a/layman/db_modules/xml_db/xml_db.py 
b/layman/db_modules/xml_db/xml_db.py
index 316d8f9..fbd7a6a 100644
--- a/layman/db_modules/xml_db/xml_db.py
+++ b/layman/db_modules/xml_db/xml_db.py
@@ -157,7 +157,7 @@ class DBHandler(object):
 del self.overlays[overlay.name]
 
 
-def write(self, path):
+def write(self, path, remove=False):
 '''
 Write the list of overlays to a file.
 '''

diff --git a/layman/dbbase.py b/layman/dbbase.py
index cecbf5c..dc089d8 100644
--- a/layman/dbbase.py
+++ b/layman/dbbase.py
@@ -197,7 +197,7 @@ class DbBase(object):
 db_ctl.read_db(path, text=text)
 
 
-def write(self, path, migrate_type=None):
+def write(self, path, remove=False, migrate_type=None):
 '''
 Write the list of overlays to a file.
 '''
@@ -212,7 +212,7 @@ class DbBase(object):
  self.ignore,
  self.ignore_init_read_errors)
 
-db_ctl.write(path)
+db_ctl.write(path, remove=remove)
 
 
 def remove(self, overlay, path):



[gentoo-commits] proj/layman:master commit in: layman/db_modules/sqlite_db/

2015-08-13 Thread Devan Franchini
commit: 3e582a86a5389c5013fd0b8c5a6cc964d3252a2c
Author: Devan Franchini twitch153 AT gentoo DOT org
AuthorDate: Thu Aug 13 07:04:40 2015 +
Commit: Devan Franchini twitch153 AT gentoo DOT org
CommitDate: Thu Aug 13 07:04:44 2015 +
URL:https://gitweb.gentoo.org/proj/layman.git/commit/?id=3e582a86

sqlite_db.py: Modifies owner information gathering method

Due to the fact that including the owner name isn't necessary layman
needed to modify the way it gathered owner information to prevent
run-time errors.

 layman/db_modules/sqlite_db/sqlite_db.py | 23 +--
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/layman/db_modules/sqlite_db/sqlite_db.py 
b/layman/db_modules/sqlite_db/sqlite_db.py
index 14bfa25..6619699 100644
--- a/layman/db_modules/sqlite_db/sqlite_db.py
+++ b/layman/db_modules/sqlite_db/sqlite_db.py
@@ -169,15 +169,15 @@ class DBHandler(object):
 WHERE Overlay_ID = ?''', (overlay_id,))
 overlay['source'] = cursor.fetchall()
 
-cursor.execute('''SELECT Owner_Name, Owner_Email FROM 
+cursor.execute('''SELECT Owner_Email, Owner_Name FROM 
 Overlay_Owner JOIN Overlay USING (Overlay_ID) JOIN Owner USING 
 (Owner_ID) WHERE Overlay_ID = ?''', (overlay_id,))
-owner_info = cursor.fetchall()
+owner_info = cursor.fetchall()[0]
 
-if len(owner_info):
-owner_info = owner_info[0]
-overlay['owner_name'] = owner_info[0]
-overlay['owner_email'] = owner_info[1]
+overlay['owner_email'] = owner_info[0]
+
+if len(owner_info)  1:
+overlay['owner_name'] = owner_info[1]
 
 cursor.execute('''SELECT Description FROM Description JOIN 
 Overlay USING (Overlay_ID) WHERE Overlay_ID = ?''',
@@ -187,12 +187,7 @@ class DBHandler(object):
 overlay['status'] = overlay_info[3]
 overlay['quality'] = overlay_info[4]
 overlay['priority'] = overlay_info[2]
-
-if overlay_info[7]:
-overlay['license'] = overlay_info[7]
-else:
-overlay['license'] = None
-
+overlay['license'] = overlay_info[7]
 overlay['homepage'] = overlay_info[5]
 overlay['IRC'] = overlay_info[6]
 
@@ -248,8 +243,8 @@ class DBHandler(object):
 VALUES ( ?, ? )''', (overlay.owner_name, overlay.owner_email,))
 connection.commit()
 
-cursor.execute('''SELECT Owner_ID from Owner WHERE Owner_Name = ?;''',
-(overlay.owner_name,))
+cursor.execute('''SELECT Owner_ID from Owner WHERE Owner_Email = ?;''',
+(overlay.owner_email,))
 owner_id = cursor.fetchone()[0]
 
 for source in overlay.sources:



[gentoo-commits] proj/layman:master commit in: layman/db_modules/sqlite_db/

2015-08-05 Thread Devan Franchini
commit: 59ce97acb46ddef1b564ab4032c145ed70c92427
Author: Devan Franchini twitch153 AT gentoo DOT org
AuthorDate: Wed Aug  5 06:22:24 2015 +
Commit: Devan Franchini twitch153 AT gentoo DOT org
CommitDate: Wed Aug  5 06:22:31 2015 +
URL:https://gitweb.gentoo.org/proj/layman.git/commit/?id=59ce97ac

sqlite_db.py: read_db() connects to database with with command

 layman/db_modules/sqlite_db/sqlite_db.py | 107 ---
 1 file changed, 54 insertions(+), 53 deletions(-)

diff --git a/layman/db_modules/sqlite_db/sqlite_db.py 
b/layman/db_modules/sqlite_db/sqlite_db.py
index aef9661..14bfa25 100644
--- a/layman/db_modules/sqlite_db/sqlite_db.py
+++ b/layman/db_modules/sqlite_db/sqlite_db.py
@@ -148,63 +148,64 @@ class DBHandler(object):
 '''
 Read the overlay definitions from the database and generate overlays.
 '''
-connection = self.__connect__(path)
-cursor = connection.cursor()
+cursor = None
 overlay_id = None
 overlay = {}
 
-cursor.execute('''SELECT Overlay_ID, Name, Priority, Status, Quality, 
-Homepage, IRC, License FROM Overlay''')
-overlays_info = cursor.fetchall()
-connection.commit()
+with self.__connect__(path) as connection:
+cursor = connection.cursor()
+cursor.execute('''SELECT Overlay_ID, Name, Priority, Status, 
+Quality, Homepage, IRC, License FROM Overlay''')
+overlays_info = cursor.fetchall()
+connection.commit()
 
-for overlay_info in overlays_info:
-overlay = {}
-overlay_id = overlay_info[0]
-overlay['name'] = overlay_info[1]
-
-cursor.execute('''SELECT URL, Type, Branch FROM Overlay_Source 
-JOIN Overlay USING (Overlay_ID) JOIN Source USING (Source_ID) 
-WHERE Overlay_ID = ?''', (overlay_id,))
-overlay['source'] = cursor.fetchall()
-
-cursor.execute('''SELECT Owner_Name, Owner_Email FROM 
-Overlay_Owner JOIN Overlay USING (Overlay_ID) JOIN Owner USING 
-(Owner_ID) WHERE Overlay_ID = ?''', (overlay_id,))
-owner_info = cursor.fetchall()
-
-if len(owner_info):
-owner_info = owner_info[0]
-overlay['owner_name'] = owner_info[0]
-overlay['owner_email'] = owner_info[1]
-
-cursor.execute('''SELECT Description FROM Description JOIN Overlay 
-USING (Overlay_ID) WHERE Overlay_ID = ?''', (overlay_id,))
-overlay['description'] = cursor.fetchall()[0]
-
-overlay['status'] = overlay_info[3]
-overlay['quality'] = overlay_info[4]
-overlay['priority'] = overlay_info[2]
-
-if overlay_info[7]:
-overlay['license'] = overlay_info[7]
-else:
-overlay['license'] = None
-
-overlay['homepage'] = overlay_info[5]
-overlay['IRC'] = overlay_info[6]
-
-cursor.execute('''SELECT Feed FROM Feed JOIN Overlay USING 
-(Overlay_ID) WHERE Overlay_ID = ?''', (overlay_id,))
-overlay['feed'] = cursor.fetchall()
-
-if len(overlay['feed']):
-overlay['feed'] = overlay['feed'][0]
-
-self.overlays[overlay_info[1]] = Overlay(self.config,
- ovl_dict=overlay,
- ignore=self.ignore)
-connection.close()
+for overlay_info in overlays_info:
+overlay = {}
+overlay_id = overlay_info[0]
+overlay['name'] = overlay_info[1]
+
+cursor.execute('''SELECT URL, Type, Branch FROM Overlay_Source 
+JOIN Overlay USING (Overlay_ID) JOIN Source USING (Source_ID) 
+WHERE Overlay_ID = ?''', (overlay_id,))
+overlay['source'] = cursor.fetchall()
+
+cursor.execute('''SELECT Owner_Name, Owner_Email FROM 
+Overlay_Owner JOIN Overlay USING (Overlay_ID) JOIN Owner USING 
+(Owner_ID) WHERE Overlay_ID = ?''', (overlay_id,))
+owner_info = cursor.fetchall()
+
+if len(owner_info):
+owner_info = owner_info[0]
+overlay['owner_name'] = owner_info[0]
+overlay['owner_email'] = owner_info[1]
+
+cursor.execute('''SELECT Description FROM Description JOIN 
+Overlay USING (Overlay_ID) WHERE Overlay_ID = ?''',
+(overlay_id,))
+overlay['description'] = cursor.fetchall()[0]
+
+overlay['status'] = overlay_info[3]
+overlay['quality'] = overlay_info[4]
+overlay['priority'] = overlay_info[2]
+
+if overlay_info[7]:
+overlay['license'] =