mirror of
https://github.com/beclab/Olares
synced 2026-04-21 21:47:56 +00:00
255 lines
5 KiB
Go
255 lines
5 KiB
Go
package storage
|
|
|
|
import (
|
|
"github.com/beclab/Olares/cli/pkg/common"
|
|
"github.com/beclab/Olares/cli/pkg/core/prepare"
|
|
"github.com/beclab/Olares/cli/pkg/core/task"
|
|
)
|
|
|
|
type InitStorageModule struct {
|
|
common.KubeModule
|
|
Skip bool
|
|
}
|
|
|
|
func (m *InitStorageModule) IsSkip() bool {
|
|
return m.Skip
|
|
}
|
|
|
|
func (m *InitStorageModule) Init() {
|
|
m.Name = "InitStorage"
|
|
|
|
mkStorageDir := &task.RemoteTask{
|
|
Name: "CreateStorageDir",
|
|
Hosts: m.Runtime.GetAllHosts(),
|
|
Prepare: &prepare.PrepareCollection{
|
|
&CheckStorageVendor{},
|
|
},
|
|
Action: new(MkStorageDir),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
mkStorageDir,
|
|
}
|
|
}
|
|
|
|
type RemoveMountModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (m *RemoveMountModule) Init() {
|
|
m.Name = "DeleteS3Mount"
|
|
|
|
downloadStorageCli := &task.RemoteTask{
|
|
Name: "DownloadStorageCli",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(CheckStorageVendor),
|
|
},
|
|
Action: new(DownloadStorageCli),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
unMountOSS := &task.RemoteTask{
|
|
Name: "UnMountOSS",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
&CheckStorageType{
|
|
StorageType: common.OSS,
|
|
},
|
|
},
|
|
Action: new(UnMountOSS),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
unMountCOS := &task.RemoteTask{
|
|
Name: "UnMountCOS",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
&CheckStorageType{
|
|
StorageType: common.COS,
|
|
},
|
|
},
|
|
Action: new(UnMountCOS),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
unMountS3 := &task.RemoteTask{
|
|
Name: "UnMountS3",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
&CheckStorageType{
|
|
StorageType: common.S3,
|
|
},
|
|
},
|
|
Action: new(UnMountS3),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
downloadStorageCli,
|
|
unMountOSS,
|
|
unMountCOS,
|
|
unMountS3,
|
|
}
|
|
}
|
|
|
|
type RemoveStorageModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (m *RemoveStorageModule) Init() {
|
|
m.Name = "RemoveStorage"
|
|
|
|
stopMinio := &task.RemoteTask{
|
|
Name: "StopMinio",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(StopMinio),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
|
|
stopMinioOperator := &task.RemoteTask{
|
|
Name: "StopMinioOperator",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(StopMinioOperator),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
|
|
removeTerminusFiles := &task.RemoteTask{
|
|
Name: "RemoveOlaresFiles",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(RemoveTerminusFiles),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
stopMinio,
|
|
stopMinioOperator,
|
|
removeTerminusFiles,
|
|
}
|
|
}
|
|
|
|
type RemoveJuiceFSModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (m *RemoveJuiceFSModule) Init() {
|
|
m.Name = "RemoveJuiceFS"
|
|
|
|
stopJuiceFS := &task.RemoteTask{
|
|
Name: "StopJuiceFS",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(StopJuiceFS),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
|
|
stopRedis := &task.RemoteTask{
|
|
Name: "StopRedis",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(StopRedis),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
|
|
removeJuiceFSFiles := &task.RemoteTask{
|
|
Name: "RemoveJuiceFSFiles",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Prepare: &prepare.PrepareCollection{
|
|
new(common.OnlyFirstMaster),
|
|
},
|
|
Action: new(RemoveJuiceFSFiles),
|
|
Parallel: false,
|
|
Retry: 0,
|
|
}
|
|
m.Tasks = []task.Interface{
|
|
stopJuiceFS,
|
|
stopRedis,
|
|
removeJuiceFSFiles,
|
|
}
|
|
}
|
|
|
|
type DeletePhaseFlagModule struct {
|
|
common.KubeModule
|
|
PhaseFile string
|
|
BaseDir string
|
|
}
|
|
|
|
func (m *DeletePhaseFlagModule) Init() {
|
|
m.Name = "DeletePhaseFlag"
|
|
|
|
deletePhaseFlagFile := &task.LocalTask{
|
|
Name: "DeletePhaseFlag",
|
|
Action: &DeletePhaseFlagFile{
|
|
PhaseFile: m.PhaseFile,
|
|
BaseDir: m.BaseDir,
|
|
},
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
deletePhaseFlagFile,
|
|
}
|
|
}
|
|
|
|
type DeleteUserDataModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (m *DeleteUserDataModule) Init() {
|
|
m.Name = "DeleteUserData"
|
|
|
|
deleteTerminusUserData := &task.RemoteTask{
|
|
Name: "DeleteUserData",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Action: new(DeleteTerminusUserData),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
deleteTerminusUserData,
|
|
}
|
|
}
|
|
|
|
type DeleteTerminusDataModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (m *DeleteTerminusDataModule) Init() {
|
|
m.Name = "DeleteOlaresData"
|
|
|
|
deleteTerminusData := &task.RemoteTask{
|
|
Name: "DeleteOlaresData",
|
|
Hosts: m.Runtime.GetHostsByRole(common.Master),
|
|
Action: new(DeleteTerminusData),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
deleteTerminusData,
|
|
}
|
|
}
|