refactor db imports
usage of MeasurementArgs and VmNodeFilters from vm_proto in db module fix test brain message add new ssh port on mock daemon while new vm
This commit is contained in:
		
							parent
							
								
									069bb27192
								
							
						
					
					
						commit
						acce76197d
					
				| @ -31,7 +31,6 @@ pub mod prelude { | ||||
|     pub use super::general::*; | ||||
|     pub use super::vm::*; | ||||
|     pub use super::*; | ||||
|     pub use detee_shared::snp::pb::vm_proto::{MeasurementArgs, VmNodeFilters}; | ||||
| } | ||||
| 
 | ||||
| pub async fn db_connection( | ||||
|  | ||||
							
								
								
									
										16
									
								
								src/db/vm.rs
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										16
									
								
								src/db/vm.rs
									
									
									
									
									
								
							| @ -5,8 +5,9 @@ use super::Error; | ||||
| use crate::constants::{ | ||||
|     ACCOUNT, ACTIVE_VM, DELETED_VM, NEW_VM_REQ, UPDATE_VM_REQ, VM_NODE, VM_UPDATE_EVENT, | ||||
| }; | ||||
| use crate::db::{Account, MeasurementArgs, Report, VmNodeFilters}; | ||||
| use crate::db::{Account, Report}; | ||||
| use crate::old_brain; | ||||
| use detee_shared::vm_proto; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use surrealdb::engine::remote::ws::Client; | ||||
| use surrealdb::sql::Datetime; | ||||
| @ -83,7 +84,7 @@ impl VmNodeWithReports { | ||||
|     // https://en.wikipedia.org/wiki/Dependency_inversion_principle
 | ||||
|     pub async fn find_by_filters( | ||||
|         db: &Surreal<Client>, | ||||
|         filters: VmNodeFilters, | ||||
|         filters: vm_proto::VmNodeFilters, | ||||
|     ) -> Result<Vec<Self>, Error> { | ||||
|         let mut query = format!( | ||||
|             "select *, <-report.* as reports from {VM_NODE} where
 | ||||
| @ -197,7 +198,7 @@ impl NewVmReq { | ||||
| 
 | ||||
| /// first string is the vm_id
 | ||||
| pub enum WrappedMeasurement { | ||||
|     Args(String, MeasurementArgs), | ||||
|     Args(String, vm_proto::MeasurementArgs), | ||||
|     Error(String, String), | ||||
| } | ||||
| 
 | ||||
| @ -224,9 +225,10 @@ impl WrappedMeasurement { | ||||
|             )) | ||||
|             .await?; | ||||
|         let mut error_stream = resp.stream::<Notification<ErrorMessage>>(0)?; | ||||
|         let mut args_stream = resp.stream::<Notification<MeasurementArgs>>(1)?; | ||||
|         let mut args_stream = resp.stream::<Notification<vm_proto::MeasurementArgs>>(1)?; | ||||
| 
 | ||||
|         let args: Option<MeasurementArgs> = db.delete(("measurement_args", vm_id)).await?; | ||||
|         let args: Option<vm_proto::MeasurementArgs> = | ||||
|             db.delete(("measurement_args", vm_id)).await?; | ||||
|         if let Some(args) = args { | ||||
|             return Ok(Self::Args(vm_id.to_string(), args)); | ||||
|         } | ||||
| @ -255,7 +257,7 @@ impl WrappedMeasurement { | ||||
|                             match args_notif { | ||||
|                                 Ok(args_notif) => { | ||||
|                                     if args_notif.action == surrealdb::Action::Create { | ||||
|                                         let _: Option<MeasurementArgs> = db.delete(("measurement_args", vm_id)).await?; | ||||
|                                         let _: Option<vm_proto::MeasurementArgs> = db.delete(("measurement_args", vm_id)).await?; | ||||
|                                         return Ok(Self::Args(vm_id.to_string(), args_notif.data)); | ||||
|                                     }; | ||||
|                                 }, | ||||
| @ -318,7 +320,7 @@ impl ActiveVm { | ||||
|     pub async fn activate( | ||||
|         db: &Surreal<Client>, | ||||
|         id: &str, | ||||
|         args: MeasurementArgs, | ||||
|         args: vm_proto::MeasurementArgs, | ||||
|     ) -> Result<(), Error> { | ||||
|         let new_vm_req = match NewVmReq::get(db, id).await? { | ||||
|             Some(r) => r, | ||||
|  | ||||
| @ -107,9 +107,10 @@ pub async fn daemon_engine( | ||||
|     while let Some(brain_msg) = rx.recv().await { | ||||
|         match brain_msg.msg { | ||||
|             Some(vm_proto::brain_vm_message::Msg::NewVmReq(new_vm_req)) => { | ||||
|                 let exposed_ports = [vec![22], new_vm_req.extra_ports].concat(); | ||||
|                 let args = Some(vm_proto::MeasurementArgs { | ||||
|                     dtrfs_api_endpoint: String::from("184.107.169.199:48865"), | ||||
|                     exposed_ports: new_vm_req.extra_ports, | ||||
|                     exposed_ports, | ||||
|                     ovmf_hash: String::from( | ||||
|                         "0346619257269b9a61ee003e197d521b8e2283483070d163a34940d6a1d40d76", | ||||
|                     ), | ||||
|  | ||||
| @ -51,7 +51,7 @@ async fn test_vm_creation_timeout() { | ||||
| 
 | ||||
|     assert_eq!( | ||||
|         timeout_error.message(), | ||||
|         "Request failed due to timeout. Please try again later or contact the DeTEE devs team." | ||||
|         "Network timeout. Please try again later or contact the DeTEE devs team.", | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -25,7 +25,7 @@ async fn test_reg_vm_node() { | ||||
| #[tokio::test] | ||||
| async fn test_brain_message() { | ||||
|     env_logger::builder().filter_level(log::LevelFilter::Error).init(); | ||||
|     let db = prepare_test_db().await.unwrap(); | ||||
|     prepare_test_db().await.unwrap(); | ||||
| 
 | ||||
|     let brain_channel = run_service_for_stream().await.unwrap(); | ||||
|     let daemon_key = mock_vm_daemon(&brain_channel).await.unwrap(); | ||||
| @ -46,9 +46,6 @@ async fn test_brain_message() { | ||||
| 
 | ||||
|     assert!(new_vm_resp.error.is_empty()); | ||||
|     assert!(new_vm_resp.uuid.len() == 40); | ||||
| 
 | ||||
|     let id = ("measurement_args", new_vm_resp.uuid); | ||||
|     let data_in_db: detee_shared::vm_proto::MeasurementArgs = db.select(id).await.unwrap().unwrap(); | ||||
| 
 | ||||
|     assert_eq!(data_in_db, new_vm_resp.args.unwrap()); | ||||
|     assert!(new_vm_resp.args.is_some()); | ||||
|     assert!(new_vm_resp.args.unwrap().exposed_ports.len() == 3); | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user