Skip to content

Commit e08763c

Browse files
authored
Merge pull request #176 from tower/develop
v0.3.43 release
2 parents b82e01c + bdd6184 commit e08763c

29 files changed

Lines changed: 1447 additions & 224 deletions

File tree

Cargo.lock

Lines changed: 40 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ resolver = "2"
44

55
[workspace.package]
66
edition = "2021"
7-
version = "0.3.42"
7+
version = "0.3.43"
88
description = "Tower is the best way to host Python data apps in production"
99
rust-version = "1.81"
1010
authors = ["Brad Heller <brad@tower.dev>"]
@@ -15,6 +15,7 @@ repository = "https://github.com/tower/tower-cli"
1515
aes-gcm = "0.10"
1616
anyhow = "1.0.95"
1717
async-compression = { version = "0.4", features = ["tokio", "gzip"] }
18+
async-trait = "0.1.89"
1819
async_zip = { version = "0.0.16", features = ["tokio", "tokio-fs", "deflate"] }
1920
axum = "0.8.4"
2021
base64 = "0.22"

crates/config/src/session.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ fn extract_aid_from_jwt(jwt: &str) -> Option<String> {
2121
let payload = parts[1];
2222
let decoded = URL_SAFE_NO_PAD.decode(payload).ok()?;
2323
let json: serde_json::Value = serde_json::from_slice(&decoded).ok()?;
24-
json.get("https://tower.dev/aid")?.as_str().map(String::from)
24+
json.get("https://tower.dev/aid")?
25+
.as_str()
26+
.map(String::from)
2527
}
2628

2729
const DEFAULT_TOWER_URL: &str = "https://api.tower.dev";

crates/tower-cmd/src/api.rs

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,17 @@ pub enum LogStreamError {
367367
Unknown,
368368
}
369369

370+
impl std::fmt::Display for LogStreamError {
371+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
372+
match self {
373+
LogStreamError::Reqwest(err) => write!(f, "{err}"),
374+
LogStreamError::Unknown => write!(f, "unknown log stream error"),
375+
}
376+
}
377+
}
378+
379+
impl std::error::Error for LogStreamError {}
380+
370381
impl From<reqwest_eventsource::CannotCloneRequestError> for LogStreamError {
371382
fn from(err: reqwest_eventsource::CannotCloneRequestError) -> Self {
372383
debug!("Failed to clone request {:?}", err);
@@ -399,10 +410,30 @@ async fn drain_run_logs_stream(mut source: EventSource, tx: mpsc::Sender<LogStre
399410
}
400411
"warning" => {
401412
let event_warning = serde_json::from_str(&message.data);
402-
if let Ok(event) = event_warning {
403-
tx.send(LogStreamEvent::EventWarning(event)).await.ok();
404-
} else {
405-
debug!("Failed to parse warning message: {:?}", message.data);
413+
match event_warning {
414+
Ok(event) => {
415+
tx.send(LogStreamEvent::EventWarning(event)).await.ok();
416+
}
417+
Err(err) => {
418+
let warning_data = serde_json::from_str(&message.data);
419+
match warning_data {
420+
Ok(data) => {
421+
let event = tower_api::models::EventWarning {
422+
data,
423+
event: tower_api::models::event_warning::Event::Warning,
424+
id: None,
425+
retry: None,
426+
};
427+
tx.send(LogStreamEvent::EventWarning(event)).await.ok();
428+
}
429+
Err(_) => {
430+
debug!(
431+
"Failed to parse warning message: {:?}. Error: {}",
432+
message.data, err
433+
);
434+
}
435+
}
436+
}
406437
}
407438
}
408439
_ => {

0 commit comments

Comments
 (0)