summaryrefslogtreecommitdiffstats
path: root/external/poky/bitbake/lib/prserv
diff options
context:
space:
mode:
Diffstat (limited to 'external/poky/bitbake/lib/prserv')
-rw-r--r--external/poky/bitbake/lib/prserv/__init__.py4
-rw-r--r--external/poky/bitbake/lib/prserv/db.py20
-rw-r--r--external/poky/bitbake/lib/prserv/serv.py42
3 files changed, 41 insertions, 25 deletions
diff --git a/external/poky/bitbake/lib/prserv/__init__.py b/external/poky/bitbake/lib/prserv/__init__.py
index c3cb73ad..9961040b 100644
--- a/external/poky/bitbake/lib/prserv/__init__.py
+++ b/external/poky/bitbake/lib/prserv/__init__.py
@@ -1,3 +1,7 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
__version__ = "1.0.0"
import os, time
diff --git a/external/poky/bitbake/lib/prserv/db.py b/external/poky/bitbake/lib/prserv/db.py
index 495d09f3..cb2a2461 100644
--- a/external/poky/bitbake/lib/prserv/db.py
+++ b/external/poky/bitbake/lib/prserv/db.py
@@ -1,3 +1,7 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
import logging
import os.path
import errno
@@ -67,7 +71,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
#no value found, try to insert
@@ -83,7 +87,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
raise prserv.NotFoundError
@@ -95,7 +99,7 @@ class PRTable(object):
% (self.table, self.table),
(version, pkgarch, checksum, version, pkgarch))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
#no value found, try to insert
@@ -112,7 +116,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
raise prserv.NotFoundError
@@ -128,7 +132,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
- if row != None:
+ if row is not None:
val=row[0]
else:
#no value found, try to insert
@@ -143,7 +147,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
- if row != None:
+ if row is not None:
val = row[0]
return val
@@ -166,7 +170,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table,
(version,pkgarch,checksum,value))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
return None
@@ -253,7 +257,7 @@ class PRData(object):
self.connection=sqlite3.connect(self.filename, isolation_level="EXCLUSIVE", check_same_thread = False)
self.connection.row_factory=sqlite3.Row
self.connection.execute("pragma synchronous = off;")
- self.connection.execute("PRAGMA journal_mode = WAL;")
+ self.connection.execute("PRAGMA journal_mode = MEMORY;")
self._tables={}
def disconnect(self):
diff --git a/external/poky/bitbake/lib/prserv/serv.py b/external/poky/bitbake/lib/prserv/serv.py
index 6a99728c..25dcf8a0 100644
--- a/external/poky/bitbake/lib/prserv/serv.py
+++ b/external/poky/bitbake/lib/prserv/serv.py
@@ -1,3 +1,7 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
import os,sys,logging
import signal, time
from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
@@ -239,6 +243,7 @@ class PRServer(SimpleXMLRPCServer):
try:
pid = os.fork()
if pid > 0:
+ self.socket.close() # avoid ResourceWarning in parent
return pid
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
@@ -287,10 +292,9 @@ class PRServer(SimpleXMLRPCServer):
logger.addHandler(streamhandler)
# write pidfile
- pid = str(os.getpid())
- pf = open(self.pidfile, 'w')
- pf.write("%s\n" % pid)
- pf.close()
+ pid = str(os.getpid())
+ with open(self.pidfile, 'w') as pf:
+ pf.write("%s\n" % pid)
self.work_forever()
self.delpid()
@@ -348,9 +352,8 @@ def start_daemon(dbfile, host, port, logfile):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = open(pidfile,'r')
- pid = int(pf.readline().strip())
- pf.close()
+ with open(pidfile) as pf:
+ pid = int(pf.readline().strip())
except IOError:
pid = None
@@ -375,9 +378,8 @@ def stop_daemon(host, port):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = open(pidfile,'r')
- pid = int(pf.readline().strip())
- pf.close()
+ with open(pidfile) as pf:
+ pid = int(pf.readline().strip())
except IOError:
pid = None
@@ -445,29 +447,35 @@ class PRServiceConfigError(Exception):
def auto_start(d):
global singleton
- # Shutdown any existing PR Server
- auto_shutdown()
-
host_params = list(filter(None, (d.getVar('PRSERV_HOST') or '').split(':')))
if not host_params:
+ # Shutdown any existing PR Server
+ auto_shutdown()
return None
if len(host_params) != 2:
+ # Shutdown any existing PR Server
+ auto_shutdown()
logger.critical('\n'.join(['PRSERV_HOST: incorrect format',
'Usage: PRSERV_HOST = "<hostname>:<port>"']))
raise PRServiceConfigError
- if is_local_special(host_params[0], int(host_params[1])) and not singleton:
+ if is_local_special(host_params[0], int(host_params[1])):
import bb.utils
cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE"))
if not cachedir:
logger.critical("Please set the 'PERSISTENT_DIR' or 'CACHE' variable")
raise PRServiceConfigError
- bb.utils.mkdirhier(cachedir)
dbfile = os.path.join(cachedir, "prserv.sqlite3")
logfile = os.path.join(cachedir, "prserv.log")
- singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0))
- singleton.start()
+ if singleton:
+ if singleton.dbfile != dbfile:
+ # Shutdown any existing PR Server as doesn't match config
+ auto_shutdown()
+ if not singleton:
+ bb.utils.mkdirhier(cachedir)
+ singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0))
+ singleton.start()
if singleton:
host, port = singleton.getinfo()
else: