diff options
Diffstat (limited to 'weed/topology')
| -rw-r--r-- | weed/topology/data_node.go | 5 | ||||
| -rw-r--r-- | weed/topology/volume_layout.go | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/weed/topology/data_node.go b/weed/topology/data_node.go index bf9557ca0..816139ac3 100644 --- a/weed/topology/data_node.go +++ b/weed/topology/data_node.go @@ -163,7 +163,10 @@ func (dn *DataNode) GetVolumesById(id needle.VolumeId) (storage.VolumeInfo, erro } func (dn *DataNode) GetDataCenter() *DataCenter { - return dn.Parent().Parent().(*NodeImpl).value.(*DataCenter) + rack := dn.Parent() + dcNode := rack.Parent() + dcValue := dcNode.GetValue() + return dcValue.(*DataCenter) } func (dn *DataNode) GetRack() *Rack { diff --git a/weed/topology/volume_layout.go b/weed/topology/volume_layout.go index 3b1feefa4..e21922310 100644 --- a/weed/topology/volume_layout.go +++ b/weed/topology/volume_layout.go @@ -220,7 +220,7 @@ func (vl *VolumeLayout) ensureCorrectWritables(vid needle.VolumeId) { func (vl *VolumeLayout) isAllWritable(vid needle.VolumeId) bool { for _, dn := range vl.vid2location[vid].list { - if v, found := dn.volumes[vid]; found { + if v, getError := dn.GetVolumesById(vid); getError == nil { if v.ReadOnly { return false } |
