aboutsummaryrefslogtreecommitdiff
path: root/go/topology/volume_growth.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/topology/volume_growth.go')
-rw-r--r--go/topology/volume_growth.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/go/topology/volume_growth.go b/go/topology/volume_growth.go
index 4965e3ba0..778aa038a 100644
--- a/go/topology/volume_growth.go
+++ b/go/topology/volume_growth.go
@@ -19,6 +19,7 @@ This package is created to resolve these replica placement issues:
type VolumeGrowOption struct {
Collection string
ReplicaPlacement *storage.ReplicaPlacement
+ Ttl *storage.TTL
DataCenter string
Rack string
DataNode string
@@ -184,8 +185,15 @@ func (vg *VolumeGrowth) findEmptySlotsForOneVolume(topo *Topology, option *Volum
func (vg *VolumeGrowth) grow(topo *Topology, vid storage.VolumeId, option *VolumeGrowOption, servers ...*DataNode) error {
for _, server := range servers {
- if err := AllocateVolume(server, vid, option.Collection, option.ReplicaPlacement); err == nil {
- vi := storage.VolumeInfo{Id: vid, Size: 0, Collection: option.Collection, ReplicaPlacement: option.ReplicaPlacement, Version: storage.CurrentVersion}
+ if err := AllocateVolume(server, vid, option); err == nil {
+ vi := storage.VolumeInfo{
+ Id: vid,
+ Size: 0,
+ Collection: option.Collection,
+ ReplicaPlacement: option.ReplicaPlacement,
+ Ttl: option.Ttl,
+ Version: storage.CurrentVersion,
+ }
server.AddOrUpdateVolume(vi)
topo.RegisterVolumeLayout(vi, server)
glog.V(0).Infoln("Created Volume", vid, "on", server)