Fix: vm creating from Insufficient fund account
This commit is contained in:
		
							parent
							
								
									6a85acda9e
								
							
						
					
					
						commit
						bf023d9209
					
				
							
								
								
									
										14
									
								
								src/db/vm.rs
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										14
									
								
								src/db/vm.rs
									
									
									
									
									
								
							| @ -239,7 +239,18 @@ impl NewVmReq { | |||||||
|             self.price_per_unit |             self.price_per_unit | ||||||
|         ); |         ); | ||||||
|         //let _: Vec<Self> = db.insert(NEW_VM_REQ).relation(self).await?;
 |         //let _: Vec<Self> = db.insert(NEW_VM_REQ).relation(self).await?;
 | ||||||
|         db.query(query).await?; |         let mut query_resp = db.query(query).await?; | ||||||
|  |         let resp_err = query_resp.take_errors(); | ||||||
|  | 
 | ||||||
|  |         if let Some(insufficient_funds_error) = resp_err.get(&1) { | ||||||
|  |             if let surrealdb::Error::Api(surrealdb::error::Api::Query(tx_query_error)) = | ||||||
|  |                 insufficient_funds_error | ||||||
|  |             { | ||||||
|  |                 log::error!("Transaction error: {}", tx_query_error); | ||||||
|  |                 return Err(Error::InsufficientFunds); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         Ok(()) |         Ok(()) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -276,6 +287,7 @@ impl WrappedMeasurement { | |||||||
|         if let Some(args) = args { |         if let Some(args) = args { | ||||||
|             return Ok(Self::Args(vm_id.to_string(), args)); |             return Ok(Self::Args(vm_id.to_string(), args)); | ||||||
|         } |         } | ||||||
|  |         log::trace!("listening for table: {table}"); | ||||||
| 
 | 
 | ||||||
|         tokio::time::timeout(Duration::from_secs(10), async { |         tokio::time::timeout(Duration::from_secs(10), async { | ||||||
|             loop { |             loop { | ||||||
|  | |||||||
| @ -20,11 +20,17 @@ async fn test_vm_creation() { | |||||||
| 
 | 
 | ||||||
|     let key = Key::new(); |     let key = Key::new(); | ||||||
| 
 | 
 | ||||||
|     let _ = create_new_vm(&db, &key, &daemon_key, &brain_channel).await; |     let new_vm_resp = create_new_vm(&db, &key, &daemon_key, &brain_channel).await; | ||||||
|  | 
 | ||||||
|  |     assert!(new_vm_resp.is_err()); | ||||||
|  |     let grpc_error_message = new_vm_resp.err().unwrap().to_string(); | ||||||
|  |     assert!(grpc_error_message.contains("Insufficient funds")); | ||||||
|  | 
 | ||||||
|  |     // TODO: Airdrop the user and try creating the VM again
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #[tokio::test] | #[tokio::test] | ||||||
| async fn test_vm_creation_timeout() { | async fn test_timeout_vm_creation() { | ||||||
|     prepare_test_db().await.unwrap(); |     prepare_test_db().await.unwrap(); | ||||||
|     // env_logger::builder().filter_level(log::LevelFilter::Error).init();
 |     // env_logger::builder().filter_level(log::LevelFilter::Error).init();
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user