github.com/containers/podman/v4@v4.9.4/pkg/bindings/secrets/secrets.go (about) 1 package secrets 2 3 import ( 4 "context" 5 "io" 6 "net/http" 7 8 "github.com/containers/podman/v4/pkg/bindings" 9 "github.com/containers/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 if options == nil { 37 options = new(InspectOptions) 38 } 39 var ( 40 inspect *entities.SecretInfoReport 41 ) 42 conn, err := bindings.GetClient(ctx) 43 if err != nil { 44 return nil, err 45 } 46 params, err := options.ToParams() 47 if err != nil { 48 return nil, err 49 } 50 response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/secrets/%s/json", params, nil, nameOrID) 51 if err != nil { 52 return inspect, err 53 } 54 defer response.Body.Close() 55 return inspect, response.Process(&inspect) 56 } 57 58 // Remove removes a secret from storage 59 func Remove(ctx context.Context, nameOrID string) error { 60 conn, err := bindings.GetClient(ctx) 61 if err != nil { 62 return err 63 } 64 65 response, err := conn.DoRequest(ctx, nil, http.MethodDelete, "/secrets/%s", nil, nil, nameOrID) 66 if err != nil { 67 return err 68 } 69 defer response.Body.Close() 70 71 return response.Process(nil) 72 } 73 74 // Create creates a secret given some data 75 func Create(ctx context.Context, reader io.Reader, options *CreateOptions) (*entities.SecretCreateReport, error) { 76 var ( 77 create *entities.SecretCreateReport 78 ) 79 conn, err := bindings.GetClient(ctx) 80 if err != nil { 81 return nil, err 82 } 83 84 params, err := options.ToParams() 85 if err != nil { 86 return nil, err 87 } 88 89 response, err := conn.DoRequest(ctx, reader, http.MethodPost, "/secrets/create", params, nil) 90 if err != nil { 91 return nil, err 92 } 93 defer response.Body.Close() 94 95 return create, response.Process(&create) 96 } 97 98 func Exists(ctx context.Context, nameOrID string) (bool, error) { 99 conn, err := bindings.GetClient(ctx) 100 if err != nil { 101 return false, err 102 } 103 response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/secrets/%s/exists", nil, nil, nameOrID) 104 if err != nil { 105 return false, err 106 } 107 defer response.Body.Close() 108 109 return response.IsSuccess(), nil 110 }