From 9ecddce56d91aef2f1fcbec2c86cdf52659075bd Mon Sep 17 00:00:00 2001 From: christosarvanitis Date: Mon, 26 Feb 2024 15:23:08 +0200 Subject: [PATCH 1/2] fix(jenkins): Enable properties and artifacts with job name as query parameter --- .../netflix/spinnaker/orca/igor/BuildService.java | 8 ++++++-- .../netflix/spinnaker/orca/igor/IgorService.java | 14 ++++++++++++++ .../spinnaker/orca/igor/BuildServiceSpec.groovy | 12 ++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/BuildService.java b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/BuildService.java index 4afa1ffc34..f1cc610dbc 100644 --- a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/BuildService.java +++ b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/BuildService.java @@ -60,12 +60,16 @@ public Map getBuild(Integer buildNumber, String master, String j public Map getPropertyFile( Integer buildNumber, String fileName, String master, String job) { - return igorService.getPropertyFile(buildNumber, fileName, master, encode(job)); + return this.igorFeatureFlagProperties.isJobNameAsQueryParameter() + ? igorService.getPropertyFileWithJobAsQueryParam(buildNumber, fileName, master, encode(job)) + : igorService.getPropertyFile(buildNumber, fileName, master, encode(job)); } public List getArtifacts( Integer buildNumber, String fileName, String master, String job) { - return igorService.getArtifacts(buildNumber, fileName, master, encode(job)); + return this.igorFeatureFlagProperties.isJobNameAsQueryParameter() + ? igorService.getArtifactsWithJobAsQueryParam(buildNumber, fileName, master, encode(job)) + : igorService.getArtifacts(buildNumber, fileName, master, encode(job)); } public Response updateBuild( diff --git a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java index e2ec1a5c68..94832e5fd7 100644 --- a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java +++ b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java @@ -79,6 +79,13 @@ Map getPropertyFile( @Path("master") String master, @Path(encode = false, value = "job") String job); + @GET("/builds/properties/{buildNumber}/{fileName}/{master}") + Map getPropertyFileWithJobAsQueryParam( + @Path("buildNumber") Integer buildNumber, + @Path("fileName") String fileName, + @Path("master") String master, + @Query(encodeValue = false, value = "job") String job); + @GET("/{repoType}/{projectKey}/{repositorySlug}/compareCommits") List compareCommits( @Path("repoType") String repoType, @@ -93,6 +100,13 @@ List getArtifacts( @Path("master") String master, @Path(value = "job", encode = false) String job); + @GET("/builds/artifacts/{buildNumber}/{master}") + List getArtifactsWithJobAsQueryParam( + @Path("buildNumber") Integer buildNumber, + @Query("propertyFile") String propertyFile, + @Path("master") String master, + @Query(value = "job", encodeValue = false) String job); + @POST("/gcb/builds/create/{account}") GoogleCloudBuild createGoogleCloudBuild( @Path("account") String account, @Body Map job); diff --git a/orca-igor/src/test/groovy/com/netflix/spinnaker/orca/igor/BuildServiceSpec.groovy b/orca-igor/src/test/groovy/com/netflix/spinnaker/orca/igor/BuildServiceSpec.groovy index f7f6e3785c..e11731010c 100644 --- a/orca-igor/src/test/groovy/com/netflix/spinnaker/orca/igor/BuildServiceSpec.groovy +++ b/orca-igor/src/test/groovy/com/netflix/spinnaker/orca/igor/BuildServiceSpec.groovy @@ -72,6 +72,18 @@ class BuildServiceSpec extends Specification { 1 * igorService.getPropertyFile(BUILD_NUMBER, FILENAME, MASTER, JOB_NAME_ENCODED) } + void 'getPropertyFile method with job in query when flag is true'() { + IgorFeatureFlagProperties igorFeatureFlagProperties = new IgorFeatureFlagProperties() + igorFeatureFlagProperties.setJobNameAsQueryParameter(true) + buildService = new BuildService(igorService, igorFeatureFlagProperties) + + when: + buildService.getPropertyFile(BUILD_NUMBER, FILENAME, MASTER, JOB_NAME) + + then: + 1 * igorService.getPropertyFileWithJobAsQueryParam(BUILD_NUMBER, FILENAME, MASTER, JOB_NAME_ENCODED) + } + void 'stop method sends job name in path when flag is false'() { IgorFeatureFlagProperties igorFeatureFlagProperties = new IgorFeatureFlagProperties() igorFeatureFlagProperties.setJobNameAsQueryParameter(false) From 9f7a613fff1753bd8414bb3d540f6390c99e4b9b Mon Sep 17 00:00:00 2001 From: christosarvanitis Date: Mon, 26 Feb 2024 15:43:01 +0200 Subject: [PATCH 2/2] fix(jenkins): Enable properties and artifacts with job name as query parameter --- .../java/com/netflix/spinnaker/orca/igor/IgorService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java index 94832e5fd7..d1d37512e5 100644 --- a/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java +++ b/orca-igor/src/main/java/com/netflix/spinnaker/orca/igor/IgorService.java @@ -84,7 +84,7 @@ Map getPropertyFileWithJobAsQueryParam( @Path("buildNumber") Integer buildNumber, @Path("fileName") String fileName, @Path("master") String master, - @Query(encodeValue = false, value = "job") String job); + @Query(value = "job") String job); @GET("/{repoType}/{projectKey}/{repositorySlug}/compareCommits") List compareCommits( @@ -105,7 +105,7 @@ List getArtifactsWithJobAsQueryParam( @Path("buildNumber") Integer buildNumber, @Query("propertyFile") String propertyFile, @Path("master") String master, - @Query(value = "job", encodeValue = false) String job); + @Query(value = "job") String job); @POST("/gcb/builds/create/{account}") GoogleCloudBuild createGoogleCloudBuild(