(node, storage string, params map[string]interface{})
| 956 | } |
| 957 | |
| 958 | func (s *MockState) QueueOCIPullStorageContent(node, storage string, params map[string]interface{}) (string, error) { |
| 959 | reference := getStringParam(params, "reference", "") |
| 960 | filename := getStringParam(params, "filename", "") |
| 961 | |
| 962 | if strings.TrimSpace(reference) == "" { |
| 963 | return "", fmt.Errorf("reference is required") |
| 964 | } |
| 965 | |
| 966 | storageEntry, err := s.getStorage(node, storage) |
| 967 | if err != nil { |
| 968 | return "", err |
| 969 | } |
| 970 | if err := validateStorageDownloadContent(storageEntry, "import"); err != nil { |
| 971 | return "", err |
| 972 | } |
| 973 | |
| 974 | volume := buildOCIStorageVolume(node, storage, reference, filename) |
| 975 | return s.createTaskWithCompletion(node, "ocipull", volume.VolID, "root@pam", func() { |
| 976 | s.mu.Lock() |
| 977 | defer s.mu.Unlock() |
| 978 | s.addStorageVolumeLocked(volume) |
| 979 | s.recalculateStorageUsageLocked() |
| 980 | }), nil |
| 981 | } |
| 982 | |
| 983 | func (s *MockState) addStorageVolumeLocked(volume *MockStorageVolume) { |
| 984 | key := storageContentKey(volume.Node, volume.Storage) |
no test coverage detected