blob: 92c06cff50ba17704c3091c6c99e4032379a1605 [file] [log] [blame]
# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Definitions of sdk server client functions.
These functions send requests to the sdk server
"""
from typing import Generator, List, Optional
import grpc # pylint: disable=import-error
from chromite.contrib.sdk_server.grpc_server import sdk_server_pb2
from chromite.contrib.sdk_server.grpc_server import sdk_server_pb2_grpc
def cros_workon_info(
request: sdk_server_pb2.WorkonInfoRequest,
) -> sdk_server_pb2.WorkonInfoResponse:
"""sends grpc request for cros workon info to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.cros_workon_info(request)
return response
def cros_workon_list(
request: sdk_server_pb2.WorkonListRequest,
) -> sdk_server_pb2.WorkonListResponse:
"""sends grpc request for cros workon list to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.cros_workon_list(request)
return response
def cros_workon_start(
request: sdk_server_pb2.WorkonStartRequest,
) -> sdk_server_pb2.WorkonStartResponse:
"""sends grpc request for cros workon start to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.cros_workon_start(request)
return response
def cros_workon_stop(
request: sdk_server_pb2.WorkonStopRequest,
) -> sdk_server_pb2.WorkonStopResponse:
"""sends grpc request for cros workon stop to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.cros_workon_stop(request)
return response
def chroot_info(
request: sdk_server_pb2.ChrootInfoRequest,
) -> sdk_server_pb2.ChrootInfoResponse:
"""sends grpc request for the chroot path to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.chroot_info(request)
return response
def all_packages(
request: sdk_server_pb2.AllPackagesRequest,
) -> sdk_server_pb2.AllPackagesResponse:
"""sends grpc request for cros workon --all list to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.all_packages(request)
return response
def repo_sync(
request: sdk_server_pb2.RepoSyncRequest,
) -> sdk_server_pb2.RepoSyncResponse:
"""sends grpc request for repo sync to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
for response in stub.repo_sync(request):
yield response
def repo_status(
request: sdk_server_pb2.RepoStatusRequest,
) -> sdk_server_pb2.RepoStatusResponse:
"""sends grpc request for repo status to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.repo_status(request)
return response
def update_chroot(request: sdk_server_pb2.UpdateChrootRequest):
"""sends grpc request for update chroot to sdk server."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.update_chroot(request):
finalResp = response
yield response
yield finalResp
def create_sdk(
request: sdk_server_pb2.CreateSdkRequest,
) -> Generator[sdk_server_pb2.CreateSdkResponse, None, None]:
"""sends grpc request to sdk server for BAPI create sdk endpoint."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.create_sdk(request):
finalResp = response
yield response
yield finalResp
def replace_sdk(
request: sdk_server_pb2.ReplaceSdkRequest,
) -> Generator[sdk_server_pb2.ReplaceSdkResponse, None, None]:
"""sends grpc request to sdk server for BAPI update sdk endpoint.
See: update sdk endpoint is the create sdk endpoint with no_replace = False
"""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.replace_sdk(request):
finalResp = response
yield response
yield finalResp
def delete_sdk(
request: sdk_server_pb2.DeleteSdkRequest,
) -> Generator[sdk_server_pb2.DeleteSdkResponse, None, None]:
"""sends grpc request to sdk server for BAPI delete sdk endpoint."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.delete_sdk(request):
finalResp = response
yield response
yield finalResp
def build_packages(request: sdk_server_pb2.BuildPackagesRequest):
"""sends grpc request to sdk server for BAPI build packages.
Calls the following endpoints:
Sysroot create
install toolcahin
build packages
"""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.build_packages(request):
finalResp = response
yield response
yield finalResp
def build_image(
request: sdk_server_pb2.BuildImageRequest,
) -> Generator[sdk_server_pb2.BuildImageResponse, None, None]:
"""sends grpc request to sdk server for BAPI build image endpoint."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.build_image(request):
finalResp = response
yield response
yield finalResp
def query_boards(
request: sdk_server_pb2.QueryBoardsRequest,
) -> sdk_server_pb2.QueryBoardsResponse:
"""runs cros query boards."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.query_boards(request)
return response
def current_boards(
request: sdk_server_pb2.CurrentBoardsRequest,
) -> sdk_server_pb2.CurrentBoardsResponse:
"""returns list of boards in chroot at /build."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.current_boards(request)
return response
def get_logs(request: sdk_server_pb2.LogsRequest):
"""Sends request to get grpc server logs."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.get_logs(request)
return response
def clear_logs(request: sdk_server_pb2.ClearLogsRequest):
"""Sends request to clear grpc server logs."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.clear_logs(request)
return response
def get_methods(request: sdk_server_pb2.MethodsRequest):
"""Sends grpc request to run the BAPI MethodGet endpoint."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
response = stub.get_methods(request)
return response
def custom_endpoint(request: sdk_server_pb2.CustomRequest):
"""Sends grpc request to run a chosen BAPI endpoint."""
with grpc.insecure_channel("localhost:50051") as channel:
stub = sdk_server_pb2_grpc.sdk_server_serviceStub(channel)
finalResp = None
for response in stub.custom_endpoint(request):
finalResp = response
yield response
yield finalResp
def main(argv: Optional[List[str]] = None) -> Optional[int]:
pass