Skip to content

Commit f829fa7

Browse files
committed
debug
Signed-off-by: ChengyuZhu6 <[email protected]>
1 parent a8fa382 commit f829fa7

File tree

3 files changed

+31
-46
lines changed

3 files changed

+31
-46
lines changed

cmd/nerdctl/manifest/manifest_inspect.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/spf13/cobra"
2121

2222
"github.com/containerd/log"
23+
2324
"github.com/containerd/nerdctl/v2/cmd/nerdctl/completion"
2425
"github.com/containerd/nerdctl/v2/cmd/nerdctl/helpers"
2526
"github.com/containerd/nerdctl/v2/pkg/api/types"

cmd/nerdctl/manifest/manifest_inspect_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ import (
2020
"encoding/json"
2121
"testing"
2222

23+
"gotest.tools/v3/assert"
24+
2325
"github.com/containerd/nerdctl/mod/tigron/test"
2426
"github.com/containerd/nerdctl/mod/tigron/tig"
27+
2528
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest"
26-
"gotest.tools/v3/assert"
2729
)
2830

2931
func TestManifestInspect(t *testing.T) {

pkg/cmd/manifest/inspect.go

Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@ package manifest
1919
import (
2020
"context"
2121
"encoding/json"
22-
"errors"
2322
"fmt"
2423
"regexp"
2524
"strings"
2625

26+
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
27+
2728
containerd "github.com/containerd/containerd/v2/client"
2829
"github.com/containerd/containerd/v2/core/images"
30+
2931
"github.com/containerd/nerdctl/v2/pkg/api/types"
3032
"github.com/containerd/nerdctl/v2/pkg/containerdutil"
3133
"github.com/containerd/nerdctl/v2/pkg/inspecttypes/native"
3234
"github.com/containerd/nerdctl/v2/pkg/manifestinspector"
3335
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
34-
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
3536
)
3637

3738
func Inspect(ctx context.Context, client *containerd.Client, rawRef string, options types.ManifestInspectOptions) ([]any, error) {
@@ -88,32 +89,24 @@ func inspectIdentifier(ctx context.Context, client *containerd.Client, identifie
8889
}
8990

9091
func getManifest(ctx context.Context, client *containerd.Client, rawRef string, options types.ManifestInspectOptions) ([]any, error) {
91-
var errs []error
9292
var entries []interface{}
9393

9494
candidateImageList, _, _, err := inspectIdentifier(ctx, client, rawRef)
9595
if err != nil {
96-
errs = append(errs, fmt.Errorf("%w: %s", err, rawRef))
9796
return nil, err
9897
}
9998
for _, candidateImage := range candidateImageList {
10099
entry, err := manifestinspector.Inspect(ctx, client, candidateImage)
101100
if err != nil {
102-
errs = append(errs, fmt.Errorf("%w: %s", err, candidateImage.Name))
103101
continue
104102
}
105103
// Process entry based on rawRef and verbose options
106104
processedEntry := processManifestEntry(entry, rawRef, options.Verbose)
107105
entries = append(entries, processedEntry)
108106
}
109-
if len(errs) > 0 {
110-
return []any{}, fmt.Errorf("%d errors:\n%w", len(errs), errors.Join(errs...))
111-
}
112-
113107
if len(entries) == 0 {
114108
return []any{}, fmt.Errorf("no manifest found for %s", rawRef)
115109
}
116-
117110
return entries, nil
118111
}
119112

@@ -143,52 +136,41 @@ func processManifestEntry(entry *native.Manifest, rawRef string, verbose bool) *
143136
// index is empty, only output Manifest field from Manifests
144137
if len(entry.Manifests) == 1 {
145138
// If there's only one manifest, output it directly without the Manifests wrapper
146-
result.Manifests = []native.ManifestEntry{
147-
{
148-
Manifest: entry.Manifests[0].Manifest,
149-
},
150-
}
139+
result.Manifests = []native.ManifestEntry{{Manifest: entry.Manifests[0].Manifest}}
151140
} else {
152141
for _, manifestEntry := range entry.Manifests {
153-
result.Manifests = append(result.Manifests, native.ManifestEntry{
154-
Manifest: manifestEntry.Manifest,
155-
})
142+
result.Manifests = append(result.Manifests, native.ManifestEntry{Manifest: manifestEntry.Manifest})
156143
}
157144
}
158145
}
159146
return result
160-
} else {
161-
// If rawRef has digest, find matching content
162-
163-
// Check if digest matches index digest
164-
if entry.IndexDesc != nil && entry.IndexDesc.Digest.String() == digest {
147+
}
148+
// If rawRef has digest, find matching content
149+
// Check if digest matches index digest
150+
if entry.IndexDesc != nil && entry.IndexDesc.Digest.String() == digest {
151+
if verbose {
152+
// verbose is true, output complete entry but clear manifests field
153+
result.Index = entry.Index
154+
result.IndexDesc = entry.IndexDesc
155+
return result
156+
}
157+
// verbose is false, only output Index if index is not empty
158+
result.Index = entry.Index
159+
return result
160+
}
161+
// Check if digest matches manifest digest
162+
for _, manifestEntry := range entry.Manifests {
163+
if manifestEntry.ManifestDesc != nil && manifestEntry.ManifestDesc.Digest.String() == digest {
164+
// Only keep matching manifestEntry
165165
if verbose {
166-
// verbose is true, output complete entry but clear manifests field
167-
result.Index = entry.Index
168-
result.IndexDesc = entry.IndexDesc
166+
result.Manifests = append(result.Manifests, manifestEntry)
169167
} else {
170-
// verbose is false, only output Index if index is not empty
171-
result.Index = entry.Index
172-
}
173-
} else {
174-
// Check if digest matches manifest digest
175-
for _, manifestEntry := range entry.Manifests {
176-
if manifestEntry.ManifestDesc != nil && manifestEntry.ManifestDesc.Digest.String() == digest {
177-
// Only keep matching manifestEntry
178-
if verbose {
179-
result.Manifests = append(result.Manifests, manifestEntry)
180-
} else {
181-
result.Manifests = append(result.Manifests, native.ManifestEntry{
182-
Manifest: manifestEntry.Manifest,
183-
})
184-
}
185-
break
186-
}
168+
result.Manifests = append(result.Manifests, native.ManifestEntry{Manifest: manifestEntry.Manifest})
187169
}
170+
break
188171
}
189-
return result
190172
}
191-
173+
return result
192174
}
193175

194176
func findImageByManifestDigest(

0 commit comments

Comments
 (0)