use std::env;
#[cfg(feature = "compute")]
#[tokio::main(flavor = "current_thread")]
async fn main() {
env_logger::init();
let os = openstack::Cloud::from_env()
.await
.expect("Failed to create an identity provider from the environment");
let id = env::args().nth(1).expect("Provide a server ID");
let server = os.get_server(id).await.expect("Cannot get a server");
println!(
"ID = {}, Name = {}, Status = {:?}, Power = {:?}",
server.id(),
server.name(),
server.status(),
server.power_state()
);
println!("Links: image = {:?}", server.image_id());
let flavor = server.flavor().await.expect("Cannot get the flavor");
println!(
"Flavor: {} CPU, disk {}G, memory {}M",
flavor.vcpu_count, flavor.root_size, flavor.ram_size
);
println!("Floating IP: {:?}", server.floating_ip());
if !server.metadata().is_empty() {
println!("Metadata: {:?}", server.metadata());
}
}
#[cfg(not(feature = "compute"))]
fn main() {
panic!("This example cannot run with 'compute' feature disabled");
}