func (v *VirStorageVol) GetInfo() (VirStorageVolInfo, error) { vi := VirStorageVolInfo{} var ptr C.virStorageVolInfo result := C.virStorageVolGetInfo(v.ptr, (*C.virStorageVolInfo)(unsafe.Pointer(&ptr))) if result == -1 { return vi, GetLastError() } vi.ptr = ptr return vi, nil }
// InfoCapacity fetches volatile information about the storage volume: // current capacity. func (vol StorageVolume) InfoCapacity() (uint64, error) { var cInfo C.virStorageVolInfo vol.log.Println("reading storage volume capacity...") cRet := C.virStorageVolGetInfo(vol.virStorageVol, &cInfo) ret := int32(cRet) if ret == -1 { err := LastError() vol.log.Printf("an error occurred: %v\n", err) return 0, err } capacity := uint64(cInfo.capacity) vol.log.Printf("capacity: %v\n", capacity) return capacity, nil }
// InfoAllocation fetches volatile information about the storage volume: // current allocation. func (vol StorageVolume) InfoAllocation() (uint64, error) { var cInfo C.virStorageVolInfo vol.log.Println("reading storage volume allocation...") cRet := C.virStorageVolGetInfo(vol.virStorageVol, &cInfo) ret := int32(cRet) if ret == -1 { err := LastError() vol.log.Printf("an error occurred: %v\n", err) return 0, err } allocation := uint64(cInfo.allocation) vol.log.Printf("allocation: %v\n", allocation) return allocation, nil }
// InfoType fetches volatile information about the storage volume: // current type. func (vol StorageVolume) InfoType() (StorageVolumeType, error) { var cInfo C.virStorageVolInfo vol.log.Println("reading storage volume type...") cRet := C.virStorageVolGetInfo(vol.virStorageVol, &cInfo) ret := int32(cRet) if ret == -1 { err := LastError() vol.log.Printf("an error occurred: %v\n", err) return 0, err } typ := StorageVolumeType(cInfo._type) vol.log.Printf("type: %v\n", typ) return typ, nil }