github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/pkg/bindings/containers/diff.go (about)

     1  package containers
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  
     7  	"github.com/hanks177/podman/v4/pkg/bindings"
     8  	"github.com/containers/storage/pkg/archive"
     9  )
    10  
    11  // Diff provides the changes between two container layers
    12  func Diff(ctx context.Context, nameOrID string, options *DiffOptions) ([]archive.Change, error) {
    13  	if options == nil {
    14  		options = new(DiffOptions)
    15  	}
    16  	conn, err := bindings.GetClient(ctx)
    17  	if err != nil {
    18  		return nil, err
    19  	}
    20  
    21  	params, err := options.ToParams()
    22  	if err != nil {
    23  		return nil, err
    24  	}
    25  	response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/containers/%s/changes", params, nil, nameOrID)
    26  	if err != nil {
    27  		return nil, err
    28  	}
    29  	defer response.Body.Close()
    30  
    31  	var changes []archive.Change
    32  	return changes, response.Process(&changes)
    33  }