updated the namings for clients

This commit is contained in:
Ramil_Algayev 2024-12-26 01:40:09 +04:00
parent faeacf67eb
commit 5713152d03
4 changed files with 50 additions and 48 deletions

@ -8,7 +8,7 @@ message NodePubkey {
string node_pubkey = 1; string node_pubkey = 1;
} }
message RegisterNodeRequest { message RegisterNodeReq {
string node_pubkey = 1; string node_pubkey = 1;
string owner_pubkey = 2; string owner_pubkey = 2;
string ip = 3; string ip = 3;
@ -23,7 +23,7 @@ message RegisterNodeRequest {
uint32 max_ports_per_vm = 12; uint32 max_ports_per_vm = 12;
} }
message NewVMRequest { message NewVMReq {
string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID
string hostname = 2; string hostname = 2;
string admin_pubkey = 3; string admin_pubkey = 3;
@ -40,7 +40,7 @@ message NewVMRequest {
string dtrfs_sha = 14; string dtrfs_sha = 14;
} }
message UpdateVMRequest { message UpdateVMReq {
string uuid = 1; string uuid = 1;
string node_pubkey = 2; string node_pubkey = 2;
uint32 disk_size_gb = 3; uint32 disk_size_gb = 3;
@ -79,7 +79,7 @@ message ListVMContractsReq {
string node_pubkey = 2; string node_pubkey = 2;
} }
message NewVMConfirmation { message NewVMResp {
string uuid = 1; string uuid = 1;
repeated uint32 exposed_ports = 2; repeated uint32 exposed_ports = 2;
string public_ipv4 = 3; string public_ipv4 = 3;
@ -87,20 +87,21 @@ message NewVMConfirmation {
string error = 5; string error = 5;
} }
message DeletedVMUpdate { message DeleteVMReq {
string uuid = 1; string uuid = 1;
} }
service BrainDaemonService { service BrainDaemonService {
rpc RegisterNode (RegisterNodeRequest) returns (Empty); rpc RegisterNode (RegisterNodeReq) returns (Empty);
rpc GetNewVMReqs (NodePubkey) returns (stream NewVMRequest); rpc GetNewVMReqs (NodePubkey) returns (stream NewVMReq);
rpc SendVMConfirmations (stream NewVMConfirmation) returns (Empty); rpc SendNewVMResp (stream NewVMResp) returns (Empty);
rpc DeletedVMUpdates (NodePubkey) returns (stream DeletedVMUpdate); rpc GetDeleteVMReq (NodePubkey) returns (stream DeleteVMReq);
rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract);
rpc GetUpdateVM (NodePubkey) returns (stream UpdateVMRequest); rpc GetUpdateVMReq (NodePubkey) returns (stream UpdateVMReq);
rpc SendUpdateVM (stream UpdateVMResp) returns (Empty); rpc SendUpdateVMResp (stream UpdateVMResp) returns (Empty);
} }
message NodeFilters { message NodeFilters {
uint32 free_ports = 1; uint32 free_ports = 1;
bool offers_ipv4 = 2; bool offers_ipv4 = 2;
@ -121,9 +122,9 @@ message NodeListResp {
} }
service BrainCliService { service BrainCliService {
rpc CreateVMContract (NewVMRequest) returns (NewVMConfirmation); rpc CreateVMContract (NewVMReq) returns (NewVMResp);
rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract);
rpc ListNodes (NodeFilters) returns (stream NodeListResp); rpc ListNodes (NodeFilters) returns (stream NodeListResp);
rpc DeleteVM (DeletedVMUpdate) returns (Empty); rpc DeleteVM (DeleteVMReq) returns (Empty);
rpc UpdateVM (UpdateVMRequest) returns (UpdateVMResp); rpc UpdateVM (UpdateVMReq) returns (UpdateVMResp);
} }

@ -5,8 +5,8 @@ pub mod brain {
use anyhow::Result; use anyhow::Result;
use brain::{ use brain::{
brain_cli_service_client::BrainCliServiceClient, DeletedVmUpdate, ListVmContractsReq, brain_cli_service_client::BrainCliServiceClient, DeleteVmReq, ListVmContractsReq,
NewVmRequest, NodeFilters, NodeListResp, VmContract, UpdateVmRequest, NewVmReq, NodeFilters, NodeListResp, VmContract, UpdateVmReq,
}; };
use lazy_static::lazy_static; use lazy_static::lazy_static;
use log::{debug, info, warn}; use log::{debug, info, warn};
@ -65,7 +65,7 @@ async fn submit_vm_request(
mut client: BrainCliServiceClient<Channel>, mut client: BrainCliServiceClient<Channel>,
node_pubkey: &str, node_pubkey: &str,
) -> Result<()> { ) -> Result<()> {
let req = NewVmRequest { let req = NewVmReq {
uuid: String::new(), uuid: String::new(),
admin_pubkey: SECURE_PUBLIC_KEY.clone(), admin_pubkey: SECURE_PUBLIC_KEY.clone(),
node_pubkey: node_pubkey.to_string(), node_pubkey: node_pubkey.to_string(),
@ -123,7 +123,7 @@ async fn list_contracts(mut client: BrainCliServiceClient<Channel>) -> Result<Ve
} }
async fn delete_vm(mut client: BrainCliServiceClient<Channel>, uuid: &str) -> Result<()> { async fn delete_vm(mut client: BrainCliServiceClient<Channel>, uuid: &str) -> Result<()> {
let req = DeletedVmUpdate { let req = DeleteVmReq {
uuid: uuid.to_string(), uuid: uuid.to_string(),
}; };
info!("Creating VM {req:?}"); info!("Creating VM {req:?}");
@ -140,7 +140,7 @@ async fn update_vm_request(
node_pubkey: &str, node_pubkey: &str,
uuid: &str, uuid: &str,
) -> Result<()> { ) -> Result<()> {
let req = UpdateVmRequest { let req = UpdateVmReq {
uuid: uuid.to_string(), uuid: uuid.to_string(),
node_pubkey: node_pubkey.to_string(), node_pubkey: node_pubkey.to_string(),
vcpus: 4, vcpus: 4,

@ -8,7 +8,7 @@ message NodePubkey {
string node_pubkey = 1; string node_pubkey = 1;
} }
message RegisterNodeRequest { message RegisterNodeReq {
string node_pubkey = 1; string node_pubkey = 1;
string owner_pubkey = 2; string owner_pubkey = 2;
string ip = 3; string ip = 3;
@ -23,7 +23,7 @@ message RegisterNodeRequest {
uint32 max_ports_per_vm = 12; uint32 max_ports_per_vm = 12;
} }
message NewVMRequest { message NewVMReq {
string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID
string hostname = 2; string hostname = 2;
string admin_pubkey = 3; string admin_pubkey = 3;
@ -40,7 +40,7 @@ message NewVMRequest {
string dtrfs_sha = 14; string dtrfs_sha = 14;
} }
message UpdateVMRequest { message UpdateVMReq {
string uuid = 1; string uuid = 1;
string node_pubkey = 2; string node_pubkey = 2;
uint32 disk_size_gb = 3; uint32 disk_size_gb = 3;
@ -79,7 +79,7 @@ message ListVMContractsReq {
string node_pubkey = 2; string node_pubkey = 2;
} }
message NewVMConfirmation { message NewVMResp {
string uuid = 1; string uuid = 1;
repeated uint32 exposed_ports = 2; repeated uint32 exposed_ports = 2;
string public_ipv4 = 3; string public_ipv4 = 3;
@ -87,20 +87,21 @@ message NewVMConfirmation {
string error = 5; string error = 5;
} }
message DeletedVMUpdate { message DeleteVMReq {
string uuid = 1; string uuid = 1;
} }
service BrainDaemonService { service BrainDaemonService {
rpc RegisterNode (RegisterNodeRequest) returns (Empty); rpc RegisterNode (RegisterNodeReq) returns (Empty);
rpc GetNewVMReqs (NodePubkey) returns (stream NewVMRequest); rpc GetNewVMReqs (NodePubkey) returns (stream NewVMReq);
rpc SendVMConfirmations (stream NewVMConfirmation) returns (Empty); rpc SendNewVMResp (stream NewVMResp) returns (Empty);
rpc DeletedVMUpdates (NodePubkey) returns (stream DeletedVMUpdate); rpc GetDeleteVMReq (NodePubkey) returns (stream DeleteVMReq);
rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract);
rpc GetUpdateVM (NodePubkey) returns (stream UpdateVMRequest); rpc GetUpdateVMReq (NodePubkey) returns (stream UpdateVMReq);
rpc SendUpdateVM (stream UpdateVMResp) returns (Empty); rpc SendUpdateVMResp (stream UpdateVMResp) returns (Empty);
} }
message NodeFilters { message NodeFilters {
uint32 free_ports = 1; uint32 free_ports = 1;
bool offers_ipv4 = 2; bool offers_ipv4 = 2;
@ -121,9 +122,9 @@ message NodeListResp {
} }
service BrainCliService { service BrainCliService {
rpc CreateVMContract (NewVMRequest) returns (NewVMConfirmation); rpc CreateVMContract (NewVMReq) returns (NewVMResp);
rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract);
rpc ListNodes (NodeFilters) returns (stream NodeListResp); rpc ListNodes (NodeFilters) returns (stream NodeListResp);
rpc DeleteVM (DeletedVMUpdate) returns (Empty); rpc DeleteVM (DeleteVMReq) returns (Empty);
rpc UpdateVM (UpdateVMRequest) returns (UpdateVMResp); rpc UpdateVM (UpdateVMReq) returns (UpdateVMResp);
} }

@ -5,8 +5,8 @@ pub mod brain {
use anyhow::Result; use anyhow::Result;
use brain::{ use brain::{
brain_daemon_service_client::BrainDaemonServiceClient, DeletedVmUpdate, NewVmConfirmation, brain_daemon_service_client::BrainDaemonServiceClient, DeleteVmReq, NewVmResp,
NewVmRequest, NodePubkey, RegisterNodeRequest, UpdateVmRequest, UpdateVmResp NewVmReq, NodePubkey, RegisterNodeReq, UpdateVmReq, UpdateVmResp,
}; };
use lazy_static::lazy_static; use lazy_static::lazy_static;
use log::{debug, error, info, warn}; use log::{debug, error, info, warn};
@ -31,7 +31,7 @@ fn generate_random_string() -> String {
async fn listen_for_new_vm_reqs( async fn listen_for_new_vm_reqs(
mut client: BrainDaemonServiceClient<Channel>, mut client: BrainDaemonServiceClient<Channel>,
tx: Sender<NewVmRequest>, tx: Sender<NewVmReq>,
) -> Result<()> { ) -> Result<()> {
debug!("starting listen_for_new_vm_reqs"); debug!("starting listen_for_new_vm_reqs");
let node_pubkey = SECURE_PUBLIC_KEY.clone(); let node_pubkey = SECURE_PUBLIC_KEY.clone();
@ -56,18 +56,18 @@ async fn listen_for_new_vm_reqs(
async fn send_newvm_resp( async fn send_newvm_resp(
mut client: BrainDaemonServiceClient<Channel>, mut client: BrainDaemonServiceClient<Channel>,
rx: Receiver<NewVmConfirmation>, rx: Receiver<NewVmResp>,
) -> Result<()> { ) -> Result<()> {
debug!("starting send_newvm_resp stream"); debug!("starting send_newvm_resp stream");
let rx_stream = ReceiverStream::new(rx); let rx_stream = ReceiverStream::new(rx);
client.send_vm_confirmations(rx_stream).await?; client.send_new_vm_resp(rx_stream).await?;
debug!("send_newvm_resp is about to exit"); debug!("send_newvm_resp is about to exit");
Ok(()) Ok(())
} }
async fn register_node(mut client: BrainDaemonServiceClient<Channel>) { async fn register_node(mut client: BrainDaemonServiceClient<Channel>) {
debug!("Starting node registration..."); debug!("Starting node registration...");
let req = RegisterNodeRequest { let req = RegisterNodeReq {
node_pubkey: SECURE_PUBLIC_KEY.clone(), node_pubkey: SECURE_PUBLIC_KEY.clone(),
owner_pubkey: "IamTheOwnerOf".to_string() + &SECURE_PUBLIC_KEY, owner_pubkey: "IamTheOwnerOf".to_string() + &SECURE_PUBLIC_KEY,
ip: "10.0.10.1".to_string(), ip: "10.0.10.1".to_string(),
@ -92,12 +92,12 @@ async fn register_node(mut client: BrainDaemonServiceClient<Channel>) {
async fn listen_for_deleted_vms( async fn listen_for_deleted_vms(
mut client: BrainDaemonServiceClient<Channel>, mut client: BrainDaemonServiceClient<Channel>,
tx: Sender<DeletedVmUpdate>, tx: Sender<DeleteVmReq>,
) -> Result<()> { ) -> Result<()> {
debug!("starting listen_for_new_vm_reqs"); debug!("starting listen_for_new_vm_reqs");
let node_pubkey = SECURE_PUBLIC_KEY.clone(); let node_pubkey = SECURE_PUBLIC_KEY.clone();
let mut grpc_stream = client let mut grpc_stream = client
.deleted_vm_updates(NodePubkey { node_pubkey }) .get_delete_vm_req(NodePubkey { node_pubkey })
.await? .await?
.into_inner(); .into_inner();
while let Some(stream_update) = grpc_stream.next().await { while let Some(stream_update) = grpc_stream.next().await {
@ -117,12 +117,12 @@ async fn listen_for_deleted_vms(
async fn listen_for_update_vm_reqs( async fn listen_for_update_vm_reqs(
mut client: BrainDaemonServiceClient<Channel>, mut client: BrainDaemonServiceClient<Channel>,
tx: Sender<UpdateVmRequest>, tx: Sender<UpdateVmReq>,
) -> Result<()> { ) -> Result<()> {
debug!("starting listen_for_update_vm_reqs"); debug!("starting listen_for_update_vm_reqs");
let node_pubkey = SECURE_PUBLIC_KEY.clone(); let node_pubkey = SECURE_PUBLIC_KEY.clone();
let mut grpc_stream = client let mut grpc_stream = client
.get_update_vm(NodePubkey { node_pubkey }) .get_update_vm_req(NodePubkey { node_pubkey })
.await? .await?
.into_inner(); .into_inner();
while let Some(stream_update) = grpc_stream.next().await { while let Some(stream_update) = grpc_stream.next().await {
@ -141,7 +141,7 @@ async fn listen_for_update_vm_reqs(
} }
async fn handle_update_vm_requests( async fn handle_update_vm_requests(
mut req: Receiver<UpdateVmRequest>, mut req: Receiver<UpdateVmReq>,
resp: Sender<UpdateVmResp> resp: Sender<UpdateVmResp>
) { ) {
info!("Started to handle update vm requests."); info!("Started to handle update vm requests.");
@ -163,12 +163,12 @@ async fn send_updatevm_resp(
) -> Result<()> { ) -> Result<()> {
debug!("starting send_updatevm_resp stream"); debug!("starting send_updatevm_resp stream");
let rx_stream = ReceiverStream::new(rx); let rx_stream = ReceiverStream::new(rx);
client.send_update_vm(rx_stream).await?; client.send_update_vm_resp(rx_stream).await?;
debug!("send_updatevm_resp is about to exit"); debug!("send_updatevm_resp is about to exit");
Ok(()) Ok(())
} }
async fn handle_vm_requests(mut req: Receiver<NewVmRequest>, resp: Sender<NewVmConfirmation>) { async fn handle_vm_requests(mut req: Receiver<NewVmReq>, resp: Sender<NewVmResp>) {
info!("Started to handle vm requests. 1 out of 5 requests will return error."); info!("Started to handle vm requests. 1 out of 5 requests will return error.");
let mut i = 0; let mut i = 0;
while let Some(new_vm) = req.recv().await { while let Some(new_vm) = req.recv().await {
@ -185,7 +185,7 @@ async fn handle_vm_requests(mut req: Receiver<NewVmRequest>, resp: Sender<NewVmC
false => String::new(), false => String::new(),
}; };
if i != 3 { if i != 3 {
let confirmation = NewVmConfirmation { let confirmation = NewVmResp{
uuid: new_vm.uuid, uuid: new_vm.uuid,
exposed_ports, exposed_ports,
public_ipv4, public_ipv4,
@ -195,7 +195,7 @@ async fn handle_vm_requests(mut req: Receiver<NewVmRequest>, resp: Sender<NewVmC
info!("Sending NewVmConfirmation: {confirmation:?}"); info!("Sending NewVmConfirmation: {confirmation:?}");
let _ = resp.send(confirmation).await; let _ = resp.send(confirmation).await;
} else { } else {
let confirmation = NewVmConfirmation { let confirmation = NewVmResp {
uuid: new_vm.uuid, uuid: new_vm.uuid,
exposed_ports: Vec::new(), exposed_ports: Vec::new(),
public_ipv4: String::new(), public_ipv4: String::new(),