github.com/sleungcy-sap/cli@v7.1.0+incompatible/api/cloudcontroller/ccv3/application.go (about) 1 package ccv3 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 5 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal" 6 "code.cloudfoundry.org/cli/resources" 7 ) 8 9 // CreateApplication creates an application with the given settings. 10 func (client *Client) CreateApplication(app resources.Application) (resources.Application, Warnings, error) { 11 var responseBody resources.Application 12 13 _, warnings, err := client.MakeRequest(RequestParams{ 14 RequestName: internal.PostApplicationRequest, 15 RequestBody: app, 16 ResponseBody: &responseBody, 17 }) 18 19 return responseBody, warnings, err 20 } 21 22 func (client *Client) GetApplicationByNameAndSpace(appName string, spaceGUID string) (resources.Application, Warnings, error) { 23 apps, warnings, err := client.GetApplications( 24 Query{Key: NameFilter, Values: []string{appName}}, 25 Query{Key: SpaceGUIDFilter, Values: []string{spaceGUID}}, 26 ) 27 if err != nil { 28 return resources.Application{}, warnings, err 29 } 30 31 if len(apps) == 0 { 32 return resources.Application{}, warnings, ccerror.ApplicationNotFoundError{Name: appName} 33 } 34 35 return apps[0], warnings, nil 36 } 37 38 // GetApplications lists applications with optional queries. 39 func (client *Client) GetApplications(query ...Query) ([]resources.Application, Warnings, error) { 40 var apps []resources.Application 41 42 _, warnings, err := client.MakeListRequest(RequestParams{ 43 RequestName: internal.GetApplicationsRequest, 44 Query: query, 45 ResponseBody: resources.Application{}, 46 AppendToList: func(item interface{}) error { 47 apps = append(apps, item.(resources.Application)) 48 return nil 49 }, 50 }) 51 52 return apps, warnings, err 53 } 54 55 // UpdateApplication updates an application with the given settings. 56 func (client *Client) UpdateApplication(app resources.Application) (resources.Application, Warnings, error) { 57 var responseBody resources.Application 58 59 _, warnings, err := client.MakeRequest(RequestParams{ 60 RequestName: internal.PatchApplicationRequest, 61 URIParams: internal.Params{"app_guid": app.GUID}, 62 RequestBody: app, 63 ResponseBody: &responseBody, 64 }) 65 66 return responseBody, warnings, err 67 } 68 69 // UpdateApplicationRestart restarts the given application. 70 func (client *Client) UpdateApplicationRestart(appGUID string) (resources.Application, Warnings, error) { 71 var responseBody resources.Application 72 73 _, warnings, err := client.MakeRequest(RequestParams{ 74 RequestName: internal.PostApplicationActionRestartRequest, 75 URIParams: internal.Params{"app_guid": appGUID}, 76 ResponseBody: &responseBody, 77 }) 78 79 return responseBody, warnings, err 80 } 81 82 // UpdateApplicationStart starts the given application. 83 func (client *Client) UpdateApplicationStart(appGUID string) (resources.Application, Warnings, error) { 84 var responseBody resources.Application 85 86 _, warnings, err := client.MakeRequest(RequestParams{ 87 RequestName: internal.PostApplicationActionStartRequest, 88 URIParams: internal.Params{"app_guid": appGUID}, 89 ResponseBody: &responseBody, 90 }) 91 92 return responseBody, warnings, err 93 } 94 95 // UpdateApplicationStop stops the given application. 96 func (client *Client) UpdateApplicationStop(appGUID string) (resources.Application, Warnings, error) { 97 var responseBody resources.Application 98 99 _, warnings, err := client.MakeRequest(RequestParams{ 100 RequestName: internal.PostApplicationActionStopRequest, 101 URIParams: internal.Params{"app_guid": appGUID}, 102 ResponseBody: &responseBody, 103 }) 104 105 return responseBody, warnings, err 106 }