diff options
Diffstat (limited to 'bitbake/lib/prserv/client.py')
-rw-r--r-- | bitbake/lib/prserv/client.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/bitbake/lib/prserv/client.py b/bitbake/lib/prserv/client.py new file mode 100644 index 0000000000..8471ee3046 --- /dev/null +++ b/bitbake/lib/prserv/client.py | |||
@@ -0,0 +1,71 @@ | |||
1 | # | ||
2 | # Copyright BitBake Contributors | ||
3 | # | ||
4 | # SPDX-License-Identifier: GPL-2.0-only | ||
5 | # | ||
6 | |||
7 | import logging | ||
8 | import bb.asyncrpc | ||
9 | |||
10 | logger = logging.getLogger("BitBake.PRserv") | ||
11 | |||
12 | class PRAsyncClient(bb.asyncrpc.AsyncClient): | ||
13 | def __init__(self): | ||
14 | super().__init__("PRSERVICE", "1.0", logger) | ||
15 | |||
16 | async def getPR(self, version, pkgarch, checksum): | ||
17 | response = await self.invoke( | ||
18 | {"get-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}} | ||
19 | ) | ||
20 | if response: | ||
21 | return response["value"] | ||
22 | |||
23 | async def test_pr(self, version, pkgarch, checksum): | ||
24 | response = await self.invoke( | ||
25 | {"test-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}} | ||
26 | ) | ||
27 | if response: | ||
28 | return response["value"] | ||
29 | |||
30 | async def test_package(self, version, pkgarch): | ||
31 | response = await self.invoke( | ||
32 | {"test-package": {"version": version, "pkgarch": pkgarch}} | ||
33 | ) | ||
34 | if response: | ||
35 | return response["value"] | ||
36 | |||
37 | async def max_package_pr(self, version, pkgarch): | ||
38 | response = await self.invoke( | ||
39 | {"max-package-pr": {"version": version, "pkgarch": pkgarch}} | ||
40 | ) | ||
41 | if response: | ||
42 | return response["value"] | ||
43 | |||
44 | async def importone(self, version, pkgarch, checksum, value): | ||
45 | response = await self.invoke( | ||
46 | {"import-one": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "value": value}} | ||
47 | ) | ||
48 | if response: | ||
49 | return response["value"] | ||
50 | |||
51 | async def export(self, version, pkgarch, checksum, colinfo): | ||
52 | response = await self.invoke( | ||
53 | {"export": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "colinfo": colinfo}} | ||
54 | ) | ||
55 | if response: | ||
56 | return (response["metainfo"], response["datainfo"]) | ||
57 | |||
58 | async def is_readonly(self): | ||
59 | response = await self.invoke( | ||
60 | {"is-readonly": {}} | ||
61 | ) | ||
62 | if response: | ||
63 | return response["readonly"] | ||
64 | |||
65 | class PRClient(bb.asyncrpc.Client): | ||
66 | def __init__(self): | ||
67 | super().__init__() | ||
68 | self._add_methods("getPR", "test_pr", "test_package", "importone", "export", "is_readonly") | ||
69 | |||
70 | def _get_async_client(self): | ||
71 | return PRAsyncClient() | ||