From 20221342c758aec64c5cc586020da54cf4fb2d95 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 18:05:39 +0000 Subject: [PATCH] fix(vpc): add data annotation to vpc (#4534) (#4537) Annotate VPC as a data class to address VPC attributes always being null. (cherry picked from commit 9a1fa511b47a63bfcba0f309990b0ac11458033d) Co-authored-by: David Martin --- .../orca/clouddriver/MortService.java | 1 + .../orca/clouddriver/MortServiceSpec.groovy | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/MortService.java b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/MortService.java index a5654a7121..3e72215de3 100644 --- a/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/MortService.java +++ b/orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/MortService.java @@ -190,6 +190,7 @@ static SecurityGroup findById(MortService mortService, String securityGroupId) { } } + @Data class VPC { String id; String name; diff --git a/orca-clouddriver/src/test/groovy/com/netflix/spinnaker/orca/clouddriver/MortServiceSpec.groovy b/orca-clouddriver/src/test/groovy/com/netflix/spinnaker/orca/clouddriver/MortServiceSpec.groovy index faaaf05d09..29a953ff54 100644 --- a/orca-clouddriver/src/test/groovy/com/netflix/spinnaker/orca/clouddriver/MortServiceSpec.groovy +++ b/orca-clouddriver/src/test/groovy/com/netflix/spinnaker/orca/clouddriver/MortServiceSpec.groovy @@ -25,6 +25,7 @@ import retrofit.converter.JacksonConverter import retrofit.mime.TypedInput import spock.lang.Specification import spock.lang.Unroll +import com.netflix.spinnaker.orca.jackson.OrcaObjectMapper import static com.netflix.spinnaker.orca.clouddriver.MortService.SecurityGroup.SecurityGroupIngress import static com.netflix.spinnaker.orca.clouddriver.MortService.SecurityGroup.applyMappings @@ -254,6 +255,28 @@ class MortServiceSpec extends Specification { ) } + def "should correctly map VPC properties from JSON response"() { + given: + def objectMapper = OrcaObjectMapper.newInstance() + def vpcResponse = """ + { + "account": "test", + "id": "vpc-12345", + "name": "vpc1", + "region": "us-west-1" + } + """ + + when: + def vpc = objectMapper.readValue(vpcResponse, MortService.VPC.class) + + then: + vpc.account == "test" + vpc.id == "vpc-12345" + vpc.region == "us-west-1" + vpc.name == "vpc1" + } + static class MockTypedInput implements TypedInput { private final Converter converter private final Object body