gRPC Database

This module implements a gRPC-based communication system for database operations.

It provides: - gRPC server for receiving mission status updates - gRPC client for sending database responses - Threaded server implementation for concurrent operations - Comprehensive logging and error handling

Classes:

DBReqCommunicationService: Implementation of gRPC servicer for handling database requests

Functions:

run_db_server: Starts and manages the gRPC server instance run_db_client: Handles client-side communication with Mission Management system start_grpc_db: Initializes and starts the gRPC server thread

class grpc_db.DBReqCommunicationService(*args: Any, **kwargs: Any)[source]

Bases: DBReqCommunicationServicer

gRPC servicer class handling database request operations.

db_logger

Configured logger instance for database operations

Type:

logging.Logger

__init__(db_logger: Logger) None[source]

Initialize the servicer with a logger instance.

Parameters:

db_logger (logging.Logger) – Configured logger for database operations

SendDBReq(request: Any, context: grpc.ServicerContext) GRPC.db_request_pb2.DBReqResponse[source]

Handle incoming database request messages.

Parameters:
  • request (Any) – Incoming gRPC request message

  • context (grpc.ServicerContext) – gRPC connection context

Returns:

Response confirmation message

Return type:

DBReqResponse

Raises:

grpc.RpcError – If critical communication errors occur

grpc_db.run_db_server(db_logger: Logger) None[source]

Start and manage the gRPC server instance.

Parameters:

db_logger (logging.Logger) – Configured logger for server operations

Raises:

grpc.RpcError – If server startup or communication errors occur

grpc_db.run_db_client(db_response: List[Any], db_logger: Logger) str | None[source]

Send database response to Mission Management system.

Parameters:
  • db_response (List[Any]) – List of response items to send

  • db_logger (logging.Logger) – Configured logger for client operations

Returns:

Confirmation message if successful, None otherwise

Return type:

Optional[str]

grpc_db.start_grpc_db(db_logger: Logger) None[source]

Initialize and start the gRPC server in a daemon thread.

Parameters:

db_logger (logging.Logger) – Configured logger for database operations