Skip to content

Commit 1c53e6d

Browse files
authored
test(aws): Adding integration tests for modify launch template operation (spinnaker#5367)
spinnaker/spinnaker#5989
1 parent 75faceb commit 1c53e6d

File tree

27 files changed

+1165
-25
lines changed

27 files changed

+1165
-25
lines changed

clouddriver-aws/src/integration/java/com/netflix/spinnaker/clouddriver/aws/AwsBaseSpec.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,20 @@
2020
import static io.restassured.RestAssured.get;
2121
import static org.junit.jupiter.api.Assertions.fail;
2222

23+
import com.netflix.spinnaker.cats.agent.DefaultCacheResult;
24+
import com.netflix.spinnaker.cats.cache.CacheData;
25+
import com.netflix.spinnaker.cats.cache.DefaultCacheData;
2326
import com.netflix.spinnaker.clouddriver.Main;
2427
import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider;
2528
import com.netflix.spinnaker.clouddriver.aws.services.RegionScopedProviderFactory;
29+
import com.netflix.spinnaker.clouddriver.core.services.Front50Service;
2630
import io.restassured.http.ContentType;
31+
import java.util.Collection;
32+
import java.util.Collections;
33+
import java.util.HashMap;
34+
import java.util.LinkedList;
2735
import java.util.List;
36+
import java.util.Map;
2837
import java.util.concurrent.atomic.AtomicReference;
2938
import java.util.function.BooleanSupplier;
3039
import org.springframework.beans.factory.annotation.Value;
@@ -48,18 +57,21 @@ public abstract class AwsBaseSpec {
4857
@Value("${aws.enabled}")
4958
protected Boolean AWS_ENABLED;
5059

51-
@MockBean protected AmazonClientProvider mockAwsProvider;
60+
@MockBean protected AmazonClientProvider mockAwsClientProvider;
5261
@MockBean protected RegionScopedProviderFactory.RegionScopedProvider mockRegionScopedProvider;
62+
@MockBean protected Front50Service mockFront50Service;
5363

5464
@LocalServerPort int port;
5565

5666
protected final int TASK_RETRY_SECONDS = 3;
5767

5868
protected static final String PATH_PREFIX = "classpath:testinputs/";
5969
protected static final String GET_TASK_PATH = "/task/";
60-
protected static final String CREATE_SERVER_GROUP_OP_PATH = "/aws/ops/createServerGroup";
6170
protected static final String EXPECTED_DEPLOY_SUCCESS_MSG = "Deployed EC2 server group";
6271

72+
protected static final String CREATE_SERVER_GROUP_OP_PATH = "/aws/ops/createServerGroup";
73+
protected static final String UPDATE_LAUNCH_TEMPLATE_OP_PATH = "/aws/ops/updateLaunchTemplate";
74+
6375
protected String getBaseUrl() {
6476
return "http://localhost:" + port;
6577
}
@@ -103,4 +115,15 @@ protected String getTaskUpdatesAfterCompletion(String taskId) throws Interrupted
103115

104116
return taskHistoryToRet.get();
105117
}
118+
119+
protected DefaultCacheResult buildCacheResult(
120+
Map<String, Object> attributes, String namespace, String key) {
121+
Collection<CacheData> dataPoints = new LinkedList<>();
122+
dataPoints.add(new DefaultCacheData(key, attributes, Collections.emptyMap()));
123+
124+
Map<String, Collection<CacheData>> dataMap = new HashMap<>();
125+
dataMap.put(namespace, dataPoints);
126+
127+
return new DefaultCacheResult(dataMap);
128+
}
106129
}

clouddriver-aws/src/integration/java/com/netflix/spinnaker/clouddriver/aws/test/CreateServerGroupLaunchConfigEnabledSpec.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void setup() {
8888

8989
// mock EC2 responses
9090
when(mockRegionScopedProvider.getAmazonEC2()).thenReturn(mockEc2);
91-
when(mockAwsProvider.getAmazonEC2(
91+
when(mockAwsClientProvider.getAmazonEC2(
9292
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
9393
.thenReturn(mockEc2);
9494

@@ -123,9 +123,9 @@ public void setup() {
123123
.withAvailabilityZone("us-west-2a"))));
124124

125125
// mock autoscaling response
126-
when(mockAwsProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
126+
when(mockAwsClientProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
127127
.thenReturn(mockAutoScaling);
128-
when(mockAwsProvider.getAutoScaling(
128+
when(mockAwsClientProvider.getAutoScaling(
129129
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
130130
.thenReturn(mockAutoScaling);
131131

clouddriver-aws/src/integration/java/com/netflix/spinnaker/clouddriver/aws/test/CreateServerGroupLaunchTemplatesEnabledSpec.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public class CreateServerGroupLaunchTemplatesEnabledSpec extends AwsBaseSpec {
104104
public void setup() {
105105
// mock EC2 responses
106106
when(mockRegionScopedProvider.getAmazonEC2()).thenReturn(mockEc2);
107-
when(mockAwsProvider.getAmazonEC2(
107+
when(mockAwsClientProvider.getAmazonEC2(
108108
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
109109
.thenReturn(mockEc2);
110110

@@ -159,9 +159,9 @@ public void setup() {
159159
new LaunchTemplate().withLaunchTemplateId("lt-1").withLatestVersionNumber(1L)));
160160

161161
// mock autoscaling response
162-
when(mockAwsProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
162+
when(mockAwsClientProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
163163
.thenReturn(mockAutoScaling);
164-
when(mockAwsProvider.getAutoScaling(
164+
when(mockAwsClientProvider.getAutoScaling(
165165
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
166166
.thenReturn(mockAutoScaling);
167167
when(mockAutoScaling.describeAutoScalingGroups(any(DescribeAutoScalingGroupsRequest.class)))

clouddriver-aws/src/integration/java/com/netflix/spinnaker/clouddriver/aws/test/CreateServerGroupMixedInstancesPolicySpec.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public class CreateServerGroupMixedInstancesPolicySpec extends AwsBaseSpec {
9595
public void setup() {
9696
// mock EC2 responses
9797
when(mockRegionScopedProvider.getAmazonEC2()).thenReturn(mockEc2);
98-
when(mockAwsProvider.getAmazonEC2(
98+
when(mockAwsClientProvider.getAmazonEC2(
9999
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
100100
.thenReturn(mockEc2);
101101

@@ -150,9 +150,9 @@ public void setup() {
150150
new LaunchTemplate().withLaunchTemplateId("lt-1").withLatestVersionNumber(1L)));
151151

152152
// mock autoscaling response
153-
when(mockAwsProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
153+
when(mockAwsClientProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
154154
.thenReturn(mockAutoScaling);
155-
when(mockAwsProvider.getAutoScaling(
155+
when(mockAwsClientProvider.getAutoScaling(
156156
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
157157
.thenReturn(mockAutoScaling);
158158
when(mockAutoScaling.describeAutoScalingGroups(any(DescribeAutoScalingGroupsRequest.class)))

clouddriver-aws/src/integration/java/com/netflix/spinnaker/clouddriver/aws/test/CreateServerGroupSpec.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class CreateServerGroupSpec extends AwsBaseSpec {
8686
public void setup() {
8787
// mock EC2 responses
8888
when(mockRegionScopedProvider.getAmazonEC2()).thenReturn(mockEc2);
89-
when(mockAwsProvider.getAmazonEC2(
89+
when(mockAwsClientProvider.getAmazonEC2(
9090
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
9191
.thenReturn(mockEc2);
9292

@@ -127,9 +127,9 @@ public void setup() {
127127
new LaunchTemplate().withLaunchTemplateId("lt-1").withLatestVersionNumber(1L)));
128128

129129
// mock autoscaling response
130-
when(mockAwsProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
130+
when(mockAwsClientProvider.getAutoScaling(any(NetflixAmazonCredentials.class), anyString()))
131131
.thenReturn(mockAutoScaling);
132-
when(mockAwsProvider.getAutoScaling(
132+
when(mockAwsClientProvider.getAutoScaling(
133133
any(NetflixAmazonCredentials.class), anyString(), anyBoolean()))
134134
.thenReturn(mockAutoScaling);
135135
when(mockAutoScaling.describeAutoScalingGroups(any(DescribeAutoScalingGroupsRequest.class)))
@@ -139,8 +139,8 @@ public void setup() {
139139
@DisplayName("Given invalid requests, successfully validate with error messages")
140140
@Test
141141
public void createServerGroup_invalidRequests_expect_validationFailure() {
142-
final String invalidReqDir = "/description_validator_test_inputs/";
143-
final String pattern = PATH_PREFIX + invalidReqDir + "createServerGroup-*.json";
142+
final String invalidReqDir = "/createServerGroup_invalid_requests/";
143+
final String pattern = PATH_PREFIX + invalidReqDir + "*.json";
144144
TestUtils.loadResourcesFromDir(pattern).stream()
145145
.forEach(
146146
ti -> {
@@ -151,8 +151,11 @@ public void createServerGroup_invalidRequests_expect_validationFailure() {
151151
Map<String, Object> requestBody = TestUtils.loadJson(ti).asMap();
152152

153153
// when, then
154-
final String expectedValidationMsg =
155-
StringUtils.substringAfterLast(testFileName, "-").split(".json")[0];
154+
final String expectedValidationError =
155+
(testFileName.contains("-")
156+
? StringUtils.substringAfterLast(testFileName, "-")
157+
: testFileName)
158+
.split(".json")[0];
156159

157160
given()
158161
.contentType(ContentType.JSON)
@@ -165,7 +168,7 @@ public void createServerGroup_invalidRequests_expect_validationFailure() {
165168
.assertThat()
166169
.body("message", Matchers.equalTo("Validation Failed"))
167170
.body("errors.size()", Matchers.equalTo(1))
168-
.body("errors[0]", Matchers.containsString(expectedValidationMsg));
171+
.body("errors[0]", Matchers.endsWith(expectedValidationError));
169172
});
170173
}
171174

@@ -267,9 +270,7 @@ public void createServerGroup_noSubnetType_expect_deploymentToAZs() throws Inter
267270
// then
268271
final String taskHistory = getTaskUpdatesAfterCompletion(taskId);
269272
assertTrue(taskHistory.contains(EXPECTED_DEPLOY_SUCCESS_MSG));
270-
assertTrue(
271-
taskHistory.contains(
272-
String.format("Deploying to availabilityZones: [us-west-1a, us-west-1c]")));
273+
assertTrue(taskHistory.contains("Deploying to availabilityZones: [us-west-1a, us-west-1c]"));
273274

274275
// capture and assert arguments
275276
ArgumentCaptor<CreateAutoScalingGroupRequest> createAsgArgs =
@@ -312,8 +313,6 @@ public void createServerGroup_alreadyExists_notInSafetyWindow_expect_exception()
312313

313314
// then
314315
String taskHistory1 = getTaskUpdatesAfterCompletion(taskId1);
315-
System.out.println(taskHistory1);
316-
System.out.println(taskHistory1.contains(EXPECTED_DEPLOY_SUCCESS_MSG));
317316
assertTrue(taskHistory1.contains(EXPECTED_DEPLOY_SUCCESS_MSG));
318317

319318
// when

0 commit comments

Comments
 (0)