diff options
| author | Chris Lu <chris.lu@gmail.com> | 2016-11-04 20:42:28 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2016-11-04 20:42:31 -0700 |
| commit | df49692dff75577f5eedc4d4251f1224b3f12799 (patch) | |
| tree | 53fe8795c18726358cf5b29d84efe2751150c643 | |
| parent | 05eda424fc5e2b2aad39d881e2c1b8e0caa6166c (diff) | |
| download | seaweedfs-df49692dff75577f5eedc4d4251f1224b3f12799.tar.xz seaweedfs-df49692dff75577f5eedc4d4251f1224b3f12799.zip | |
add tool to change replication or ttl
fix https://github.com/chrislusf/seaweedfs/issues/386
| -rw-r--r-- | unmaintained/change_superblock/change_superblock.go (renamed from unmaintained/change_replication/change_replication.go) | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/unmaintained/change_replication/change_replication.go b/unmaintained/change_superblock/change_superblock.go index c32d2d266..6ecead697 100644 --- a/unmaintained/change_replication/change_replication.go +++ b/unmaintained/change_superblock/change_superblock.go @@ -16,6 +16,7 @@ var ( fixVolumeCollection = flag.String("collection", "", "the volume collection name") fixVolumeId = flag.Int("volumeId", -1, "a volume id. The volume should already exist in the dir. The volume index file should not exist.") targetReplica = flag.String("replication", "", "If just empty, only print out current replication setting.") + targetTTL = flag.String("ttl", "", "If just empty, only print out current ttl setting.") ) /* @@ -58,27 +59,45 @@ func main() { } fmt.Printf("Current Volume Replication: %s\n", superBlock.ReplicaPlacement) + fmt.Printf("Current Volume TTL: %s\n", superBlock.Ttl.String()) - if *targetReplica == "" { - return - } + hasChange := false - replica, err := storage.NewReplicaPlacementFromString(*targetReplica) + if *targetReplica != "" { + replica, err := storage.NewReplicaPlacementFromString(*targetReplica) - if err != nil { - glog.Fatalf("cannot parse target replica %s: %v", *targetReplica, err) + if err != nil { + glog.Fatalf("cannot parse target replica %s: %v", *targetReplica, err) + } + + fmt.Printf("Changing replication to: %s\n", replica) + + superBlock.ReplicaPlacement = replica + hasChange = true } - fmt.Printf("Changing to: %s\n", replica) + if *targetTTL != "" { + ttl, err := storage.ReadTTL(*targetTTL) - superBlock.ReplicaPlacement = replica + if err != nil { + glog.Fatalf("cannot parse target ttl %s: %v", *targetTTL, err) + } - header = superBlock.Bytes() + fmt.Printf("Changing ttl to: %s\n", ttl) - if n, e := datFile.WriteAt(header, 0); n == 0 || e != nil { - glog.Fatalf("cannot write super block: %v", e) + superBlock.Ttl = ttl + hasChange = true } - fmt.Println("Done.") + if hasChange { + + header = superBlock.Bytes() + + if n, e := datFile.WriteAt(header, 0); n == 0 || e != nil { + glog.Fatalf("cannot write super block: %v", e) + } + + fmt.Println("Change Applied.") + } } |
