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

Method ImageRemove

agent/app/service/image.go:499–540  ·  view source on GitHub ↗
(req dto.BatchDelete)

Source from the content-addressed store, hash-verified

497}
498
499func (u *ImageService) ImageRemove(req dto.BatchDelete) error {
500 client, err := docker.NewDockerClient()
501 if err != nil {
502 return err
503 }
504 defer client.Close()
505 taskItem, err := task.NewTaskWithOps(strings.Join(req.Names, ","), task.TaskDelete, task.TaskScopeImage, req.TaskID, 1)
506 if err != nil {
507 global.LOG.Errorf("new task for create container failed, err: %v", err)
508 return err
509 }
510
511 for _, id := range req.Names {
512 taskItem.AddSubTask(i18n.GetMsgByKey("TaskDelete")+id, func(t *task.Task) error {
513 imageItem, err := client.ImageInspect(context.TODO(), id)
514 if err != nil {
515 return err
516 }
517 if _, err := client.ImageRemove(context.TODO(), id, image.RemoveOptions{Force: req.Force, PruneChildren: true}); err != nil {
518 if strings.Contains(err.Error(), "image is being used") || strings.Contains(err.Error(), "is using") {
519 if strings.Contains(id, "sha256:") {
520 return buserr.New("ErrObjectInUsed")
521 }
522 return buserr.WithDetail("ErrInUsed", id, nil)
523 }
524 if strings.Contains(err.Error(), "image has dependent") {
525 return buserr.New("ErrObjectBeDependent")
526 }
527 return err
528 }
529 taskItem.Log(i18n.GetMsgWithMap("ImageRemoveHelper", map[string]interface{}{"name": id, "size": common.LoadSizeUnit2F(float64(imageItem.Size))}))
530 return nil
531 }, nil)
532 }
533 if len(req.TaskID) == 0 {
534 return taskItem.Execute()
535 }
536 go func() {
537 _ = taskItem.Execute()
538 }()
539 return nil
540}
541
542func checkUsed(imageID string, containers []container.Summary) bool {
543 for _, container := range containers {

Callers

nothing calls this directly

Calls 6

CloseMethod · 0.65
ImageRemoveMethod · 0.65
AddSubTaskMethod · 0.45
ErrorMethod · 0.45
LogMethod · 0.45
ExecuteMethod · 0.45

Tested by

no test coverage detected