summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/hashserv/__init__.py
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2023-11-03 08:26:26 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-11-09 17:33:02 +0000
commitcfbb1d2cc01565610ba06a755e10425ff2076d9b (patch)
tree0e703d7210246573d50e1b07fd505c0001a9ae17 /bitbake/lib/hashserv/__init__.py
parentbaa3e5391daf41b6dd6e914a112abb00d3517da1 (diff)
downloadpoky-cfbb1d2cc01565610ba06a755e10425ff2076d9b.tar.gz
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>
Diffstat (limited to 'bitbake/lib/hashserv/__init__.py')
-rw-r--r--bitbake/lib/hashserv/__init__.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py
index 90d8cff15f..9a8ee4e88b 100644
--- a/bitbake/lib/hashserv/__init__.py
+++ b/bitbake/lib/hashserv/__init__.py
@@ -35,15 +35,32 @@ def parse_address(addr):
35 return (ADDR_TYPE_TCP, (host, int(port))) 35 return (ADDR_TYPE_TCP, (host, int(port)))
36 36
37 37
38def create_server(addr, dbname, *, sync=True, upstream=None, read_only=False): 38def create_server(
39 addr,
40 dbname,
41 *,
42 sync=True,
43 upstream=None,
44 read_only=False,
45 db_username=None,
46 db_password=None
47):
39 def sqlite_engine(): 48 def sqlite_engine():
40 from .sqlite import DatabaseEngine 49 from .sqlite import DatabaseEngine
41 50
42 return DatabaseEngine(dbname, sync) 51 return DatabaseEngine(dbname, sync)
43 52
53 def sqlalchemy_engine():
54 from .sqlalchemy import DatabaseEngine
55
56 return DatabaseEngine(dbname, db_username, db_password)
57
44 from . import server 58 from . import server
45 59
46 db_engine = sqlite_engine() 60 if "://" in dbname:
61 db_engine = sqlalchemy_engine()
62 else:
63 db_engine = sqlite_engine()
47 64
48 s = server.Server(db_engine, upstream=upstream, read_only=read_only) 65 s = server.Server(db_engine, upstream=upstream, read_only=read_only)
49 66