1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

bitbake: hashserv: Add SQLalchemy backend

Adds an SQLAlchemy backend to the server. While this database backend is
slower than the more direct sqlite backend, it easily supports just
about any SQL server, which is useful for large scale deployments.

(Bitbake rev: e0b73466dd7478c77c82f46879246c1b68b228c0)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2023-11-03 08:26:26 -06:00
committed by Richard Purdie
parent baa3e5391d
commit cfbb1d2cc0
5 changed files with 362 additions and 5 deletions
+18 -1
View File
@@ -33,7 +33,7 @@ class HashEquivalenceTestSetup(object):
def start_server(self, dbpath=None, upstream=None, read_only=False, prefunc=server_prefunc):
self.server_index += 1
if dbpath is None:
dbpath = os.path.join(self.temp_dir.name, "db%d.sqlite" % self.server_index)
dbpath = self.make_dbpath()
def cleanup_server(server):
if server.process.exitcode is not None:
@@ -53,6 +53,9 @@ class HashEquivalenceTestSetup(object):
return server
def make_dbpath(self):
return os.path.join(self.temp_dir.name, "db%d.sqlite" % self.server_index)
def start_client(self, server_address):
def cleanup_client(client):
client.close()
@@ -517,6 +520,20 @@ class TestHashEquivalenceWebsocketServer(HashEquivalenceTestSetup, HashEquivalen
return "ws://%s:0" % host
class TestHashEquivalenceWebsocketsSQLAlchemyServer(TestHashEquivalenceWebsocketServer):
def setUp(self):
try:
import sqlalchemy
import aiosqlite
except ImportError as e:
self.skipTest(str(e))
super().setUp()
def make_dbpath(self):
return "sqlite+aiosqlite:///%s" % os.path.join(self.temp_dir.name, "db%d.sqlite" % self.server_index)
class TestHashEquivalenceExternalServer(HashEquivalenceTestSetup, HashEquivalenceCommonTests, unittest.TestCase):
def start_test_server(self):
if 'BB_TEST_HASHSERV' not in os.environ: