Skip to content

Commit fe46fb4

Browse files
committed
consolidate image layer handling; move fs utils
Signed-off-by: Joe Lanford <[email protected]>
1 parent 88fe788 commit fe46fb4

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

catalogd/internal/source/containers_image.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,14 @@ func (i *ContainersImageRegistry) Unpack(ctx context.Context, catalog *catalogdv
7171
//
7272
//////////////////////////////////////////////////////
7373
unpackPath := i.unpackPath(catalog.Name, canonicalRef.Digest())
74-
if isUnpacked, unpackTime, err := fsutil.IsDirectoryPresent(unpackPath, true); isUnpacked && err == nil {
74+
if unpackTime, err := fsutil.GetDirectoryModTime(unpackPath); err == nil {
7575
l.Info("image already unpacked", "ref", imgRef.String(), "digest", canonicalRef.Digest().String())
7676
return successResult(unpackPath, canonicalRef, unpackTime), nil
77-
} else if err != nil {
77+
} else if errors.Is(err, fsutil.ErrNotDirectory) {
78+
if err := fsutil.DeleteReadOnlyRecursive(unpackPath); err != nil {
79+
return nil, err
80+
}
81+
} else if err != nil && !os.IsNotExist(err) {
7882
return nil, fmt.Errorf("error checking image already unpacked: %w", err)
7983
}
8084

internal/rukpak/source/containers_image.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,15 @@ func (i *ContainersImageRegistry) Unpack(ctx context.Context, bundle *BundleSour
6767
//
6868
//////////////////////////////////////////////////////
6969
unpackPath := i.unpackPath(bundle.Name, canonicalRef.Digest())
70-
if isUnpacked, _, err := fsutil.IsDirectoryPresent(unpackPath, true); isUnpacked && err == nil {
70+
if _, err := fsutil.GetDirectoryModTime(unpackPath); err == nil {
7171
l.Info("image already unpacked", "ref", imgRef.String(), "digest", canonicalRef.Digest().String())
7272
return successResult(bundle.Name, unpackPath, canonicalRef), nil
73-
} else if err != nil {
74-
return nil, fmt.Errorf("error checking bundle already unpacked: %w", err)
73+
} else if errors.Is(err, fsutil.ErrNotDirectory) {
74+
if err := fsutil.DeleteReadOnlyRecursive(unpackPath); err != nil {
75+
return nil, err
76+
}
77+
} else if err != nil && !os.IsNotExist(err) {
78+
return nil, fmt.Errorf("error checking image already unpacked: %w", err)
7579
}
7680

7781
//////////////////////////////////////////////////////

0 commit comments

Comments
 (0)