github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+incompatible/api/cloudcontroller/ccv3/droplet.go (about) 1 package ccv3 2 3 import ( 4 "net/url" 5 6 "code.cloudfoundry.org/cli/api/cloudcontroller" 7 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 8 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal" 9 ) 10 11 type DropletState string 12 13 const ( 14 DropletStateStaged DropletState = "STAGED" 15 DropletStateFailed DropletState = "FAILED" 16 DropletStateCopying DropletState = "COPYING" 17 DropletStateExpired DropletState = "EXPIRED" 18 ) 19 20 type Droplet struct { 21 GUID string `json:"guid"` 22 State DropletState `json:"state"` 23 CreatedAt string `json:"created_at"` 24 Stack string `json:"stack,omitempty"` 25 Buildpacks []DropletBuildpack `json:"buildpacks,omitempty"` 26 Image string `json:"image"` 27 } 28 29 type DropletBuildpack struct { 30 Name string `json:"name"` 31 DetectOutput string `json:"detect_output"` 32 } 33 34 // GetApplicationDroplets returns the Droplets for a given app 35 func (client *Client) GetApplicationDroplets(appGUID string, query url.Values) ([]Droplet, Warnings, error) { 36 request, err := client.newHTTPRequest(requestOptions{ 37 RequestName: internal.GetAppDropletsRequest, 38 URIParams: map[string]string{"app_guid": appGUID}, 39 Query: query, 40 }) 41 if err != nil { 42 return nil, nil, err 43 } 44 45 var responseDroplets []Droplet 46 warnings, err := client.paginate(request, Droplet{}, func(item interface{}) error { 47 if droplet, ok := item.(Droplet); ok { 48 responseDroplets = append(responseDroplets, droplet) 49 } else { 50 return ccerror.UnknownObjectInListError{ 51 Expected: Droplet{}, 52 Unexpected: item, 53 } 54 } 55 return nil 56 }) 57 58 return responseDroplets, warnings, err 59 } 60 61 func (client *Client) GetDroplet(dropletGUID string) (Droplet, Warnings, error) { 62 request, err := client.newHTTPRequest(requestOptions{ 63 RequestName: internal.GetDropletRequest, 64 URIParams: map[string]string{"droplet_guid": dropletGUID}, 65 }) 66 if err != nil { 67 return Droplet{}, nil, err 68 } 69 70 var responseDroplet Droplet 71 response := cloudcontroller.Response{ 72 Result: &responseDroplet, 73 } 74 err = client.connection.Make(request, &response) 75 76 return responseDroplet, response.Warnings, err 77 }