retry app config update on app deployment
This commit is contained in:
		
							parent
							
								
									0a53aebcdb
								
							
						
					
					
						commit
						a0bc0958fc
					
				
							
								
								
									
										12
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										12
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -1058,6 +1058,7 @@ dependencies = [ | |||||||
|  "rand", |  "rand", | ||||||
|  "rand_core", |  "rand_core", | ||||||
|  "reqwest", |  "reqwest", | ||||||
|  |  "retry", | ||||||
|  "rustls", |  "rustls", | ||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
| @ -2755,6 +2756,15 @@ dependencies = [ | |||||||
|  "windows-registry", |  "windows-registry", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "retry" | ||||||
|  | version = "2.0.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "9166d72162de3575f950507683fac47e30f6f2c3836b71b7fbc61aa517c9c5f4" | ||||||
|  | dependencies = [ | ||||||
|  |  "rand", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "rfc6979" | name = "rfc6979" | ||||||
| version = "0.4.0" | version = "0.4.0" | ||||||
| @ -3356,7 +3366,7 @@ dependencies = [ | |||||||
|  "getrandom 0.3.1", |  "getrandom 0.3.1", | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  "rustix", |  "rustix", | ||||||
|  "windows-sys 0.52.0", |  "windows-sys 0.59.0", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | |||||||
| @ -31,6 +31,7 @@ rustls = "0.23.23" | |||||||
| tower = "0.5.2" | tower = "0.5.2" | ||||||
| hyper-rustls = { version = "0.27.5", features = ["http2"] } | hyper-rustls = { version = "0.27.5", features = ["http2"] } | ||||||
| openssl = { version = "0.10.71", features = ["vendored"] } | openssl = { version = "0.10.71", features = ["vendored"] } | ||||||
|  | retry = "2.0.0" | ||||||
| detee-sgx = { git = "ssh://git@gitea.detee.cloud/testnet/detee-sgx.git", branch = "hratls", features=["hratls", "qvl"] } | detee-sgx = { git = "ssh://git@gitea.detee.cloud/testnet/detee-sgx.git", branch = "hratls", features=["hratls", "qvl"] } | ||||||
| 
 | 
 | ||||||
| detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "main" } | detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "main" } | ||||||
|  | |||||||
| @ -9,6 +9,8 @@ use crate::{cli_print, SimpleOutput}; | |||||||
| use clap::ArgMatches; | use clap::ArgMatches; | ||||||
| use detee_shared::sgx::types::brain::AppDeployConfig; | use detee_shared::sgx::types::brain::AppDeployConfig; | ||||||
| use detee_shared::sgx::types::brain::Resource; | use detee_shared::sgx::types::brain::Resource; | ||||||
|  | use retry::delay::Fixed; | ||||||
|  | use retry::retry; | ||||||
| 
 | 
 | ||||||
| use super::grpc_brain::list_apps; | use super::grpc_brain::list_apps; | ||||||
| use super::{get_app_node, AppContract, AppDeployResponse}; | use super::{get_app_node, AppContract, AppDeployResponse}; | ||||||
| @ -104,8 +106,10 @@ fn handle_deploy( | |||||||
|     match block_on(new_app(app_deploy_config)) { |     match block_on(new_app(app_deploy_config)) { | ||||||
|         Ok(new_app_res) if new_app_res.error == "" => { |         Ok(new_app_res) if new_app_res.error == "" => { | ||||||
|             println!("Deploying..."); |             println!("Deploying..."); | ||||||
|             std::thread::sleep(std::time::Duration::from_secs(8)); |             std::thread::sleep(std::time::Duration::from_millis(3100)); | ||||||
|             block_on(attest_and_send_config(launch_config, &new_app_res.uuid))?; |             retry(Fixed::from_millis(500).take(4), || { | ||||||
|  |                 block_on(attest_and_send_config(launch_config.clone(), &new_app_res.uuid)) | ||||||
|  |             })?; | ||||||
|             Ok(new_app_res.into()) |             Ok(new_app_res.into()) | ||||||
|         } |         } | ||||||
|         Ok(new_app_res) => Err(Box::new(std::io::Error::other(new_app_res.error))), |         Ok(new_app_res) => Err(Box::new(std::io::Error::other(new_app_res.error))), | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ use crate::{config::Config, utils::hratls_url_and_mr_enclave_from_app_id}; | |||||||
| 
 | 
 | ||||||
| #[derive(thiserror::Error, Debug)] | #[derive(thiserror::Error, Debug)] | ||||||
| pub enum Error { | pub enum Error { | ||||||
|     #[error("Failed to connect to the brain: {0}")] |     #[error("Failed to connect to the dtpm: {0}")] | ||||||
|     BrainConnection(#[from] tonic::transport::Error), |     BrainConnection(#[from] tonic::transport::Error), | ||||||
|     #[error("Received error from dtpm: {}", _0.message())] |     #[error("Received error from dtpm: {}", _0.message())] | ||||||
|     ResponseStatus(#[from] tonic::Status), |     ResponseStatus(#[from] tonic::Status), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user