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