extern crate docker;
extern crate rustc_serialize;
use docker::Docker;
use docker::stats::Stats;
use rustc_serialize::json;
#[derive(RustcEncodable, RustcDecodable)]
#[allow(non_snake_case)]
struct Data {
Id: String,
Image: String,
Status: String,
Command: String,
Created: f64,
Names: Vec<String>,
Ports: Vec<String>,
Stats: Stats
}
fn main() {
let docker = Docker::new();
let containers = match docker.get_containers() {
Ok(containers) => containers,
Err(e) => { panic!("{}", e); }
};
for container in containers.iter() {
let stats = match docker.get_stats(&container) {
Ok(stats) => {
let data = Data {
Id: container.Id.clone(),
Image: container.Image.clone(),
Status: container.Status.clone(),
Command: container.Command.clone(),
Created: container.Created.clone(),
Names: container.Names.clone(),
Ports: container.Ports.clone(),
Stats: stats
};
let encoded_container = json::encode(&data).unwrap();
println!("{}", encoded_container);
},
Err(e) => { panic!("{}", e); }
};
}
}