use of com.sequenceiq.cloudbreak.cloud.aws.common.client.AmazonRdsClient in project cloudbreak by hortonworks.
the class AwsRdsStopService method stop.
public void stop(AuthenticatedContext ac, DatabaseStack dbStack) throws ExecutionException, TimeoutException, InterruptedException {
AwsCredentialView credentialView = new AwsCredentialView(ac.getCloudCredential());
String regionName = ac.getCloudContext().getLocation().getRegion().value();
AmazonRdsClient rdsClient = awsClient.createRdsClient(credentialView, regionName);
String dbInstanceIdentifier = dbStack.getDatabaseServer().getServerId();
StopDBInstanceRequest stopDBInstanceRequest = new StopDBInstanceRequest();
stopDBInstanceRequest.setDBInstanceIdentifier(dbInstanceIdentifier);
LOGGER.debug("RDS stop request");
try {
rdsClient.stopDBInstance(stopDBInstanceRequest);
} catch (RuntimeException ex) {
throw new CloudConnectorException(ex.getMessage(), ex);
}
Waiter<DescribeDBInstancesRequest> rdsWaiter = customAmazonWaiterProvider.getDbInstanceStopWaiter(rdsClient);
DescribeDBInstancesRequest describeDBInstancesRequest = new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceIdentifier);
StackCancellationCheck stackCancellationCheck = new StackCancellationCheck(ac.getCloudContext().getId());
run(rdsWaiter, describeDBInstancesRequest, stackCancellationCheck, "RDS stop failed");
LOGGER.debug("RDS stop process finished. DB Instance ID: {}", dbInstanceIdentifier);
}
Aggregations