use of com.netflix.titus.grpc.protogen.ScalingPolicyID in project titus-control-plane by Netflix.
the class AutoScalingGrpcTest method getAllPolicies.
/**
* Test that we can get multiple exceptions.
*
* @throws Exception
*/
@Test(timeout = TEST_TIMEOUT_MS)
public void getAllPolicies() throws Exception {
Set<ScalingPolicyID> policyIDSet = new HashSet<>();
int numJobs = 2;
for (int i = 1; i <= numJobs; i++) {
PutPolicyRequest putPolicyRequest = AutoScalingTestUtils.generatePutPolicyRequest("Titus-" + i, PolicyType.StepScaling);
TestStreamObserver<ScalingPolicyID> putResponse = new TestStreamObserver<>();
client.setAutoScalingPolicy(putPolicyRequest, putResponse);
ScalingPolicyID scalingPolicyID = putResponse.takeNext(TIMEOUT_MS, TimeUnit.MILLISECONDS);
assertThat(!scalingPolicyID.getId().isEmpty());
policyIDSet.add(scalingPolicyID);
}
TestStreamObserver<GetPolicyResult> getResponse = new TestStreamObserver<>();
client.getAllScalingPolicies(Empty.newBuilder().build(), getResponse);
GetPolicyResult getPolicyResult = getResponse.takeNext(TIMEOUT_MS, TimeUnit.MILLISECONDS);
assertThat(getPolicyResult.getItemsCount()).isEqualTo(numJobs);
getPolicyResult.getItemsList().forEach(scalingPolicyResult -> {
assertThat(policyIDSet.contains(scalingPolicyResult.getId())).isTrue();
});
}
use of com.netflix.titus.grpc.protogen.ScalingPolicyID in project titus-control-plane by Netflix.
the class AutoScalingGrpcTest method testUpdatePolicyConfigurationForStepScaling.
/**
* Test policy configuration update for target tracking policy
*
* @throws Exception
*/
@Test(timeout = TEST_TIMEOUT_MS)
public void testUpdatePolicyConfigurationForStepScaling() throws Exception {
String jobId = "Titus-123";
PutPolicyRequest putPolicyRequest = AutoScalingTestUtils.generatePutPolicyRequest(jobId, PolicyType.StepScaling);
TestStreamObserver<ScalingPolicyID> putResponse = new TestStreamObserver<>();
client.setAutoScalingPolicy(putPolicyRequest, putResponse);
putResponse.awaitDone();
ScalingPolicyID scalingPolicyID = putResponse.takeNext(TIMEOUT_MS, TimeUnit.MILLISECONDS);
assertThat(!scalingPolicyID.getId().isEmpty());
TestStreamObserver<Empty> updateResponse = new TestStreamObserver<>();
client.updateAutoScalingPolicy(AutoScalingTestUtils.generateUpdateStepScalingPolicyRequest(scalingPolicyID.getId(), 100.0), updateResponse);
updateResponse.awaitDone();
AutoScalingPolicyTests.waitForCondition(() -> {
TestStreamObserver<GetPolicyResult> getResponse = new TestStreamObserver<>();
client.getScalingPolicy(scalingPolicyID, getResponse);
try {
GetPolicyResult getPolicyResult = getResponse.takeNext(TIMEOUT_MS, TimeUnit.MILLISECONDS);
return getPolicyResult.getItemsCount() == 1 && getPolicyResult.getItems(0).getScalingPolicy().getStepPolicyDescriptor().getAlarmConfig().getThreshold().getValue() == 100.0;
} catch (Exception ignored) {
}
return false;
});
TestStreamObserver<GetPolicyResult> getResponse = new TestStreamObserver<>();
client.getScalingPolicy(scalingPolicyID, getResponse);
getResponse.awaitDone();
GetPolicyResult getPolicyResult = getResponse.takeNext(TIMEOUT_MS, TimeUnit.MILLISECONDS);
assertThat(getPolicyResult.getItemsCount()).isEqualTo(1);
DoubleValue threshold = getPolicyResult.getItems(0).getScalingPolicy().getStepPolicyDescriptor().getAlarmConfig().getThreshold();
assertThat(threshold.getValue()).isEqualTo(100.0);
}
use of com.netflix.titus.grpc.protogen.ScalingPolicyID in project titus-control-plane by Netflix.
the class AutoScalingResource method removePolicy.
@DELETE
@ApiOperation("Delete scaling policy")
@Path("scalingPolicy/{policyId}")
public javax.ws.rs.core.Response removePolicy(@PathParam("policyId") String policyId) {
ScalingPolicyID scalingPolicyId = ScalingPolicyID.newBuilder().setId(policyId).build();
DeletePolicyRequest deletePolicyRequest = DeletePolicyRequest.newBuilder().setId(scalingPolicyId).build();
return Responses.fromCompletable(autoScalingService.deleteAutoScalingPolicy(deletePolicyRequest, resolveCallMetadata()));
}
use of com.netflix.titus.grpc.protogen.ScalingPolicyID in project titus-control-plane by Netflix.
the class AutoScalingSpringResource method setScalingPolicy.
@ApiOperation("Create or Update scaling policy")
@PostMapping(path = "/scalingPolicy")
public ScalingPolicyID setScalingPolicy(@RequestBody PutPolicyRequest putPolicyRequest, CallMetadataAuthentication authentication) {
Observable<ScalingPolicyID> putPolicyResult = autoScalingService.setAutoScalingPolicy(putPolicyRequest, authentication.getCallMetadata());
ScalingPolicyID policyId = Responses.fromSingleValueObservable(putPolicyResult);
log.info("New policy created {}", policyId);
return policyId;
}
use of com.netflix.titus.grpc.protogen.ScalingPolicyID in project titus-control-plane by Netflix.
the class AutoScalingResource method setScalingPolicy.
@POST
@ApiOperation("Create or Update scaling policy")
@Path("scalingPolicy")
public ScalingPolicyID setScalingPolicy(PutPolicyRequest putPolicyRequest) {
Observable<ScalingPolicyID> putPolicyResult = autoScalingService.setAutoScalingPolicy(putPolicyRequest, resolveCallMetadata());
ScalingPolicyID policyId = Responses.fromSingleValueObservable(putPolicyResult);
log.info("New policy created {}", policyId);
return policyId;
}
Aggregations