[snowpatch] [PATCH] jenkins: get_build_status(): give a better error when JSON decoding fails
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Fri Apr 8 18:00:24 AEST 2016
If Jenkins returns invalid JSON, use .unwrap_or_else() to print the JSON
decode error when we panic. Ideally, we should fail more gracefully than
this, but this is still an improvement on just using .unwrap().
Signed-off-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
---
src/jenkins.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/jenkins.rs b/src/jenkins.rs
index 38a8664..4a69ddc 100644
--- a/src/jenkins.rs
+++ b/src/jenkins.rs
@@ -96,7 +96,8 @@ impl<'a> JenkinsBackend<'a> {
let mut result_str = String::new();
resp.read_to_string(&mut result_str)
.unwrap_or_else(|err| panic!("Couldn't read from server: {}", err));
- let json = Json::from_str(&result_str).unwrap();
+ let json = Json::from_str(&result_str)
+ .unwrap_or_else(|err| panic!("Couldn't decode JSON: {}", err));
match json.as_object().unwrap().get("building").unwrap().as_boolean().unwrap() {
true => JenkinsBuildStatus::Running,
--
Andrew Donnellan Software Engineer, OzLabs
andrew.donnellan at au1.ibm.com Australia Development Lab, Canberra
+61 2 6201 8874 (work) IBM Australia Limited
More information about the snowpatch
mailing list