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:
DBReqCommunicationServicergRPC 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]