Skip to content

Commit 825acd5

Browse files
authored
feat: Optimize snapshot backup items (#11385)
1 parent 70e64e6 commit 825acd5

File tree

4 files changed

+49
-13
lines changed

4 files changed

+49
-13
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) {

frontend/src/views/terminal/setting/index.vue

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
</LayoutContent>
106106
<OperateDialog @search="loadConnShow" ref="dialogRef" />
107107

108-
<OpDialog ref="opRef" @search="search" @cancel="loadConnShow">
108+
<OpDialog ref="opRef" @search="search" @cancel="loadConnShow" @submit="submitChangeShow">
109109
<template #content>
110110
<el-form class="mt-4 mb-1" ref="deleteForm" v-if="!form.showDefaultConn" label-position="left">
111111
<el-form-item>
@@ -200,12 +200,25 @@ const changeShow = async () => {
200200
title: i18n.global.t('terminal.defaultConn'),
201201
names: [],
202202
msg: i18n.global.t('terminal.defaultConnHelper', [op]),
203-
noMsg: false,
204-
successMsg: i18n.global.t('commons.msg.operationSuccess'),
205-
api: updateLocalConn,
206-
params: { withReset: resetConn.value, defaultConn: form.showDefaultConn ? 'Enable' : 'Disable' },
203+
api: null,
204+
params: {},
207205
});
208206
};
207+
const submitChangeShow = async () => {
208+
loading.value = true;
209+
await updateLocalConn({
210+
withReset: resetConn.value,
211+
defaultConn: form.showDefaultConn ? 'Enable' : 'Disable',
212+
})
213+
.then(() => {
214+
loading.value = false;
215+
loadConnShow();
216+
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
217+
})
218+
.finally(() => {
219+
loading.value = false;
220+
});
221+
};
209222
210223
const iniTerm = () => {
211224
term.value = new Terminal({

0 commit comments

Comments
 (0)