updater #1
| @ -8,7 +8,7 @@ message NodePubkey { | ||||
|   string node_pubkey = 1; | ||||
| } | ||||
| 
 | ||||
| message RegisterNodeRequest {  | ||||
| message RegisterNodeReq {  | ||||
|   string node_pubkey = 1; | ||||
|   string owner_pubkey = 2; | ||||
|   string ip = 3; | ||||
| @ -23,7 +23,7 @@ message RegisterNodeRequest { | ||||
|   uint32 max_ports_per_vm = 12; | ||||
| } | ||||
| 
 | ||||
| message NewVMRequest { | ||||
| message NewVMReq { | ||||
|   string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID | ||||
|   string hostname = 2; | ||||
|   string admin_pubkey = 3; | ||||
| @ -40,7 +40,7 @@ message NewVMRequest { | ||||
|   string dtrfs_sha = 14; | ||||
| } | ||||
| 
 | ||||
| message UpdateVMRequest { | ||||
| message UpdateVMReq { | ||||
|   string uuid = 1; | ||||
|   string node_pubkey = 2; | ||||
|   uint32 disk_size_gb = 3; | ||||
| @ -79,7 +79,7 @@ message ListVMContractsReq { | ||||
|   string node_pubkey = 2; | ||||
| } | ||||
| 
 | ||||
| message NewVMConfirmation { | ||||
| message NewVMResp { | ||||
|   string uuid = 1; | ||||
|   repeated uint32 exposed_ports = 2; | ||||
|   string public_ipv4 = 3; | ||||
| @ -87,20 +87,21 @@ message NewVMConfirmation { | ||||
|   string error = 5; | ||||
| } | ||||
| 
 | ||||
| message DeletedVMUpdate { | ||||
| message DeleteVMReq { | ||||
|   string uuid = 1; | ||||
| } | ||||
| 
 | ||||
| service BrainDaemonService { | ||||
|   rpc RegisterNode (RegisterNodeRequest) returns (Empty); | ||||
|   rpc GetNewVMReqs (NodePubkey) returns (stream NewVMRequest); | ||||
|   rpc SendVMConfirmations (stream NewVMConfirmation) returns (Empty); | ||||
|   rpc DeletedVMUpdates (NodePubkey) returns (stream DeletedVMUpdate); | ||||
|   rpc RegisterNode (RegisterNodeReq) returns (Empty); | ||||
|   rpc GetNewVMReqs (NodePubkey) returns (stream NewVMReq); | ||||
|   rpc SendNewVMResp (stream NewVMResp) returns (Empty); | ||||
|   rpc GetDeleteVMReq (NodePubkey) returns (stream DeleteVMReq); | ||||
|   rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); | ||||
|   rpc GetUpdateVM (NodePubkey) returns (stream UpdateVMRequest); | ||||
|   rpc SendUpdateVM (stream UpdateVMResp) returns (Empty); | ||||
|   rpc GetUpdateVMReq (NodePubkey) returns (stream UpdateVMReq); | ||||
|   rpc SendUpdateVMResp (stream UpdateVMResp) returns (Empty); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| message NodeFilters { | ||||
|   uint32 free_ports = 1; | ||||
|   bool offers_ipv4 = 2; | ||||
| @ -121,9 +122,9 @@ message NodeListResp { | ||||
| } | ||||
| 
 | ||||
| service BrainCliService { | ||||
|   rpc CreateVMContract (NewVMRequest) returns (NewVMConfirmation); | ||||
|   rpc CreateVMContract (NewVMReq) returns (NewVMResp); | ||||
|   rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); | ||||
|   rpc ListNodes (NodeFilters) returns (stream NodeListResp); | ||||
|   rpc DeleteVM (DeletedVMUpdate) returns (Empty); | ||||
|   rpc UpdateVM (UpdateVMRequest) returns (UpdateVMResp); | ||||
|   rpc DeleteVM (DeleteVMReq) returns (Empty); | ||||
|   rpc UpdateVM (UpdateVMReq) returns (UpdateVMResp); | ||||
| } | ||||
| @ -5,8 +5,8 @@ pub mod brain { | ||||
| 
 | ||||
| use anyhow::Result; | ||||
| use brain::{ | ||||
|     brain_cli_service_client::BrainCliServiceClient, DeletedVmUpdate, ListVmContractsReq, | ||||
|     NewVmRequest, NodeFilters, NodeListResp, VmContract, UpdateVmRequest, | ||||
|     brain_cli_service_client::BrainCliServiceClient, DeleteVmReq, ListVmContractsReq, | ||||
|     NewVmReq, NodeFilters, NodeListResp, VmContract, UpdateVmReq, | ||||
| }; | ||||
| use lazy_static::lazy_static; | ||||
| use log::{debug, info, warn}; | ||||
| @ -65,7 +65,7 @@ async fn submit_vm_request( | ||||
|     mut client: BrainCliServiceClient<Channel>, | ||||
|     node_pubkey: &str, | ||||
| ) -> Result<()> { | ||||
|     let req = NewVmRequest { | ||||
|     let req = NewVmReq { | ||||
|         uuid: String::new(), | ||||
|         admin_pubkey: SECURE_PUBLIC_KEY.clone(), | ||||
|         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<()> { | ||||
|     let req = DeletedVmUpdate { | ||||
|     let req = DeleteVmReq { | ||||
|         uuid: uuid.to_string(), | ||||
|     }; | ||||
|     info!("Creating VM {req:?}"); | ||||
| @ -140,7 +140,7 @@ async fn update_vm_request( | ||||
|     node_pubkey: &str, | ||||
|     uuid: &str, 
 | ||||
| ) -> Result<()> { | ||||
|     let req = UpdateVmRequest { | ||||
|     let req = UpdateVmReq { | ||||
|         uuid: uuid.to_string(), | ||||
|         node_pubkey: node_pubkey.to_string(), | ||||
|         vcpus: 4, | ||||
|  | ||||
| @ -8,7 +8,7 @@ message NodePubkey { | ||||
|   string node_pubkey = 1; | ||||
| } | ||||
| 
 | ||||
| message RegisterNodeRequest {  | ||||
| message RegisterNodeReq {  | ||||
|   string node_pubkey = 1; | ||||
|   string owner_pubkey = 2; | ||||
|   string ip = 3; | ||||
| @ -23,7 +23,7 @@ message RegisterNodeRequest { | ||||
|   uint32 max_ports_per_vm = 12; | ||||
| } | ||||
| 
 | ||||
| message NewVMRequest { | ||||
| message NewVMReq { | ||||
|   string uuid = 1; // UUID is empty when CLI sends request; brain sets UUID | ||||
|   string hostname = 2; | ||||
|   string admin_pubkey = 3; | ||||
| @ -40,7 +40,7 @@ message NewVMRequest { | ||||
|   string dtrfs_sha = 14; | ||||
| } | ||||
| 
 | ||||
| message UpdateVMRequest { | ||||
| message UpdateVMReq { | ||||
|   string uuid = 1; | ||||
|   string node_pubkey = 2; | ||||
|   uint32 disk_size_gb = 3; | ||||
| @ -79,7 +79,7 @@ message ListVMContractsReq { | ||||
|   string node_pubkey = 2; | ||||
| } | ||||
| 
 | ||||
| message NewVMConfirmation { | ||||
| message NewVMResp { | ||||
|   string uuid = 1; | ||||
|   repeated uint32 exposed_ports = 2; | ||||
|   string public_ipv4 = 3; | ||||
| @ -87,20 +87,21 @@ message NewVMConfirmation { | ||||
|   string error = 5; | ||||
| } | ||||
| 
 | ||||
| message DeletedVMUpdate { | ||||
| message DeleteVMReq { | ||||
|   string uuid = 1; | ||||
| } | ||||
| 
 | ||||
| service BrainDaemonService { | ||||
|   rpc RegisterNode (RegisterNodeRequest) returns (Empty); | ||||
|   rpc GetNewVMReqs (NodePubkey) returns (stream NewVMRequest); | ||||
|   rpc SendVMConfirmations (stream NewVMConfirmation) returns (Empty); | ||||
|   rpc DeletedVMUpdates (NodePubkey) returns (stream DeletedVMUpdate); | ||||
|   rpc RegisterNode (RegisterNodeReq) returns (Empty); | ||||
|   rpc GetNewVMReqs (NodePubkey) returns (stream NewVMReq); | ||||
|   rpc SendNewVMResp (stream NewVMResp) returns (Empty); | ||||
|   rpc GetDeleteVMReq (NodePubkey) returns (stream DeleteVMReq); | ||||
|   rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); | ||||
|   rpc GetUpdateVM (NodePubkey) returns (stream UpdateVMRequest); | ||||
|   rpc SendUpdateVM (stream UpdateVMResp) returns (Empty); | ||||
|   rpc GetUpdateVMReq (NodePubkey) returns (stream UpdateVMReq); | ||||
|   rpc SendUpdateVMResp (stream UpdateVMResp) returns (Empty); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| message NodeFilters { | ||||
|   uint32 free_ports = 1; | ||||
|   bool offers_ipv4 = 2; | ||||
| @ -121,9 +122,9 @@ message NodeListResp { | ||||
| } | ||||
| 
 | ||||
| service BrainCliService { | ||||
|   rpc CreateVMContract (NewVMRequest) returns (NewVMConfirmation); | ||||
|   rpc CreateVMContract (NewVMReq) returns (NewVMResp); | ||||
|   rpc ListVMContracts (ListVMContractsReq) returns (stream VMContract); | ||||
|   rpc ListNodes (NodeFilters) returns (stream NodeListResp); | ||||
|   rpc DeleteVM (DeletedVMUpdate) returns (Empty); | ||||
|   rpc UpdateVM (UpdateVMRequest) returns (UpdateVMResp); | ||||
|   rpc DeleteVM (DeleteVMReq) returns (Empty); | ||||
|   rpc UpdateVM (UpdateVMReq) returns (UpdateVMResp); | ||||
| } | ||||
| @ -5,8 +5,8 @@ pub mod brain { | ||||
| 
 | ||||
| use anyhow::Result; | ||||
| use brain::{ | ||||
|     brain_daemon_service_client::BrainDaemonServiceClient, DeletedVmUpdate, NewVmConfirmation, | ||||
|     NewVmRequest, NodePubkey, RegisterNodeRequest, UpdateVmRequest, UpdateVmResp | ||||
|     brain_daemon_service_client::BrainDaemonServiceClient, DeleteVmReq, NewVmResp, | ||||
|     NewVmReq, NodePubkey, RegisterNodeReq, UpdateVmReq, UpdateVmResp, | ||||
| }; | ||||
| use lazy_static::lazy_static; | ||||
| use log::{debug, error, info, warn}; | ||||
| @ -31,7 +31,7 @@ fn generate_random_string() -> String { | ||||
| 
 | ||||
| async fn listen_for_new_vm_reqs( | ||||
|     mut client: BrainDaemonServiceClient<Channel>, | ||||
|     tx: Sender<NewVmRequest>, | ||||
|     tx: Sender<NewVmReq>, | ||||
| ) -> Result<()> { | ||||
|     debug!("starting listen_for_new_vm_reqs"); | ||||
|     let node_pubkey = SECURE_PUBLIC_KEY.clone(); | ||||
| @ -56,18 +56,18 @@ async fn listen_for_new_vm_reqs( | ||||
| 
 | ||||
| async fn send_newvm_resp( | ||||
|     mut client: BrainDaemonServiceClient<Channel>, | ||||
|     rx: Receiver<NewVmConfirmation>, | ||||
|     rx: Receiver<NewVmResp>, | ||||
| ) -> Result<()> { | ||||
|     debug!("starting send_newvm_resp stream"); | ||||
|     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"); | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| async fn register_node(mut client: BrainDaemonServiceClient<Channel>) { | ||||
|     debug!("Starting node registration..."); | ||||
|     let req = RegisterNodeRequest { | ||||
|     let req = RegisterNodeReq { | ||||
|         node_pubkey: SECURE_PUBLIC_KEY.clone(), | ||||
|         owner_pubkey: "IamTheOwnerOf".to_string() + &SECURE_PUBLIC_KEY, | ||||
|         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( | ||||
|     mut client: BrainDaemonServiceClient<Channel>, | ||||
|     tx: Sender<DeletedVmUpdate>, | ||||
|     tx: Sender<DeleteVmReq>, | ||||
| ) -> Result<()> { | ||||
|     debug!("starting listen_for_new_vm_reqs"); | ||||
|     let node_pubkey = SECURE_PUBLIC_KEY.clone(); | ||||
|     let mut grpc_stream = client | ||||
|         .deleted_vm_updates(NodePubkey { node_pubkey }) | ||||
|         .get_delete_vm_req(NodePubkey { node_pubkey }) | ||||
|         .await? | ||||
|         .into_inner(); | ||||
|     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( | ||||
|     mut client: BrainDaemonServiceClient<Channel>, | ||||
|     tx: Sender<UpdateVmRequest>, | ||||
|     tx: Sender<UpdateVmReq>, | ||||
| ) -> Result<()> { | ||||
|     debug!("starting listen_for_update_vm_reqs"); | ||||
|     let node_pubkey = SECURE_PUBLIC_KEY.clone(); | ||||
|     let mut grpc_stream = client | ||||
|         .get_update_vm(NodePubkey { node_pubkey }) | ||||
|         .get_update_vm_req(NodePubkey { node_pubkey }) | ||||
|         .await? | ||||
|         .into_inner(); | ||||
|     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( | ||||
|     mut req: Receiver<UpdateVmRequest>, | ||||
|     mut req: Receiver<UpdateVmReq>, | ||||
|     resp: Sender<UpdateVmResp> | ||||
|     ) { | ||||
|     info!("Started to handle update vm requests."); | ||||
| @ -163,12 +163,12 @@ async fn send_updatevm_resp( | ||||
| ) -> Result<()> { | ||||
|     debug!("starting send_updatevm_resp stream"); | ||||
|     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"); | ||||
|     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."); | ||||
|     let mut i = 0; | ||||
|     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(), | ||||
|         }; | ||||
|         if i != 3 { | ||||
|             let confirmation = NewVmConfirmation { | ||||
|             let confirmation = NewVmResp{ | ||||
|                 uuid: new_vm.uuid, | ||||
|                 exposed_ports, | ||||
|                 public_ipv4, | ||||
| @ -195,7 +195,7 @@ async fn handle_vm_requests(mut req: Receiver<NewVmRequest>, resp: Sender<NewVmC | ||||
|             info!("Sending NewVmConfirmation: {confirmation:?}"); | ||||
|             let _ = resp.send(confirmation).await; | ||||
|         } else { | ||||
|             let confirmation = NewVmConfirmation { | ||||
|             let confirmation = NewVmResp { | ||||
|                 uuid: new_vm.uuid, | ||||
|                 exposed_ports: Vec::new(), | ||||
|                 public_ipv4: String::new(), | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user