Skip to content

refactor: apply metadata render interface to index commands #1606

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions cmd/oras/internal/display/metadata/discard.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,5 @@ func (Discard) OnTagged(ocispec.Descriptor, string) error {
return nil
}

// OnCompleted implements ManifestIndexCreateHandler.
func (Discard) OnCompleted(ocispec.Descriptor) error {
return nil
}
// OnIndexCreated implements ManifestIndexCreateHandler.
func (Discard) OnIndexCreated(ocispec.Descriptor) {}
4 changes: 3 additions & 1 deletion cmd/oras/internal/display/metadata/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ type ManifestPushHandler interface {
// ManifestIndexCreateHandler handles metadata output for index create events.
type ManifestIndexCreateHandler interface {
TaggedHandler
OnCompleted(desc ocispec.Descriptor) error
Renderer

OnIndexCreated(desc ocispec.Descriptor)
}

// ManifestIndexUpdateHandler handles metadata output for index update events.
Expand Down
12 changes: 9 additions & 3 deletions cmd/oras/internal/display/metadata/text/manifest_index.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
// ManifestIndexCreateHandler handles text metadata output for index create events.
type ManifestIndexCreateHandler struct {
printer *output.Printer
root ocispec.Descriptor
}

// NewManifestIndexCreateHandler returns a new handler for index create events.
Expand All @@ -38,7 +39,12 @@ func (h *ManifestIndexCreateHandler) OnTagged(_ ocispec.Descriptor, tag string)
return h.printer.Println("Tagged", tag)
}

// OnCompleted implements ManifestIndexCreateHandler.
func (h *ManifestIndexCreateHandler) OnCompleted(desc ocispec.Descriptor) error {
return h.printer.Println("Digest:", desc.Digest)
// OnIndexCreated implements ManifestIndexCreateHandler.
func (h *ManifestIndexCreateHandler) OnIndexCreated(desc ocispec.Descriptor) {
h.root = desc
}

// Render implements ManifestIndexCreateHandler.
func (h *ManifestIndexCreateHandler) Render() error {
return h.printer.Println("Digest:", h.root.Digest)
}
4 changes: 2 additions & 2 deletions cmd/oras/internal/display/metadata/text/push_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (w *errorWriter) Write(p []byte) (n int, err error) {
return 0, fmt.Errorf("got an error")
}

func TestPushHandler_OnCompleted(t *testing.T) {
func TestPushHandler_Render(t *testing.T) {
content := []byte("content")
tests := []struct {
name string
Expand Down Expand Up @@ -71,7 +71,7 @@ func TestPushHandler_OnCompleted(t *testing.T) {
root: tt.root,
}
if err := p.Render(); (err != nil) != tt.wantErr {
t.Errorf("PushHandler.OnCompleted() error = %v, wantErr %v", err, tt.wantErr)
t.Errorf("PushHandler.Render() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
Expand Down
3 changes: 2 additions & 1 deletion cmd/oras/root/manifest/index/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ func createIndex(cmd *cobra.Command, opts createOptions) error {
return err
}
}
return displayMetadata.OnCompleted(desc)
displayMetadata.OnIndexCreated(desc)
return displayMetadata.Render()
}

func fetchSourceManifests(ctx context.Context, displayStatus status.ManifestIndexCreateHandler, target oras.ReadOnlyTarget, sources []string) ([]ocispec.Descriptor, error) {
Expand Down
3 changes: 2 additions & 1 deletion cmd/oras/root/manifest/index/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@ func updateIndex(cmd *cobra.Command, opts updateOptions) error {
return err
}
}
return displayMetadata.OnCompleted(desc)
displayMetadata.OnIndexCreated(desc)
return displayMetadata.Render()
}

func fetchIndex(ctx context.Context, handler status.ManifestIndexUpdateHandler, target oras.ReadOnlyTarget, reference string) (ocispec.Index, error) {
Expand Down
Loading