summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Opdenacker <michael.opdenacker@bootlin.com>2024-04-12 11:02:23 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-04-14 06:31:45 +0100
commit8d78b5f9c5cee19ed98e65577bf9e3a325d859b3 (patch)
tree5a71dfb8d3d48382fcb071ef5df7d1def870e946
parent9a197e4f92b97d216dee902f16b448f55d50876b (diff)
downloadpoky-8d78b5f9c5cee19ed98e65577bf9e3a325d859b3.tar.gz
bitbake: prserv: simplify the PRServerClient() interface
serv.py: simplify the PRServerClient() interface by passing the server object instead of multiple arguments, and then retrieving the data through this object. This replicates what is done for ServerClient() in hashserv/server.py (Bitbake rev: d3be073218feb4d6e68a751832da4936da485dbc) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Cc: Joshua Watt <JPEWhacker@gmail.com> Cc: Tim Orling <ticotimo@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/prserv/serv.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py
index 5fc8863f70..28af636966 100644
--- a/bitbake/lib/prserv/serv.py
+++ b/bitbake/lib/prserv/serv.py
@@ -20,16 +20,16 @@ PIDPREFIX = "/tmp/PRServer_%s_%s.pid"
20singleton = None 20singleton = None
21 21
22class PRServerClient(bb.asyncrpc.AsyncServerConnection): 22class PRServerClient(bb.asyncrpc.AsyncServerConnection):
23 def __init__(self, socket, table, read_only): 23 def __init__(self, socket, server):
24 super().__init__(socket, 'PRSERVICE', logger) 24 super().__init__(socket, 'PRSERVICE', server.logger)
25 self.server = server
26
25 self.handlers.update({ 27 self.handlers.update({
26 'get-pr': self.handle_get_pr, 28 'get-pr': self.handle_get_pr,
27 'import-one': self.handle_import_one, 29 'import-one': self.handle_import_one,
28 'export': self.handle_export, 30 'export': self.handle_export,
29 'is-readonly': self.handle_is_readonly, 31 'is-readonly': self.handle_is_readonly,
30 }) 32 })
31 self.table = table
32 self.read_only = read_only
33 33
34 def validate_proto_version(self): 34 def validate_proto_version(self):
35 return (self.proto_version == (1, 0)) 35 return (self.proto_version == (1, 0))
@@ -38,10 +38,10 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
38 try: 38 try:
39 return await super().dispatch_message(msg) 39 return await super().dispatch_message(msg)
40 except: 40 except:
41 self.table.sync() 41 self.server.table.sync()
42 raise 42 raise
43 else: 43 else:
44 self.table.sync_if_dirty() 44 self.server.table.sync_if_dirty()
45 45
46 async def handle_get_pr(self, request): 46 async def handle_get_pr(self, request):
47 version = request['version'] 47 version = request['version']
@@ -50,7 +50,7 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
50 50
51 response = None 51 response = None
52 try: 52 try:
53 value = self.table.getValue(version, pkgarch, checksum) 53 value = self.server.table.getValue(version, pkgarch, checksum)
54 response = {'value': value} 54 response = {'value': value}
55 except prserv.NotFoundError: 55 except prserv.NotFoundError:
56 logger.error("can not find value for (%s, %s)",version, checksum) 56 logger.error("can not find value for (%s, %s)",version, checksum)
@@ -61,13 +61,13 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
61 61
62 async def handle_import_one(self, request): 62 async def handle_import_one(self, request):
63 response = None 63 response = None
64 if not self.read_only: 64 if not self.server.read_only:
65 version = request['version'] 65 version = request['version']
66 pkgarch = request['pkgarch'] 66 pkgarch = request['pkgarch']
67 checksum = request['checksum'] 67 checksum = request['checksum']
68 value = request['value'] 68 value = request['value']
69 69
70 value = self.table.importone(version, pkgarch, checksum, value) 70 value = self.server.table.importone(version, pkgarch, checksum, value)
71 if value is not None: 71 if value is not None:
72 response = {'value': value} 72 response = {'value': value}
73 73
@@ -80,7 +80,7 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
80 colinfo = request['colinfo'] 80 colinfo = request['colinfo']
81 81
82 try: 82 try:
83 (metainfo, datainfo) = self.table.export(version, pkgarch, checksum, colinfo) 83 (metainfo, datainfo) = self.server.table.export(version, pkgarch, checksum, colinfo)
84 except sqlite3.Error as exc: 84 except sqlite3.Error as exc:
85 logger.error(str(exc)) 85 logger.error(str(exc))
86 metainfo = datainfo = None 86 metainfo = datainfo = None
@@ -88,7 +88,7 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
88 return {'metainfo': metainfo, 'datainfo': datainfo} 88 return {'metainfo': metainfo, 'datainfo': datainfo}
89 89
90 async def handle_is_readonly(self, request): 90 async def handle_is_readonly(self, request):
91 return {'readonly': self.read_only} 91 return {'readonly': self.server.read_only}
92 92
93class PRServer(bb.asyncrpc.AsyncServer): 93class PRServer(bb.asyncrpc.AsyncServer):
94 def __init__(self, dbfile, read_only=False): 94 def __init__(self, dbfile, read_only=False):
@@ -98,7 +98,7 @@ class PRServer(bb.asyncrpc.AsyncServer):
98 self.read_only = read_only 98 self.read_only = read_only
99 99
100 def accept_client(self, socket): 100 def accept_client(self, socket):
101 return PRServerClient(socket, self.table, self.read_only) 101 return PRServerClient(socket, self)
102 102
103 def start(self): 103 def start(self):
104 tasks = super().start() 104 tasks = super().start()