Skip to content

Commit ebcc830

Browse files
philippthuna-b
authored andcommitted
Don't fetch unneeded pages
- introduce 'Page' query key - when set, stop automatic pagination - add 'PerPage' and 'Page' query keys to all list endpoints where only a single item from the returned list is used - use 'MakeListRequest' function in 'GetEvents' and set 'Page' query key in caller - adapt 'StagePackage' function to include 'GUIDFilter' instead of iterating over the returned package list and comparing guids
1 parent c7a0f94 commit ebcc830

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+485
-288
lines changed

actor/v7action/application.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,8 @@ func (actor Actor) GetUnstagedNewestPackageGUID(appGUID string) (string, Warning
226226
packages, warnings, err := actor.CloudControllerClient.GetPackages(
227227
ccv3.Query{Key: ccv3.AppGUIDFilter, Values: []string{appGUID}},
228228
ccv3.Query{Key: ccv3.OrderBy, Values: []string{ccv3.CreatedAtDescendingOrder}},
229-
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}})
229+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
230+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}})
230231
allWarnings = append(allWarnings, warnings...)
231232
if err != nil {
232233
return "", allWarnings, err
@@ -241,6 +242,7 @@ func (actor Actor) GetUnstagedNewestPackageGUID(appGUID string) (string, Warning
241242
newestPackage.GUID,
242243
ccv3.Query{Key: ccv3.StatesFilter, Values: []string{"STAGED"}},
243244
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
245+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
244246
)
245247
allWarnings = append(allWarnings, warnings...)
246248
if err != nil {

actor/v7action/application_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1959,6 +1959,7 @@ var _ = Describe("Application Actions", func() {
19591959
ccv3.Query{Key: ccv3.AppGUIDFilter, Values: []string{"some-app-guid"}},
19601960
ccv3.Query{Key: ccv3.OrderBy, Values: []string{ccv3.CreatedAtDescendingOrder}},
19611961
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
1962+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
19621963
))
19631964
})
19641965

@@ -1998,8 +1999,9 @@ var _ = Describe("Application Actions", func() {
19981999
packageGuid, queries := fakeCloudControllerClient.GetPackageDropletsArgsForCall(0)
19992000
Expect(packageGuid).To(Equal("package-guid"))
20002001
Expect(queries).To(ConsistOf(
2001-
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
20022002
ccv3.Query{Key: ccv3.StatesFilter, Values: []string{"STAGED"}},
2003+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
2004+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
20032005
))
20042006
})
20052007

actor/v7action/build.go

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,19 @@ func (actor Actor) StagePackage(packageGUID, appName, spaceGUID string) (<-chan
3333
}
3434
app := apps[0]
3535

36-
pkgs, allWarnings, err := actor.CloudControllerClient.GetPackages(ccv3.Query{
37-
Key: ccv3.AppGUIDFilter, Values: []string{app.GUID},
38-
})
36+
pkgs, allWarnings, err := actor.CloudControllerClient.GetPackages(
37+
ccv3.Query{Key: ccv3.GUIDFilter, Values: []string{packageGUID}},
38+
ccv3.Query{Key: ccv3.AppGUIDFilter, Values: []string{app.GUID}},
39+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
40+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
41+
)
3942
warningsStream <- Warnings(allWarnings)
4043
if err != nil {
4144
errorStream <- err
4245
return
4346
}
4447

45-
if !packageInPackages(packageGUID, pkgs) {
48+
if len(pkgs) == 0 {
4649
err = actionerror.PackageNotFoundInAppError{GUID: packageGUID, AppName: appName}
4750
errorStream <- err
4851
return
@@ -166,12 +169,3 @@ func (actor Actor) PollBuild(buildGUID string, appName string) (resources.Drople
166169
}
167170
}
168171
}
169-
170-
func packageInPackages(targetPkgGUID string, pkgs []resources.Package) bool {
171-
for i := range pkgs {
172-
if pkgs[i].GUID == targetPkgGUID {
173-
return true
174-
}
175-
}
176-
return false
177-
}

actor/v7action/build_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ var _ = Describe("Build Actions", func() {
104104
BeforeEach(func() {
105105
fakeCloudControllerClient.GetApplicationsReturns([]resources.Application{{GUID: appGUID}}, ccv3.Warnings{"get-apps-warning"}, nil)
106106
fakeCloudControllerClient.GetPackagesReturns(
107-
[]resources.Package{{GUID: "some-other-package-guid"}},
107+
[]resources.Package{},
108108
ccv3.Warnings{"get-packages-warning"},
109109
nil,
110110
)
@@ -180,7 +180,10 @@ var _ = Describe("Build Actions", func() {
180180

181181
Expect(fakeCloudControllerClient.GetPackagesCallCount()).To(Equal(1))
182182
Expect(fakeCloudControllerClient.GetPackagesArgsForCall(0)).To(Equal([]ccv3.Query{
183+
{Key: ccv3.GUIDFilter, Values: []string{packageGUID}},
183184
{Key: ccv3.AppGUIDFilter, Values: []string{appGUID}},
185+
{Key: ccv3.PerPage, Values: []string{"1"}},
186+
{Key: ccv3.Page, Values: []string{"1"}},
184187
}))
185188

186189
Expect(fakeCloudControllerClient.CreateBuildCallCount()).To(Equal(1))

actor/v7action/deployment.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func (actor Actor) GetLatestActiveDeploymentForApp(appGUID string) (resources.De
2525
ccv3.Query{Key: ccv3.StatusValueFilter, Values: []string{string(constant.DeploymentStatusValueActive)}},
2626
ccv3.Query{Key: ccv3.OrderBy, Values: []string{ccv3.CreatedAtDescendingOrder}},
2727
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
28+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
2829
)
2930

3031
if err != nil {

actor/v7action/deployment_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ var _ = Describe("Deployment Actions", func() {
108108
{Key: ccv3.StatusValueFilter, Values: []string{string(constant.DeploymentStatusValueActive)}},
109109
{Key: ccv3.OrderBy, Values: []string{ccv3.CreatedAtDescendingOrder}},
110110
{Key: ccv3.PerPage, Values: []string{"1"}},
111+
{Key: ccv3.Page, Values: []string{"1"}},
111112
},
112113
))
113114
})

actor/v7action/domain.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ func (actor Actor) GetDomainAndOrgGUIDsByName(domainName string, orgName string)
172172
func (actor Actor) getDomainByName(domainName string) (resources.Domain, ccv3.Warnings, error) {
173173
domains, warnings, err := actor.CloudControllerClient.GetDomains(
174174
ccv3.Query{Key: ccv3.NameFilter, Values: []string{domainName}},
175+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
176+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
175177
)
176178
switch {
177179
case err != nil:

actor/v7action/domain_test.go

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ var _ = Describe("Domain Actions", func() {
6363
givenQuery := fakeCloudControllerClient.GetDomainsArgsForCall(0)
6464
Expect(givenQuery).To(Equal([]ccv3.Query{
6565
{Key: ccv3.NameFilter, Values: []string{domainName}},
66+
{Key: ccv3.PerPage, Values: []string{"1"}},
67+
{Key: ccv3.Page, Values: []string{"1"}},
6668
}))
6769

6870
Expect(fakeCloudControllerClient.CheckRouteCallCount()).To(Equal(1))
@@ -438,7 +440,11 @@ var _ = Describe("Domain Actions", func() {
438440
})
439441

440442
When("the API layer call is successful", func() {
441-
expectedQuery := []ccv3.Query{{Key: ccv3.NameFilter, Values: []string{domain1Name}}}
443+
expectedQuery := []ccv3.Query{
444+
{Key: ccv3.NameFilter, Values: []string{domain1Name}},
445+
{Key: ccv3.PerPage, Values: []string{"1"}},
446+
{Key: ccv3.Page, Values: []string{"1"}},
447+
}
442448
BeforeEach(func() {
443449
fakeCloudControllerClient.GetDomainsReturns(
444450
ccv3Domains,
@@ -512,7 +518,11 @@ var _ = Describe("Domain Actions", func() {
512518

513519
Expect(fakeCloudControllerClient.GetDomainsCallCount()).To(Equal(1))
514520
actualQuery := fakeCloudControllerClient.GetDomainsArgsForCall(0)
515-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{"private-domain.com"}}}))
521+
Expect(actualQuery).To(Equal([]ccv3.Query{
522+
{Key: ccv3.NameFilter, Values: []string{"private-domain.com"}},
523+
{Key: ccv3.PerPage, Values: []string{"1"}},
524+
{Key: ccv3.Page, Values: []string{"1"}},
525+
}))
516526

517527
Expect(fakeCloudControllerClient.SharePrivateDomainToOrgsCallCount()).To(Equal(1))
518528
domainGuid, sharedOrgs := fakeCloudControllerClient.SharePrivateDomainToOrgsArgsForCall(0)
@@ -634,7 +644,11 @@ var _ = Describe("Domain Actions", func() {
634644
It("returns the error and doesnt get the domain", func() {
635645
Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
636646
actualQuery := fakeCloudControllerClient.GetOrganizationsArgsForCall(0)
637-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{orgName}}}))
647+
Expect(actualQuery).To(Equal([]ccv3.Query{
648+
{Key: ccv3.NameFilter, Values: []string{orgName}},
649+
{Key: ccv3.PerPage, Values: []string{"1"}},
650+
{Key: ccv3.Page, Values: []string{"1"}},
651+
}))
638652

639653
Expect(fakeCloudControllerClient.GetDomainsCallCount()).To(Equal(0))
640654

@@ -665,11 +679,19 @@ var _ = Describe("Domain Actions", func() {
665679
It("returns the error and doesnt get the domain", func() {
666680
Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
667681
actualQuery := fakeCloudControllerClient.GetOrganizationsArgsForCall(0)
668-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{orgName}}}))
682+
Expect(actualQuery).To(Equal([]ccv3.Query{
683+
{Key: ccv3.NameFilter, Values: []string{orgName}},
684+
{Key: ccv3.PerPage, Values: []string{"1"}},
685+
{Key: ccv3.Page, Values: []string{"1"}},
686+
}))
669687

670688
Expect(fakeCloudControllerClient.GetDomainsCallCount()).To(Equal(1))
671689
actualQuery = fakeCloudControllerClient.GetDomainsArgsForCall(0)
672-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{domainName}}}))
690+
Expect(actualQuery).To(Equal([]ccv3.Query{
691+
{Key: ccv3.NameFilter, Values: []string{domainName}},
692+
{Key: ccv3.PerPage, Values: []string{"1"}},
693+
{Key: ccv3.Page, Values: []string{"1"}},
694+
}))
673695

674696
Expect(executeErr).To(MatchError(errors.New("get-domains-error")))
675697
Expect(warnings).To(ConsistOf("get-orgs-warning", "get-domains-warning"))
@@ -690,11 +712,19 @@ var _ = Describe("Domain Actions", func() {
690712
It("returns the GUIDs", func() {
691713
Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
692714
actualQuery := fakeCloudControllerClient.GetOrganizationsArgsForCall(0)
693-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{orgName}}}))
715+
Expect(actualQuery).To(Equal([]ccv3.Query{
716+
{Key: ccv3.NameFilter, Values: []string{orgName}},
717+
{Key: ccv3.PerPage, Values: []string{"1"}},
718+
{Key: ccv3.Page, Values: []string{"1"}},
719+
}))
694720

695721
Expect(fakeCloudControllerClient.GetDomainsCallCount()).To(Equal(1))
696722
actualQuery = fakeCloudControllerClient.GetDomainsArgsForCall(0)
697-
Expect(actualQuery).To(Equal([]ccv3.Query{{Key: ccv3.NameFilter, Values: []string{domainName}}}))
723+
Expect(actualQuery).To(Equal([]ccv3.Query{
724+
{Key: ccv3.NameFilter, Values: []string{domainName}},
725+
{Key: ccv3.PerPage, Values: []string{"1"}},
726+
{Key: ccv3.Page, Values: []string{"1"}},
727+
}))
698728

699729
Expect(executeErr).ToNot(HaveOccurred())
700730
Expect(warnings).To(ConsistOf("get-orgs-warning", "get-domains-warning"))

actor/v7action/droplet.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ func (actor Actor) DownloadDropletByGUIDAndAppName(dropletGUID string, appName s
156156
droplets, getDropletWarnings, err := actor.CloudControllerClient.GetDroplets(
157157
ccv3.Query{Key: ccv3.GUIDFilter, Values: []string{dropletGUID}},
158158
ccv3.Query{Key: ccv3.AppGUIDFilter, Values: []string{app.GUID}},
159+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
160+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
159161
)
160162
allWarnings = append(allWarnings, getDropletWarnings...)
161163
if err != nil {

actor/v7action/droplet_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,8 @@ var _ = Describe("Droplet Actions", func() {
783783
Expect(fakeCloudControllerClient.GetDropletsArgsForCall(0)).To(ConsistOf(
784784
ccv3.Query{Key: ccv3.GUIDFilter, Values: []string{"some-droplet-guid"}},
785785
ccv3.Query{Key: ccv3.AppGUIDFilter, Values: []string{"some-app-guid"}},
786+
ccv3.Query{Key: ccv3.PerPage, Values: []string{"1"}},
787+
ccv3.Query{Key: ccv3.Page, Values: []string{"1"}},
786788
))
787789

788790
Expect(fakeCloudControllerClient.DownloadDropletCallCount()).To(Equal(1))

0 commit comments

Comments
 (0)