mirror of
https://git.yoctoproject.org/poky
synced 2026-02-07 01:06:37 +01:00
Rewrites the asyncrpc client and server code to make it possible to have other transport backends that are not stream based (e.g. websockets which are message based). The connection handling classes are now shared between both the client and server to make it easier to implement new transport mechanisms (Bitbake rev: 2aaeae53696e4c2f13a169830c3b7089cbad6eca) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
#
|
|
# Copyright BitBake Contributors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
|
|
import logging
|
|
import bb.asyncrpc
|
|
|
|
logger = logging.getLogger("BitBake.PRserv")
|
|
|
|
class PRAsyncClient(bb.asyncrpc.AsyncClient):
|
|
def __init__(self):
|
|
super().__init__('PRSERVICE', '1.0', logger)
|
|
|
|
async def getPR(self, version, pkgarch, checksum):
|
|
response = await self.invoke(
|
|
{'get-pr': {'version': version, 'pkgarch': pkgarch, 'checksum': checksum}}
|
|
)
|
|
if response:
|
|
return response['value']
|
|
|
|
async def importone(self, version, pkgarch, checksum, value):
|
|
response = await self.invoke(
|
|
{'import-one': {'version': version, 'pkgarch': pkgarch, 'checksum': checksum, 'value': value}}
|
|
)
|
|
if response:
|
|
return response['value']
|
|
|
|
async def export(self, version, pkgarch, checksum, colinfo):
|
|
response = await self.invoke(
|
|
{'export': {'version': version, 'pkgarch': pkgarch, 'checksum': checksum, 'colinfo': colinfo}}
|
|
)
|
|
if response:
|
|
return (response['metainfo'], response['datainfo'])
|
|
|
|
async def is_readonly(self):
|
|
response = await self.invoke(
|
|
{'is-readonly': {}}
|
|
)
|
|
if response:
|
|
return response['readonly']
|
|
|
|
class PRClient(bb.asyncrpc.Client):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self._add_methods('getPR', 'importone', 'export', 'is_readonly')
|
|
|
|
def _get_async_client(self):
|
|
return PRAsyncClient()
|