diff --git a/brain.proto b/brain.proto index 92a219c..5fd8227 100644 --- a/brain.proto +++ b/brain.proto @@ -77,6 +77,7 @@ message VMContract { message ListVMContractsReq { string admin_pubkey = 1; string node_pubkey = 2; + string uuid = 3; } message NewVmRespIP { diff --git a/src/grpc.rs b/src/grpc.rs index 98f1963..f6abaf1 100644 --- a/src/grpc.rs +++ b/src/grpc.rs @@ -340,7 +340,13 @@ impl BrainCliService for BrainCliMock { ) -> Result, Status> { let req = req.into_inner(); info!("CLI {} requested ListVMContractsStream", req.admin_pubkey); - let contracts = self.data.find_contracts_by_admin_pubkey(&req.admin_pubkey); + let contracts = match req.uuid.is_empty() { + false => match self.data.find_contract_by_uuid(&req.uuid) { + Some(contract) => vec![contract], + None => Vec::new(), + }, + true => self.data.find_contracts_by_admin_pubkey(&req.admin_pubkey), + }; let (tx, rx) = mpsc::channel(6); tokio::spawn(async move { for contract in contracts {