#![allow(unused_imports)]
extern crate ceph;
extern crate libc;
#[cfg(unix)]
use ceph::admin_sockets::*;
#[cfg(unix)]
use ceph::ceph as ceph_helpers;
#[cfg(unix)]
use ceph::rados;
use ceph::JsonData;
#[cfg(not(unix))]
fn main() {}
#[cfg(unix)]
fn main() {
let pool_name = "lsio";
match admin_socket_command("help", "/var/run/ceph/ceph-mon.ip-172-31-31-247.asok") {
Ok(json) => {
println!("{}", json);
}
Err(e) => {
println!("{}", e);
}
}
let rados_version = ceph_helpers::rados_libversion();
println!("Librados version: {:?}", rados_version);
println!("Connecting to ceph");
let cluster = ceph_helpers::connect_to_ceph("admin", "/etc/ceph/ceph.conf").unwrap();
println!("Creating pool {}", pool_name);
cluster.rados_create_pool(pool_name).unwrap();
println!("Listing pools");
let pools_list = cluster.rados_pools().unwrap();
for pool in pools_list {
println!("pool: {}", pool);
}
println!("Deleting pool: {}", pool_name);
cluster.rados_delete_pool(pool_name).unwrap();
println!("Getting cluster fsid");
let fsid = cluster.rados_fsid();
println!("rados_cluster_fsid {:?}", fsid);
let cluster_stat = cluster.rados_stat_cluster().unwrap();
println!("Cluster stat: {:?}", cluster_stat);
println!("{}", cluster.ceph_health_string().unwrap_or("".to_string()));
println!(
"{}",
cluster.ceph_status(&["health", "overall_status"]).unwrap()
);
let ceph_ver = ceph_helpers::ceph_version("/var/run/ceph/ceph-mon.ip-172-31-31-247.asok");
println!("Ceph Version - {:?}", ceph_ver);
match cluster.ceph_mon_command("prefix", "status", None) {
Ok((outbuf, outs)) => {
match outbuf {
Some(output) => println!("Ceph mon command (outbuf):\n{}", output),
None => {}
}
match outs {
Some(output) => println!("Ceph mon command (outs):\n{}", output),
None => {}
}
}
Err(e) => {
println!("{:?}", e);
}
}
println!(
"{:?}",
cluster.ceph_command(
"prefix",
"status",
ceph_helpers::CephCommandTypes::Mon,
&["health"]
)
);
unsafe {
println!("Getting rados instance id");
let instance_id = rados::rados_get_instance_id(*cluster.inner());
println!("Instance ID: {}", instance_id);
}
let fsid = cluster.rados_fsid().unwrap();
println!("rados_cluster_fsid: {}", fsid.to_hyphenated().to_string());
let ping_monitor = cluster.ping_monitor("ceph-mon.ceph-vm1"); println!("Ping monitor: {:?}", ping_monitor);
let cluster_stat = cluster.rados_stat_cluster();
println!("Cluster stat: {:?}", cluster_stat);
match cluster.ceph_mon_command("prefix", "status", None) {
Ok((outbuf, outs)) => {
match outbuf {
Some(output) => println!("Ceph mon command (outbuf):\n{}", output),
None => {}
}
match outs {
Some(output) => println!("Ceph mon command (outs):\n{}", output),
None => {}
}
}
Err(e) => {
println!("{:?}", e);
}
}
println!("{}", cluster.ceph_health_string().unwrap_or("".to_string()));
println!(
"{}",
cluster.ceph_status(&["health", "overall_status"]).unwrap()
);
println!(
"{:?}",
cluster.ceph_command(
"prefix",
"status",
ceph_helpers::CephCommandTypes::Mon,
&["health"]
)
);
let ceph_ver = ceph_helpers::ceph_version("/var/run/ceph/ceph-mon.ceph-vm1.asok"); println!("Ceph Version - {:?}", ceph_ver);
println!(
"RADOS Version - v{}.{}.{}",
rados_version.major, rados_version.minor, rados_version.extra
);
}