aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/data_node.go
diff options
context:
space:
mode:
author霍晓栋 <huoxd@jiedaibao.com>2016-08-09 20:12:39 +0800
committer霍晓栋 <huoxd@jiedaibao.com>2016-08-09 20:12:39 +0800
commitf04d8fcbcc7baea562e2afb526328a467cd37ab9 (patch)
tree1e4c27307b63ac0798bb0cecb864b621c347de04 /weed/topology/data_node.go
parentd5b0538f7be5e4106e8d42062d08258d98172607 (diff)
downloadseaweedfs-f04d8fcbcc7baea562e2afb526328a467cd37ab9.tar.xz
seaweedfs-f04d8fcbcc7baea562e2afb526328a467cd37ab9.zip
if replicated volume has one copy in readonly mode at one node,it should be removed from writable list
Diffstat (limited to 'weed/topology/data_node.go')
-rw-r--r--weed/topology/data_node.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/weed/topology/data_node.go b/weed/topology/data_node.go
index 1404d4aa8..da6ed2895 100644
--- a/weed/topology/data_node.go
+++ b/weed/topology/data_node.go
@@ -79,6 +79,17 @@ func (dn *DataNode) GetVolumes() (ret []storage.VolumeInfo) {
return ret
}
+func (dn *DataNode) GetVolumesById(id storage.VolumeId) (storage.VolumeInfo, error) {
+ dn.RLock()
+ defer dn.RUnlock()
+ v_info, ok := dn.volumes[id]
+ if ok {
+ return v_info, nil
+ } else {
+ return storage.VolumeInfo{}, fmt.Errorf("volumeInfo not found")
+ }
+}
+
func (dn *DataNode) GetDataCenter() *DataCenter {
return dn.Parent().Parent().(*NodeImpl).value.(*DataCenter)
}