aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/disk.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology/disk.go')
-rw-r--r--weed/topology/disk.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/weed/topology/disk.go b/weed/topology/disk.go
index 80a4aaa2d..8ca25c244 100644
--- a/weed/topology/disk.go
+++ b/weed/topology/disk.go
@@ -246,6 +246,17 @@ func (d *Disk) FreeSpace() int64 {
func (d *Disk) ToDiskInfo() *master_pb.DiskInfo {
diskUsage := d.diskUsages.getOrCreateDisk(types.ToDiskType(string(d.Id())))
+
+ // Get disk ID from first volume or EC shard
+ var diskId uint32
+ volumes := d.GetVolumes()
+ ecShards := d.GetEcShards()
+ if len(volumes) > 0 {
+ diskId = volumes[0].DiskId
+ } else if len(ecShards) > 0 {
+ diskId = ecShards[0].DiskId
+ }
+
m := &master_pb.DiskInfo{
Type: string(d.Id()),
VolumeCount: diskUsage.volumeCount,
@@ -253,11 +264,12 @@ func (d *Disk) ToDiskInfo() *master_pb.DiskInfo {
FreeVolumeCount: diskUsage.maxVolumeCount - (diskUsage.volumeCount - diskUsage.remoteVolumeCount) - (diskUsage.ecShardCount+1)/erasure_coding.DataShardsCount,
ActiveVolumeCount: diskUsage.activeVolumeCount,
RemoteVolumeCount: diskUsage.remoteVolumeCount,
+ DiskId: diskId,
}
- for _, v := range d.GetVolumes() {
+ for _, v := range volumes {
m.VolumeInfos = append(m.VolumeInfos, v.ToVolumeInformationMessage())
}
- for _, ecv := range d.GetEcShards() {
+ for _, ecv := range ecShards {
m.EcShardInfos = append(m.EcShardInfos, ecv.ToVolumeEcShardInformationMessage())
}
return m