diff --git a/agent/app/service/image_repo.go b/agent/app/service/image_repo.go index 8e050a3d1..fca1925a8 100644 --- a/agent/app/service/image_repo.go +++ b/agent/app/service/image_repo.go @@ -263,7 +263,15 @@ func stopBeforeUpdateRepo() error { if err := validateDockerConfig(); err != nil { return err } - if err := controller.HandleRestart("docker"); err != nil { + dockerService, _ := controller.LoadServiceName("docker") + if len(dockerService) == 0 { + return errors.New("docker service not found") + } + client, err := controller.New() + if err != nil { + return err + } + if err := client.Operate("restart", dockerService); err != nil { return fmt.Errorf("failed to restart Docker: %v", err) } ticker := time.NewTicker(3 * time.Second) @@ -276,8 +284,8 @@ func stopBeforeUpdateRepo() error { cancel() return errors.New("the docker service cannot be restarted") default: - active, err := controller.CheckActive("docker") - if active && err != nil { + active, _ := client.IsActive(dockerService) + if active { global.LOG.Info("docker restart with new conf successful!") return nil } diff --git a/agent/app/service/snapshot.go b/agent/app/service/snapshot.go index 976ce4a7b..e178e1f7b 100644 --- a/agent/app/service/snapshot.go +++ b/agent/app/service/snapshot.go @@ -336,11 +336,26 @@ func loadPanelFile(fileOp fileUtils.FileOp) ([]dto.DataTree, error) { Path: path.Join(global.Dir.DataDir, fileItem.Name()), } switch itemData.Label { - case "agent", "runtime", "docker", "task", "geo", "secret", "uploads": + case "runtime", "docker", "task", "geo", "secret", "uploads": itemData.IsDisable = true case "clamav", "download": panelPath := path.Join(global.Dir.DataDir, itemData.Label) itemData.Children, _ = loadFile(panelPath, 3, fileOp) + case "agent": + panelPath := path.Join(global.Dir.DataDir, itemData.Label) + itemData.Children, _ = loadFile(panelPath, 3, fileOp) + itemData.IsCheck = false + for i := 0; i < len(itemData.Children); i++ { + if itemData.Children[i].Label != "package" { + itemData.Children[i].IsDisable = true + } else { + itemData.Size = -itemData.Children[i].Size + itemData.Children[i].IsCheck = false + for j := 0; j < len(itemData.Children[i].Children); j++ { + itemData.Children[i].Children[j].IsCheck = false + } + } + } case "apps", "backup", "log", "db", "tmp": continue } @@ -349,7 +364,7 @@ func loadPanelFile(fileOp fileUtils.FileOp) ([]dto.DataTree, error) { if err != nil { continue } - itemData.Size = uint64(sizeItem) + itemData.Size = uint64(int64(sizeItem) + int64(itemData.Size)) } else { fileInfo, err := fileItem.Info() if err != nil { diff --git a/agent/utils/files/file_op.go b/agent/utils/files/file_op.go index 5bd8aa48b..558ce9a01 100644 --- a/agent/utils/files/file_op.go +++ b/agent/utils/files/file_op.go @@ -478,7 +478,7 @@ func (f FileOp) CopyDir(src, dst string) error { if err = f.Fs.MkdirAll(dstDir, srcInfo.Mode()); err != nil { return err } - return cmd.RunDefaultBashCf(`cp -rf '%s' '%s'`, src, dst+"/") + return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -rf '%s' '%s'`, src, dst+"/") } func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error { @@ -491,7 +491,7 @@ func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error return err } if len(excludeNames) == 0 { - return cmd.RunDefaultBashCf(`cp -rf '%s' '%s'`, src, dst+"/") + return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -rf '%s' '%s'`, src, dst+"/") } tmpFiles, err := os.ReadDir(src) if err != nil { @@ -524,7 +524,7 @@ func (f FileOp) CopyDirWithExclude(src, dst string, excludeNames []string) error func (f FileOp) CopyFile(src, dst string) error { dst = filepath.Clean(dst) + string(filepath.Separator) - return cmd.RunDefaultBashCf(`cp -f '%s' '%s'`, src, dst+"/") + return cmd.NewCommandMgr(cmd.WithIgnoreExist1()).RunBashCf(`cp -f '%s' '%s'`, src, dst+"/") } func (f FileOp) GetDirSize(path string) (int64, error) { diff --git a/frontend/src/views/terminal/setting/index.vue b/frontend/src/views/terminal/setting/index.vue index aa79e7f9c..c764b7e4f 100644 --- a/frontend/src/views/terminal/setting/index.vue +++ b/frontend/src/views/terminal/setting/index.vue @@ -105,7 +105,7 @@ - +