Skip to content

Commit 60ffaea

Browse files
committed
feat: Optimize snapshot backup items
1 parent 7855e89 commit 60ffaea

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

agent/app/service/image_repo.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,15 @@ func stopBeforeUpdateRepo() error {
263263
if err := validateDockerConfig(); err != nil {
264264
return err
265265
}
266-
if err := controller.HandleRestart("docker"); err != nil {
266+
dockerService, _ := controller.LoadServiceName("docker")
267+
if len(dockerService) == 0 {
268+
return errors.New("docker service not found")
269+
}
270+
client, err := controller.New()
271+
if err != nil {
272+
return err
273+
}
274+
if err := client.Operate("restart", dockerService); err != nil {
267275
return fmt.Errorf("failed to restart Docker: %v", err)
268276
}
269277
ticker := time.NewTicker(3 * time.Second)
@@ -276,8 +284,8 @@ func stopBeforeUpdateRepo() error {
276284
cancel()
277285
return errors.New("the docker service cannot be restarted")
278286
default:
279-
active, err := controller.CheckActive("docker")
280-
if active && err != nil {
287+
active, _ := client.IsActive(dockerService)
288+
if active {
281289
global.LOG.Info("docker restart with new conf successful!")
282290
return nil
283291
}

agent/app/service/snapshot.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,26 @@ func loadPanelFile(fileOp fileUtils.FileOp) ([]dto.DataTree, error) {
336336
Path: path.Join(global.Dir.DataDir, fileItem.Name()),
337337
}
338338
switch itemData.Label {
339-
case "agent", "runtime", "docker", "task", "geo", "secret", "uploads":
339+
case "runtime", "docker", "task", "geo", "secret", "uploads":
340340
itemData.IsDisable = true
341341
case "clamav", "download":
342342
panelPath := path.Join(global.Dir.DataDir, itemData.Label)
343343
itemData.Children, _ = loadFile(panelPath, 3, fileOp)
344+
case "agent":
345+
panelPath := path.Join(global.Dir.DataDir, itemData.Label)
346+
itemData.Children, _ = loadFile(panelPath, 3, fileOp)
347+
itemData.IsCheck = false
348+
for i := 0; i < len(itemData.Children); i++ {
349+
if itemData.Children[i].Label != "package" {
350+
itemData.Children[i].IsDisable = true
351+
} else {
352+
itemData.Size = -itemData.Children[i].Size
353+
itemData.Children[i].IsCheck = false
354+
for j := 0; j < len(itemData.Children[i].Children); j++ {
355+
itemData.Children[i].Children[j].IsCheck = false
356+
}
357+
}
358+
}
344359
case "apps", "backup", "log", "db", "tmp":
345360
continue
346361
}
@@ -349,7 +364,7 @@ func loadPanelFile(fileOp fileUtils.FileOp) ([]dto.DataTree, error) {
349364
if err != nil {
350365
continue
351366
}
352-
itemData.Size = uint64(sizeItem)
367+
itemData.Size = uint64(int64(sizeItem) + int64(itemData.Size))
353368
} else {
354369
fileInfo, err := fileItem.Info()
355370
if err != nil {

agent/utils/files/file_op.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ func (f FileOp) CopyDir(src, dst string) error {
478478
if err = f.Fs.MkdirAll(dstDir, srcInfo.Mode()); err != nil {
479479
return err
480480
}
481-
return cmd.RunDefaultBashCf(`cp -rf '%s' '%s'`, src, dst+"/")
481+
return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -rf '%s' '%s'`, src, dst+"/")
482482
}
483483

484484
func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error {
@@ -491,7 +491,7 @@ func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error
491491
return err
492492
}
493493
if len(excludeNames) == 0 {
494-
return cmd.RunDefaultBashCf(`cp -rf '%s' '%s'`, src, dst+"/")
494+
return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -rf '%s' '%s'`, src, dst+"/")
495495
}
496496
tmpFiles, err := os.ReadDir(src)
497497
if err != nil {
@@ -524,7 +524,7 @@ func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error
524524

525525
func (f FileOp) CopyFile(src, dst string) error {
526526
dst = filepath.Clean(dst) + string(filepath.Separator)
527-
return cmd.RunDefaultBashCf(`cp -f '%s' '%s'`, src, dst+"/")
527+
return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -f '%s' '%s'`, src, dst+"/")
528528
}
529529

530530
func (f FileOp) GetDirSize(path string) (int64, error) {

0 commit comments

Comments
 (0)