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 }