diff options
Diffstat (limited to 'bitbake/lib/hashserv/server.py')
-rw-r--r-- | bitbake/lib/hashserv/server.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/bitbake/lib/hashserv/server.py b/bitbake/lib/hashserv/server.py index 84cf4f2283..c691df7618 100644 --- a/bitbake/lib/hashserv/server.py +++ b/bitbake/lib/hashserv/server.py | |||
@@ -124,6 +124,7 @@ class ServerClient(bb.asyncrpc.AsyncServerConnection): | |||
124 | self.max_chunk = bb.asyncrpc.DEFAULT_MAX_CHUNK | 124 | self.max_chunk = bb.asyncrpc.DEFAULT_MAX_CHUNK |
125 | self.backfill_queue = backfill_queue | 125 | self.backfill_queue = backfill_queue |
126 | self.upstream = upstream | 126 | self.upstream = upstream |
127 | self.read_only = read_only | ||
127 | 128 | ||
128 | self.handlers.update( | 129 | self.handlers.update( |
129 | { | 130 | { |
@@ -131,13 +132,15 @@ class ServerClient(bb.asyncrpc.AsyncServerConnection): | |||
131 | "get-outhash": self.handle_get_outhash, | 132 | "get-outhash": self.handle_get_outhash, |
132 | "get-stream": self.handle_get_stream, | 133 | "get-stream": self.handle_get_stream, |
133 | "get-stats": self.handle_get_stats, | 134 | "get-stats": self.handle_get_stats, |
135 | # Not always read-only, but internally checks if the server is | ||
136 | # read-only | ||
137 | "report": self.handle_report, | ||
134 | } | 138 | } |
135 | ) | 139 | ) |
136 | 140 | ||
137 | if not read_only: | 141 | if not read_only: |
138 | self.handlers.update( | 142 | self.handlers.update( |
139 | { | 143 | { |
140 | "report": self.handle_report, | ||
141 | "report-equiv": self.handle_equivreport, | 144 | "report-equiv": self.handle_equivreport, |
142 | "reset-stats": self.handle_reset_stats, | 145 | "reset-stats": self.handle_reset_stats, |
143 | "backfill-wait": self.handle_backfill_wait, | 146 | "backfill-wait": self.handle_backfill_wait, |
@@ -284,7 +287,27 @@ class ServerClient(bb.asyncrpc.AsyncServerConnection): | |||
284 | await self.socket.send("ok") | 287 | await self.socket.send("ok") |
285 | return self.NO_RESPONSE | 288 | return self.NO_RESPONSE |
286 | 289 | ||
290 | async def report_readonly(self, data): | ||
291 | method = data["method"] | ||
292 | outhash = data["outhash"] | ||
293 | taskhash = data["taskhash"] | ||
294 | |||
295 | info = await self.get_outhash(method, outhash, taskhash) | ||
296 | if info: | ||
297 | unihash = info["unihash"] | ||
298 | else: | ||
299 | unihash = data["unihash"] | ||
300 | |||
301 | return { | ||
302 | "taskhash": taskhash, | ||
303 | "method": method, | ||
304 | "unihash": unihash, | ||
305 | } | ||
306 | |||
287 | async def handle_report(self, data): | 307 | async def handle_report(self, data): |
308 | if self.read_only: | ||
309 | return await self.report_readonly(data) | ||
310 | |||
288 | outhash_data = { | 311 | outhash_data = { |
289 | "method": data["method"], | 312 | "method": data["method"], |
290 | "outhash": data["outhash"], | 313 | "outhash": data["outhash"], |