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

     1  package secrets
     2  
     3  import (
     4  	"context"
     5  	"io"
     6  	"net/http"
     7  
     8  	"github.com/hanks177/podman/v4/pkg/bindings"
     9  	"github.com/hanks177/podman/v4/pkg/domain/entities"
    10  )
    11  
    12  // List returns information about existing secrets in the form of a slice.
    13  func List(ctx context.Context, options *ListOptions) ([]*entities.SecretInfoReport, error) {
    14  	var (
    15  		secrs []*entities.SecretInfoReport
    16  	)
    17  	conn, err := bindings.GetClient(ctx)
    18  	if err != nil {
    19  		return nil, err
    20  	}
    21  	params, err := options.ToParams()
    22  	if err != nil {
    23  		return nil, err
    24  	}
    25  	response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/secrets/json", params, nil)
    26  	if err != nil {
    27  		return secrs, err
    28  	}
    29  	defer response.Body.Close()
    30  
    31  	return secrs, response.Process(&secrs)
    32  }
    33  
    34  // Inspect returns low-level information about a secret.
    35  func Inspect(ctx context.Context, nameOrID string, options *InspectOptions) (*entities.SecretInfoReport, error) {
    36  	var (
    37  		inspect *entities.SecretInfoReport
    38  	)
    39  	conn, err := bindings.GetClient(ctx)
    40  	if err != nil {
    41  		return nil, err
    42  	}
    43  	response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/secrets/%s/json", nil, nil, nameOrID)
    44  	if err != nil {
    45  		return inspect, err
    46  	}
    47  	defer response.Body.Close()
    48  
    49  	return inspect, response.Process(&inspect)
    50  }
    51  
    52  // Remove removes a secret from storage
    53  func Remove(ctx context.Context, nameOrID string) error {
    54  	conn, err := bindings.GetClient(ctx)
    55  	if err != nil {
    56  		return err
    57  	}
    58  
    59  	response, err := conn.DoRequest(ctx, nil, http.MethodDelete, "/secrets/%s", nil, nil, nameOrID)
    60  	if err != nil {
    61  		return err
    62  	}
    63  	defer response.Body.Close()
    64  
    65  	return response.Process(nil)
    66  }
    67  
    68  // Create creates a secret given some data
    69  func Create(ctx context.Context, reader io.Reader, options *CreateOptions) (*entities.SecretCreateReport, error) {
    70  	var (
    71  		create *entities.SecretCreateReport
    72  	)
    73  	conn, err := bindings.GetClient(ctx)
    74  	if err != nil {
    75  		return nil, err
    76  	}
    77  
    78  	params, err := options.ToParams()
    79  	if err != nil {
    80  		return nil, err
    81  	}
    82  
    83  	response, err := conn.DoRequest(ctx, reader, http.MethodPost, "/secrets/create", params, nil)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  	defer response.Body.Close()
    88  
    89  	return create, response.Process(&create)
    90  }