[Debconf-video-commits] r337 - in package/branches/pycon09: debian src src/debconfvideo

benh at alioth.debian.org benh at alioth.debian.org
Fri Mar 20 03:24:15 UTC 2009


Author: benh
Date: 2009-03-20 03:24:15 +0000 (Fri, 20 Mar 2009)
New Revision: 337

Added:
   package/branches/pycon09/src/debconfvideo/
   package/branches/pycon09/src/debconfvideo/__init__.py
   package/branches/pycon09/src/debconfvideo/database.py
Modified:
   package/branches/pycon09/debian/rules
   package/branches/pycon09/src/dc-do-transcoding
   package/branches/pycon09/src/dc-import-recordings
   package/branches/pycon09/src/dc-publish
   package/branches/pycon09/src/pycon-import-events
Log:
Unify boilerplate config and database connection code.


Modified: package/branches/pycon09/debian/rules
===================================================================
--- package/branches/pycon09/debian/rules	2009-03-19 01:07:22 UTC (rev 336)
+++ package/branches/pycon09/debian/rules	2009-03-20 03:24:15 UTC (rev 337)
@@ -24,9 +24,10 @@
 	# debconf-video-encode: meta-packge only
 	mkdir -p -m 755 debian/debconf-video-encode
 	# debconf-video-store: scripts for the storage server
-	mkdir -p -m 755 debian/debconf-video-store/usr/bin debian/debconf-video-store/usr/share/debconf-video-store
+	mkdir -p -m 755 debian/debconf-video-store/usr/bin debian/debconf-video-store/usr/share/debconf-video-store debian/debconf-video-store/usr/share/debconf-video-store/debconfvideo
 	install src/dc-import-recordings src/dc-do-transcoding src/dc-publish src/pycon-import-events debian/debconf-video-store/usr/bin/
 	install -m 644 src/shellconfig.py debian/debconf-video-store/usr/share/debconf-video-store/
+	install -m 644 src/debconfvideo/*.py debian/debconf-video-store/usr/share/debconf-video-store/debconfvideo/
 
 binary-indep: install
 	dh_testdir -i

Modified: package/branches/pycon09/src/dc-do-transcoding
===================================================================
--- package/branches/pycon09/src/dc-do-transcoding	2009-03-19 01:07:22 UTC (rev 336)
+++ package/branches/pycon09/src/dc-do-transcoding	2009-03-20 03:24:15 UTC (rev 337)
@@ -1,12 +1,15 @@
 #!/usr/bin/python2.4
 
 import os.path
-import pgdb
 import re
 import select
 import sys
 import time
 
+if __name__ == '__main__':
+    sys.path.insert(0, '/usr/share/debconf-video-store')
+from debconfvideo import config, database
+
 # metadata
 author = 'PyCon video team'
 organisation = 'Python Software Foundation'
@@ -27,7 +30,7 @@
         'filename_extension',
         'priority', 'recording_time'
         ]
-    cur = get_cursor()
+    cur = database.get_cursor()
     cur.execute('SELECT ' + ', '.join(attrs) + """ FROM
 ((video_recording JOIN video_event_recording
   ON video_recording.id = video_event_recording.recording_id)
@@ -58,7 +61,7 @@
     return jobs
 
 def mark_job_done(job, file_status_code):
-    cur = get_cursor()
+    cur = database.get_cursor()
     cur.execute("""
 INSERT INTO video_target_file(event_recording_id, target_format_id,
                               file_status_id, generated_time)
@@ -179,26 +182,6 @@
             return "'" + arg.replace("'", "'\\''") + "'"
     return ' '.join(escape(arg) for arg in argv)
 
-_connection = None
-
-def get_cursor():
-    global _connection
-    if _connection:
-        try:
-            cur = _connection.cursor()
-            # Check whether connection is working.
-            cur.execute('SELECT 1')
-            cur.fetchall()
-            return cur
-        except pgdb.DatabaseError:
-            pass
-    # (Re)connect to database.
-    _connection = pgdb.connect(dsn=config['DATABASE_DSN'],
-                               user=config.get('DATABASE_USER'),
-                               password=config.get('DATABASE_PASSWORD'))
-    cur = _connection.cursor()
-    return cur
-
 def main(pretend=False):
     host_procs = []
     for host_nproc in config['ENCODING_HOSTS'].split(' '):
@@ -212,7 +195,7 @@
     jobs_by_host_proc = {}
     jobs_by_key = {}
 
-    cur = get_cursor()
+    cur = database.get_cursor()
 
     while True:
         # Generate a queue of jobs.  Remove the jobs we're running.
@@ -310,9 +293,6 @@
 
 if __name__ == '__main__':
     try:
-        sys.path.insert(0, '/usr/share/debconf-video-store')
-        import shellconfig
-        config = shellconfig.read_file('/etc/default/debconf-video')
         main(pretend=('--dry-run' in sys.argv[1:]))
     except Exception, e:
         print >>sys.stderr, 'ERROR:', e.__class__.__name__, e

Modified: package/branches/pycon09/src/dc-import-recordings
===================================================================
--- package/branches/pycon09/src/dc-import-recordings	2009-03-19 01:07:22 UTC (rev 336)
+++ package/branches/pycon09/src/dc-import-recordings	2009-03-20 03:24:15 UTC (rev 337)
@@ -2,17 +2,17 @@
 
 import glob
 import os
-import pgdb
 import sys
 import time
 
+if __name__ == '__main__':
+    sys.path.insert(0, '/usr/share/debconf-video-store')
+from debconfvideo import config, database
+
 dif_bytes_per_second = 300 * 150 * 80
 
-def main(config, do_delete):
-    conn = pgdb.connect(dsn=config['DATABASE_DSN'],
-                        user=config.get('DATABASE_USER'),
-                        password=config.get('DATABASE_PASSWORD'))
-    cur = conn.cursor()
+def main(do_delete):
+    cur = database.get_cursor()
 
     # Find conference id.
     cur.execute('SELECT conference_id FROM conference WHERE title=%(title)s',
@@ -86,10 +86,7 @@
 
 if __name__ == '__main__':
     try:
-        sys.path.insert(0, '/usr/share/debconf-video-store')
-        import shellconfig
-        main(shellconfig.read_file('/etc/default/debconf-video'),
-             do_delete=('--delete' in sys.argv[1:]))
+        main(do_delete=('--delete' in sys.argv[1:]))
     except Exception, e:
         print >>sys.stderr, 'ERROR:', e.__class__.__name__, e
         sys.exit(2)

Modified: package/branches/pycon09/src/dc-publish
===================================================================
--- package/branches/pycon09/src/dc-publish	2009-03-19 01:07:22 UTC (rev 336)
+++ package/branches/pycon09/src/dc-publish	2009-03-20 03:24:15 UTC (rev 337)
@@ -3,10 +3,13 @@
 import mx.DateTime
 import os
 import os.path
-import pgdb
 import re
 import sys
 
+if __name__ == '__main__':
+    sys.path.insert(0, '/usr/share/debconf-video-store')
+from debconfvideo import config, database
+
 # metadata
 author = 'DebConf video team'
 licence = 'DebConf video licence; http://meetings-archive.debian.net/pub/debian-meetings/LICENCE'
@@ -122,11 +125,8 @@
                + file_names
                + [config['PUBLICATION_PATH']])
 
-def main(config):
-    conn = pgdb.connect(dsn=config['DATABASE_DSN'],
-                        user=config.get('DATABASE_USER'),
-                        password=config.get('DATABASE_PASSWORD'))
-    cur = conn.cursor()
+def main():
+    cur = database.get_cursor()
 
     conference_title = config['CONFERENCE_NAME']
     cur.execute('SELECT conference_id FROM conference'
@@ -164,6 +164,4 @@
         cur.execute("COMMIT")
 
 if __name__ == '__main__':
-    sys.path.insert(0, '/usr/share/debconf-video-store')
-    import shellconfig
-    main(shellconfig.read_file('/etc/default/debconf-video'))
+    main()

Added: package/branches/pycon09/src/debconfvideo/__init__.py
===================================================================
--- package/branches/pycon09/src/debconfvideo/__init__.py	                        (rev 0)
+++ package/branches/pycon09/src/debconfvideo/__init__.py	2009-03-20 03:24:15 UTC (rev 337)
@@ -0,0 +1,5 @@
+import shellconfig
+
+__all__ = ['config', 'database']
+
+config = shellconfig.read_file('/etc/default/debconf-video')

Added: package/branches/pycon09/src/debconfvideo/database.py
===================================================================
--- package/branches/pycon09/src/debconfvideo/database.py	                        (rev 0)
+++ package/branches/pycon09/src/debconfvideo/database.py	2009-03-20 03:24:15 UTC (rev 337)
@@ -0,0 +1,24 @@
+import pgdb
+
+from debconfvideo import config
+
+_connection = None
+
+def get_cursor():
+    global _connection
+    if _connection:
+        try:
+            cur = _connection.cursor()
+            # Check whether connection is working.
+            cur.execute('BEGIN')
+            cur.execute('SELECT 1')
+            cur.fetchall()
+            return cur
+        except pgdb.DatabaseError:
+            pass
+    # (Re)connect to database.
+    _connection = pgdb.connect(dsn=config['DATABASE_DSN'],
+                               user=config.get('DATABASE_USER'),
+                               password=config.get('DATABASE_PASSWORD'))
+    cur = _connection.cursor()
+    return cur

Modified: package/branches/pycon09/src/pycon-import-events
===================================================================
--- package/branches/pycon09/src/pycon-import-events	2009-03-19 01:07:22 UTC (rev 336)
+++ package/branches/pycon09/src/pycon-import-events	2009-03-20 03:24:15 UTC (rev 337)
@@ -13,19 +13,13 @@
 import urlparse
 import vobject
 
+if __name__ == '__main__':
+    sys.path.insert(0, '/usr/share/debconf-video-store')
+from debconfvideo import config, database
+
 TALKS_SOURCE_URL = 'http://us.pycon.org/2009/conference/schedule/ical/'
 TUTORIALS_SOURCE_URL = 'http://us.pycon.org/2009/tutorials/schedule/'
 
-_connection = None
-
-def get_cursor():
-    global _connection
-    if not _connection:
-        _connection = pgdb.connect(dsn=config['DATABASE_DSN'],
-                                   user=config.get('DATABASE_USER'),
-                                   password=config.get('DATABASE_PASSWORD'))
-    return _connection.cursor()
-
 def get_events_vobject(url):
     data = urllib2.urlopen(url).read()
     for node in vobject.readOne(data).getChildren():
@@ -146,7 +140,7 @@
         yield event
 
 def main(pretend=False):
-    cur = get_cursor()
+    cur = database.get_cursor()
 
     for event in itertools.chain(get_talks(), get_tutorials()):
         # Insert room if necessary
@@ -191,9 +185,6 @@
 
 if __name__ == '__main__':
     try:
-        sys.path.insert(0, '/usr/share/debconf-video-store')
-        import shellconfig
-        config = shellconfig.read_file('/etc/default/debconf-video')
         main(pretend=('--dry-run' in sys.argv[1:]))
     except Exception, e:
         print >>sys.stderr, 'ERROR:', e.__class__.__name__, e




More information about the Debconf-video-commits mailing list