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

Method ImageLoad

agent/app/service/image.go:323–365  ·  view source on GitHub ↗
(req dto.ImageLoad)

Source from the content-addressed store, hash-verified

321}
322
323func (u *ImageService) ImageLoad(req dto.ImageLoad) error {
324 taskItem, err := task.NewTaskWithOps(strings.Join(req.Paths, ","), task.TaskImport, task.TaskScopeImage, req.TaskID, 1)
325 if err != nil {
326 return fmt.Errorf("new task for image import failed, err: %v", err)
327 }
328
329 go func() {
330 client, err := docker.NewDockerClient()
331 if err != nil {
332 taskItem.Log("Failed to create Docker client: " + err.Error())
333 return
334 }
335 defer client.Close()
336
337 for _, itemPath := range req.Paths {
338 currentPath := itemPath
339 itemName := path.Base(currentPath)
340 taskItem.AddSubTask(i18n.GetWithName("TaskImport", itemName), func(t *task.Task) error {
341 taskItem.Logf("----------------- %s -----------------", itemName)
342 file, err := os.Open(currentPath)
343 if err != nil {
344 return err
345 }
346 defer file.Close()
347 res, err := client.ImageLoad(context.TODO(), file)
348 if err != nil {
349 return err
350 }
351 defer res.Body.Close()
352 content, err := io.ReadAll(res.Body)
353 if err != nil {
354 return err
355 }
356 if strings.Contains(string(content), "Error") {
357 return errors.New(string(content))
358 }
359 return nil
360 }, nil)
361 }
362 _ = taskItem.Execute()
363 }()
364 return nil
365}
366
367func (u *ImageService) ImageSave(req dto.ImageSave) error {
368 taskItem, err := task.NewTaskWithOps(req.Name, task.TaskExport, task.TaskScopeImage, req.TaskID, 1)

Callers

nothing calls this directly

Calls 7

CloseMethod · 0.65
ImageLoadMethod · 0.65
LogMethod · 0.45
ErrorMethod · 0.45
AddSubTaskMethod · 0.45
LogfMethod · 0.45
ExecuteMethod · 0.45

Tested by

no test coverage detected