Skip to content

Instantly share code, notes, and snippets.

@sajal
Created March 27, 2017 11:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sajal/4e7e0bd77d3deced0d450e8f9af7775a to your computer and use it in GitHub Desktop.
Save sajal/4e7e0bd77d3deced0d450e8f9af7775a to your computer and use it in GitHub Desktop.
rbd info
package main
import (
"log"
"github.com/ceph/go-ceph/rados"
"github.com/ceph/go-ceph/rbd"
)
func main() {
conn, err := rados.NewConn()
if err != nil {
log.Fatal(err)
}
err = conn.ReadDefaultConfigFile()
if err != nil {
log.Fatal(err)
}
//Override because the config is written for different namespace
err = conn.SetConfigOption("mon_host", "ceph-mon.ceph")
if err != nil {
log.Fatal(err)
}
err = conn.Connect()
if err != nil {
log.Fatal(err)
}
ioc, err := conn.OpenIOContext("rbd")
if err != nil {
log.Fatal(err)
}
images, err := rbd.GetImageNames(ioc)
if err != nil {
log.Fatal(err)
}
for _, imgname := range images {
log.Println(imgname)
img := rbd.GetImage(ioc, imgname)
err = img.Open(true)
if err != nil {
log.Fatal(err)
}
info, err := img.Stat()
if err != nil {
log.Fatal(err)
}
log.Println(info)
//snaps, err := img.GetSnapshotNames()
pools, imgs, err := img.ListChildren()
if err != nil {
log.Fatal(err)
}
log.Println("Children", pools, imgs)
tag, lockers, err := img.ListLockers()
log.Println(tag, lockers, err)
img.Close()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment