aboutsummaryrefslogtreecommitdiff
path: root/weed/topology
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology')
-rw-r--r--weed/topology/data_node.go5
-rw-r--r--weed/topology/volume_layout.go2
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
}