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

Method UpdateSwap

agent/app/service/device.go:237–285  ·  view source on GitHub ↗
(req dto.SwapHelper)

Source from the content-addressed store, hash-verified

235}
236
237func (u *DeviceService) UpdateSwap(req dto.SwapHelper) error {
238 taskItem, err := task.NewTaskWithOps(req.Path, task.TaskSwapSet, task.TaskScopeSystem, req.TaskID, 1)
239 if err != nil {
240 global.LOG.Errorf("new task for create container failed, err: %v", err)
241 return err
242 }
243
244 taskItem.AddSubTask(i18n.GetMsgWithMap("SetSwap", map[string]interface{}{"path": req.Path, "size": common.LoadSizeUnit2F(float64(req.Size * 1024))}), func(t *task.Task) error {
245 if cmd.CheckIllegal(req.Path) {
246 return buserr.New("ErrCmdIllegal")
247 }
248 cmdMgr := cmd.NewCommandMgr(cmd.WithTask(*taskItem))
249 if !req.IsNew {
250 if err := cmdMgr.Run("swapoff", req.Path); err != nil {
251 return fmt.Errorf("handle swapoff %s failed, %v", req.Path, err)
252 }
253 }
254 if req.Size == 0 {
255 if req.Path == path.Join(global.Dir.BaseDir, ".1panel_swap") {
256 _ = os.Remove(path.Join(global.Dir.BaseDir, ".1panel_swap"))
257 }
258 return operateSwapWithFile(true, req)
259 }
260 taskItem.LogStart(i18n.GetMsgByKey("CreateSwap"))
261 if err := cmdMgr.Run("dd", "if=/dev/zero", fmt.Sprintf("of=%s", req.Path), "bs=1024", fmt.Sprintf("count=%d", req.Size)); err != nil {
262 return fmt.Errorf("handle dd %s failed, %v", req.Path, err)
263 }
264
265 taskItem.Log("chmod 0600 " + req.Path)
266 if err := cmdMgr.Run("chmod", "0600", req.Path); err != nil {
267 return fmt.Errorf("handle chmod 0600 %s failed, %v", req.Path, err)
268 }
269 taskItem.LogStart(i18n.GetMsgByKey("FormatSwap"))
270 if err := cmdMgr.Run("mkswap", "-f", req.Path); err != nil {
271 return fmt.Errorf("handle mkswap -f %s failed, %v", req.Path, err)
272 }
273
274 taskItem.LogStart(i18n.GetMsgByKey("EnableSwap"))
275 if err := cmdMgr.Run("swapon", req.Path); err != nil {
276 _ = cmdMgr.Run("swapoff", req.Path)
277 return fmt.Errorf("handle swapoff %s failed, %v", req.Path, err)
278 }
279 return operateSwapWithFile(false, req)
280 }, nil)
281 go func() {
282 _ = taskItem.Execute()
283 }()
284 return nil
285}
286
287func (u *DeviceService) LoadConf(name string) (string, error) {
288 pathItem := ""

Callers

nothing calls this directly

Calls 6

operateSwapWithFileFunction · 0.85
RunMethod · 0.65
AddSubTaskMethod · 0.45
LogStartMethod · 0.45
LogMethod · 0.45
ExecuteMethod · 0.45

Tested by

no test coverage detected