From 881947c8b3c626e98f1af48cd98578c91da51bf0 Mon Sep 17 00:00:00 2001 From: Sriram Nookala Date: Wed, 12 Feb 2025 21:24:37 +0000 Subject: [PATCH 1/5] Fix error with cf audit-stack -v Check for an empty string json a problem occurred: error unmarshaling spaces json: unexpected end of JSON input --- cf/cf.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cf/cf.go b/cf/cf.go index e97a041..6075f11 100644 --- a/cf/cf.go +++ b/cf/cf.go @@ -126,8 +126,11 @@ func (cf *CF) getAllSpaces() (resources.Spaces, error) { } var spaces resources.SpacesJSON + if strings.Join(spacesJSON, "") == "" { + break + } if err := json.Unmarshal([]byte(strings.Join(spacesJSON, "")), &spaces); err != nil { - return nil, fmt.Errorf("error unmarshaling spaces json: %v", err) + return nil, fmt.Errorf("error unmarshaling spaces json: %v", spacesJSON) } nextSpaceURL = spaces.NextURL allSpaces = append(allSpaces, spaces) @@ -146,6 +149,9 @@ func (cf *CF) GetAllApps() ([]resources.V3AppsJSON, error) { } var apps resources.V3AppsJSON + if strings.Join(appJSON, "") == "" { + break + } if err := json.Unmarshal([]byte(strings.Join(appJSON, "")), &apps); err != nil { return nil, fmt.Errorf("error unmarshaling apps json: %v", err) From 014be547a2bb344df416a50ba80ed2e0ab8f5fe4 Mon Sep 17 00:00:00 2001 From: Sriram Nookala Date: Thu, 13 Feb 2025 19:29:26 +0000 Subject: [PATCH 2/5] Use err for error --- cf/cf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cf/cf.go b/cf/cf.go index 6075f11..27003f0 100644 --- a/cf/cf.go +++ b/cf/cf.go @@ -130,7 +130,7 @@ func (cf *CF) getAllSpaces() (resources.Spaces, error) { break } if err := json.Unmarshal([]byte(strings.Join(spacesJSON, "")), &spaces); err != nil { - return nil, fmt.Errorf("error unmarshaling spaces json: %v", spacesJSON) + return nil, fmt.Errorf("error unmarshaling spaces json: %v", err) } nextSpaceURL = spaces.NextURL allSpaces = append(allSpaces, spaces) From e26188dd7ec1f3233ccbb25ca7d4625343991133 Mon Sep 17 00:00:00 2001 From: Sriram Nookala Date: Sun, 16 Feb 2025 04:35:57 +0000 Subject: [PATCH 3/5] Fix audit stack -v Update unit test for empty Json case --- cf/cf.go | 2 +- cf/cf_test.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cf/cf.go b/cf/cf.go index 27003f0..aa189ed 100644 --- a/cf/cf.go +++ b/cf/cf.go @@ -154,7 +154,7 @@ func (cf *CF) GetAllApps() ([]resources.V3AppsJSON, error) { } if err := json.Unmarshal([]byte(strings.Join(appJSON, "")), &apps); err != nil { - return nil, fmt.Errorf("error unmarshaling apps json: %v", err) + return nil, fmt.Errorf("error unmarshaling apps json: %v", appJSON) } nextURL = apps.Pagination.Next.Href allApps = append(allApps, apps) diff --git a/cf/cf_test.go b/cf/cf_test.go index 95635ae..7b9ab06 100644 --- a/cf/cf_test.go +++ b/cf/cf_test.go @@ -6,6 +6,7 @@ import ( "github.com/cloudfoundry/stack-auditor/cf" "github.com/cloudfoundry/stack-auditor/mocks" + "github.com/cloudfoundry/stack-auditor/resources" "github.com/golang/mock/gomock" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -24,6 +25,20 @@ var _ = Describe("CF", func() { c = cf.CF{Conn: mockConnection} }) + When("getAllSpaces", func() { + It("performs a successful getAllSpaces with empty Json", func() { + //mockOutput, err := mocks.FileToString("apps.json") + mockOutput := make([]string, 3) + var allApps []resources.V3AppsJSON + cf.V3ResultsPerPage = "1" + c.Space.Guid = "1234" + mockConnection.EXPECT().CliCommandWithoutTerminalOutput("curl", fmt.Sprintf("/v3/apps?per_page=1")).Return(mockOutput, nil).AnyTimes() + output, err := c.GetAllApps() + Expect(err).NotTo(HaveOccurred()) + Expect(output).To(Equal(allApps)) + }) + }) + When("CFCurl", func() { It("performs a successful CF curl", func() { mockOutput, err := mocks.FileToString("apps.json") From 96618699b0d6b8e6fdf92562b5a4d488418972d9 Mon Sep 17 00:00:00 2001 From: Sriram Nookala Date: Sun, 16 Feb 2025 04:38:30 +0000 Subject: [PATCH 4/5] Remove comment --- cf/cf_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cf/cf_test.go b/cf/cf_test.go index 7b9ab06..4619986 100644 --- a/cf/cf_test.go +++ b/cf/cf_test.go @@ -27,7 +27,6 @@ var _ = Describe("CF", func() { When("getAllSpaces", func() { It("performs a successful getAllSpaces with empty Json", func() { - //mockOutput, err := mocks.FileToString("apps.json") mockOutput := make([]string, 3) var allApps []resources.V3AppsJSON cf.V3ResultsPerPage = "1" From 7c19553e8b9c44abe2c393bbfd1640843e5d4257 Mon Sep 17 00:00:00 2001 From: Sriram Nookala Date: Tue, 18 Feb 2025 15:19:59 +0000 Subject: [PATCH 5/5] Update spec --- cf/cf_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cf/cf_test.go b/cf/cf_test.go index 4619986..b1ff5bf 100644 --- a/cf/cf_test.go +++ b/cf/cf_test.go @@ -25,12 +25,11 @@ var _ = Describe("CF", func() { c = cf.CF{Conn: mockConnection} }) - When("getAllSpaces", func() { - It("performs a successful getAllSpaces with empty Json", func() { + When("getAllApps", func() { + It("performs a successful getAllApps with empty Json", func() { mockOutput := make([]string, 3) var allApps []resources.V3AppsJSON cf.V3ResultsPerPage = "1" - c.Space.Guid = "1234" mockConnection.EXPECT().CliCommandWithoutTerminalOutput("curl", fmt.Sprintf("/v3/apps?per_page=1")).Return(mockOutput, nil).AnyTimes() output, err := c.GetAllApps() Expect(err).NotTo(HaveOccurred())