diff options
author | Michael Opdenacker <michael.opdenacker@bootlin.com> | 2024-04-12 11:02:29 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-04-12 18:04:00 +0100 |
commit | 0087b3e7291428f80ede303e0edcfb114611eed5 (patch) | |
tree | 4bf64f846082443b3c6148f060c01b35eba53211 /bitbake/lib/prserv/serv.py | |
parent | 0154036c061b1d50531bf6a1ba9dd4e226f77a54 (diff) | |
download | poky-0087b3e7291428f80ede303e0edcfb114611eed5.tar.gz |
bitbake: prserv: add extra requests
Useful for connecting a PR server to an upstream one
- "test-package" checks whether the specified package
version and arch is known in the database.
- "test-pr" checks a specified output hash is found in the database.
Otherwise it returns 'None' instead of a new value.
- "max-package-pr" returns the highest PR number for
(version, arch) entries in the database, and None if not found
Add new DB functions supporting the above, plus test_value()
which tells whether a given value is available for the specified
package and architecture.
(Bitbake rev: c65b5d9056e3f8b9869b3fdc8689f43a0b83b10e)
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>
Diffstat (limited to 'bitbake/lib/prserv/serv.py')
-rw-r--r-- | bitbake/lib/prserv/serv.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py index efb2e0cf93..86bd3bb75f 100644 --- a/bitbake/lib/prserv/serv.py +++ b/bitbake/lib/prserv/serv.py | |||
@@ -26,6 +26,9 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection): | |||
26 | 26 | ||
27 | self.handlers.update({ | 27 | self.handlers.update({ |
28 | "get-pr": self.handle_get_pr, | 28 | "get-pr": self.handle_get_pr, |
29 | "test-pr": self.handle_test_pr, | ||
30 | "test-package": self.handle_test_package, | ||
31 | "max-package-pr": self.handle_max_package_pr, | ||
29 | "import-one": self.handle_import_one, | 32 | "import-one": self.handle_import_one, |
30 | "export": self.handle_export, | 33 | "export": self.handle_export, |
31 | "is-readonly": self.handle_is_readonly, | 34 | "is-readonly": self.handle_is_readonly, |
@@ -43,6 +46,31 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection): | |||
43 | else: | 46 | else: |
44 | self.server.table.sync_if_dirty() | 47 | self.server.table.sync_if_dirty() |
45 | 48 | ||
49 | async def handle_test_pr(self, request): | ||
50 | '''Finds the PR value corresponding to the request. If not found, returns None and doesn't insert a new value''' | ||
51 | version = request["version"] | ||
52 | pkgarch = request["pkgarch"] | ||
53 | checksum = request["checksum"] | ||
54 | |||
55 | value = self.server.table.find_value(version, pkgarch, checksum) | ||
56 | return {"value": value} | ||
57 | |||
58 | async def handle_test_package(self, request): | ||
59 | '''Tells whether there are entries for (version, pkgarch) in the db. Returns True or False''' | ||
60 | version = request["version"] | ||
61 | pkgarch = request["pkgarch"] | ||
62 | |||
63 | value = self.server.table.test_package(version, pkgarch) | ||
64 | return {"value": value} | ||
65 | |||
66 | async def handle_max_package_pr(self, request): | ||
67 | '''Finds the greatest PR value for (version, pkgarch) in the db. Returns None if no entry was found''' | ||
68 | version = request["version"] | ||
69 | pkgarch = request["pkgarch"] | ||
70 | |||
71 | value = self.server.table.find_max_value(version, pkgarch) | ||
72 | return {"value": value} | ||
73 | |||
46 | async def handle_get_pr(self, request): | 74 | async def handle_get_pr(self, request): |
47 | version = request["version"] | 75 | version = request["version"] |
48 | pkgarch = request["pkgarch"] | 76 | pkgarch = request["pkgarch"] |