cleanly destroy remote files
This commit is contained in:
@@ -225,6 +225,9 @@ func (v *Volume) ToVolumeInformationMessage() *master_pb.VolumeInformationMessag
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v *Volume) RemoteStorageNameKey() (storageName, storageKey string) {
|
func (v *Volume) RemoteStorageNameKey() (storageName, storageKey string) {
|
||||||
|
if v.volumeTierInfo == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
if len(v.volumeTierInfo.GetFiles()) == 0 {
|
if len(v.volumeTierInfo.GetFiles()) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,12 @@ func (v *Volume) Destroy() (err error) {
|
|||||||
err = fmt.Errorf("volume %d is compacting", v.Id)
|
err = fmt.Errorf("volume %d is compacting", v.Id)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
storageName, storageKey := v.RemoteStorageNameKey()
|
||||||
|
if v.HasRemoteFile() && storageName != "" && storageKey != "" {
|
||||||
|
if backendStorage, found := backend.BackendStorages[storageName]; found {
|
||||||
|
backendStorage.DeleteFile(storageKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
v.Close()
|
v.Close()
|
||||||
os.Remove(v.FileName() + ".dat")
|
os.Remove(v.FileName() + ".dat")
|
||||||
os.Remove(v.FileName() + ".idx")
|
os.Remove(v.FileName() + ".idx")
|
||||||
|
|||||||
@@ -66,6 +66,14 @@ func (v *Volume) maybeLoadVolumeTierInfo() bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (v *Volume) HasRemoteFile() bool {
|
||||||
|
if v.DataBackend == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
_, ok := v.DataBackend.(*backend.DiskFile)
|
||||||
|
return !ok
|
||||||
|
}
|
||||||
|
|
||||||
func (v *Volume) LoadRemoteFile() error {
|
func (v *Volume) LoadRemoteFile() error {
|
||||||
tierFile := v.volumeTierInfo.GetFiles()[0]
|
tierFile := v.volumeTierInfo.GetFiles()[0]
|
||||||
backendStorage := backend.BackendStorages[tierFile.BackendName()]
|
backendStorage := backend.BackendStorages[tierFile.BackendName()]
|
||||||
|
|||||||
Reference in New Issue
Block a user