]> TLD Linux GIT Repositories - tld-builder.git/blobdiff - TLD_Builder/bqueue.py
- show full time and date in HTML queue, drop filtering by requester
[tld-builder.git] / TLD_Builder / bqueue.py
index f95f0f394816a4a4a1749333544af9ff10b4c9c7..e349c0ec0313a33872c19fa4e4519ade2f3eba84 100644 (file)
@@ -3,11 +3,13 @@
 import re
 import gzip
 import time
-import StringIO
+import sys
+from io import StringIO
 import os
 import fcntl
 import string
 import tempfile
+import shutil
 
 # TLD_Builder:
 import gpg
@@ -31,7 +33,7 @@ class B_Queue:
         f.flush()
         os.fsync(f.fileno())
         f.close()
-        os.chmod(tmpfname, 0644)
+        os.chmod(tmpfname, 0o0644)
         os.rename(tmpfname, fname)
 
     def dump_html(self, fname):
@@ -43,14 +45,8 @@ class B_Queue:
     <link rel="Shortcut Icon" href="//www.tld-linux.org/favicon.ico"/>
         <title>TLD builder queue</title>
         <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="style.css">
-        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-timeago/1.4.3/jquery.timeago.min.js"></script>
-        <script type="text/javascript" src="script.js"></script>
     </head>
 <body>
-<div id="header">
-    <div id="requesters-filter">Filter by requesters:<br></div>
-</div>
 <div id="content">
 """
         )
@@ -62,7 +58,7 @@ class B_Queue:
         f.flush()
         os.fsync(f.fileno())
         f.close()
-        os.chmod(tmpfname, 0644)
+        os.chmod(tmpfname, 0o0644)
         os.rename(tmpfname, fname)
 
     # read possibly compressed, signed queue
@@ -86,13 +82,13 @@ class B_Queue:
         self._open()
         self.signers = []
         body = self.fd.read()
-        if string.strip(body) == "":
+        if body.strip() == "":
             # empty file, don't choke
             self.requests = []
             return
         try:
             self.requests = request.parse_requests(body)
-        except Exception, e:
+        except Exception as e:
             log.panic("error parsing %s: %s" % (self.name, e))
             pass
 
@@ -124,24 +120,29 @@ class B_Queue:
         fcntl.flock(self.fd, fcntl.LOCK_UN)
 
     def write_signed(self, name):
-        sio = StringIO.StringIO()
+        sio = StringIO()
         self._write_to(sio)
         sio.seek(0)
-        sio.write(gpg.sign(sio.read()))
+        sio.write(util.to_str(gpg.sign(sio.read())))
         sio.seek(0)
         (fdno, tmpname) = tempfile.mkstemp(dir=os.path.dirname(name))
         f = os.fdopen(fdno, "w")
-        if re.search(r"\.gz$", name):
-            fgz = gzip.GzipFile(filename=name, mode="w", compresslevel=6, fileobj=f)
-            util.sendfile(sio, fgz)
-            fgz.close()
-        else:
-            util.sendfile(sio, f)
+        shutil.copyfileobj(sio, f)
         f.flush()
         os.fsync(f.fileno())
         f.close()
-        os.chmod(tmpname, 0644)
-        os.rename(tmpname, name)
+        if re.search(r"\.gz$", name):
+            f_in = open(tmpname, 'rb')
+            f_out = gzip.open(name, 'wb')
+            shutil.copyfileobj(f_in, f_out)
+            f_in.close();
+            f_out.flush();
+            os.fsync(f_out.fileno())
+            f_out.close();
+            os.remove(tmpname)
+        else:
+            os.rename(tmpname, name)
+        os.chmod(name, 0o0644)
 
     def add(self, req):
         self.requests.append(req)