MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / ContainerBackup

Method ContainerBackup

agent/app/service/backup_container.go:82–113  ·  view source on GitHub ↗
(req dto.CommonBackup)

Source from the content-addressed store, hash-verified

80}
81
82func (u *BackupService) ContainerBackup(req dto.CommonBackup) error {
83 timeNow := time.Now().Format(constant.DateTimeSlimLayout) + common.RandStrAndNum(5)
84 fileName := req.FileName
85 if fileName == "" {
86 fileName = fmt.Sprintf("%s_%s.tar.gz", req.Name, timeNow)
87 }
88 if !strings.HasSuffix(fileName, ".tar.gz") {
89 fileName += ".tar.gz"
90 }
91 itemDir := fmt.Sprintf("container/%s", req.Name)
92 backupDir := path.Join(global.Dir.LocalBackupDir, itemDir)
93 record := &model.BackupRecord{
94 Type: req.Type,
95 Name: req.Name,
96 SourceAccountIDs: "1",
97 DownloadAccountID: 1,
98 FileDir: itemDir,
99 FileName: fileName,
100 TaskID: req.TaskID,
101 Status: constant.StatusWaiting,
102 Description: req.Description,
103 }
104 if err := backupRepo.CreateRecord(record); err != nil {
105 global.LOG.Errorf("save backup record failed, err: %v", err)
106 return err
107 }
108 if err := handleContainerBackup(req.Name, nil, record.ID, backupDir, fileName, req.TaskID, req.Secret, req.StopBefore); err != nil {
109 backupRepo.UpdateRecordByMap(record.ID, map[string]interface{}{"status": constant.StatusFailed, "message": err.Error()})
110 return err
111 }
112 return nil
113}
114
115func (u *BackupService) ContainerRecover(req dto.CommonRecover) error {
116 return handleContainerRecover(req, nil)

Callers

nothing calls this directly

Calls 5

handleContainerBackupFunction · 0.85
CreateRecordMethod · 0.65
UpdateRecordByMapMethod · 0.65
FormatMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected