Skip to content

Commit

Permalink
Migrate Elasticache to AWS SDK v2
Browse files Browse the repository at this point in the history
  • Loading branch information
Jithendar12 committed Sep 4, 2024
1 parent c3968c5 commit 1b72a30
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 21 deletions.
6 changes: 3 additions & 3 deletions athena-redis/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@
<version>${slf4j-log4j.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-elasticache</artifactId>
<version>${aws-sdk.version}</version>
<groupId>software.amazon.awssdk</groupId>
<artifactId>elasticache</artifactId>
<version>${aws-sdk-v2.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/software.amazon.awscdk/elasticache -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
*/
package com.amazonaws.athena.connectors.redis.integ;

import com.amazonaws.ClientConfiguration;
import com.amazonaws.athena.connector.integ.ConnectorStackFactory;
import com.amazonaws.athena.connector.integ.IntegrationTestBase;
import com.amazonaws.athena.connector.integ.clients.CloudFormationClient;
Expand All @@ -28,13 +27,6 @@
import com.amazonaws.athena.connector.integ.data.ConnectorVpcAttributes;
import com.amazonaws.athena.connector.integ.data.SecretsManagerCredentials;
import com.amazonaws.athena.connector.integ.providers.ConnectorPackagingAttributesProvider;
import com.amazonaws.services.elasticache.AmazonElastiCache;
import com.amazonaws.services.elasticache.AmazonElastiCacheClientBuilder;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersRequest;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersResult;
import com.amazonaws.services.elasticache.model.DescribeReplicationGroupsRequest;
import com.amazonaws.services.elasticache.model.DescribeReplicationGroupsResult;
import com.amazonaws.services.elasticache.model.Endpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterClass;
Expand All @@ -56,6 +48,12 @@
import software.amazon.awscdk.services.s3.IBucket;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.services.athena.model.Row;
import software.amazon.awssdk.services.elasticache.ElastiCacheClient;
import software.amazon.awssdk.services.elasticache.model.DescribeCacheClustersRequest;
import software.amazon.awssdk.services.elasticache.model.DescribeCacheClustersResponse;
import software.amazon.awssdk.services.elasticache.model.DescribeReplicationGroupsRequest;
import software.amazon.awssdk.services.elasticache.model.DescribeReplicationGroupsResponse;
import software.amazon.awssdk.services.elasticache.model.Endpoint;
import software.amazon.awssdk.services.glue.GlueClient;
import software.amazon.awssdk.services.glue.model.EntityNotFoundException;
import software.amazon.awssdk.services.glue.model.TableInput;
Expand Down Expand Up @@ -143,12 +141,12 @@ protected void setUp()
Endpoint standaloneEndpoint = getRedisInstanceData(redisStandaloneName, false);
logger.info("Got Endpoint: " + standaloneEndpoint.toString());
redisEndpoints.put(STANDALONE_KEY, String.format("%s:%s",
standaloneEndpoint.getAddress(), standaloneEndpoint.getPort()));
standaloneEndpoint.address(), standaloneEndpoint.port()));

Endpoint clusterEndpoint = getRedisInstanceData(redisClusterName, true);
logger.info("Got Endpoint: " + clusterEndpoint.toString());
redisEndpoints.put(CLUSTER_KEY, String.format("%s:%s:%s",
clusterEndpoint.getAddress(), clusterEndpoint.getPort(), redisPassword));
clusterEndpoint.address(), clusterEndpoint.port(), redisPassword));

// Get endpoint information and set the connection string environment var for Lambda.
environmentVars.put("standalone_connection", redisEndpoints.get(STANDALONE_KEY));
Expand Down Expand Up @@ -346,21 +344,26 @@ private Stack getRedisStack()
*/
private Endpoint getRedisInstanceData(String redisName, boolean isCluster)
{
AmazonElastiCache elastiCacheClient = AmazonElastiCacheClientBuilder.defaultClient();
ElastiCacheClient elastiCacheClient = ElastiCacheClient.builder().build();
try {
if (isCluster) {
DescribeReplicationGroupsResult describeResult = elastiCacheClient.describeReplicationGroups(new DescribeReplicationGroupsRequest()
.withReplicationGroupId(redisName));
return describeResult.getReplicationGroups().get(0).getConfigurationEndpoint();
DescribeReplicationGroupsRequest describeRequest = DescribeReplicationGroupsRequest.builder()
.replicationGroupId(redisName)
.build();
DescribeReplicationGroupsResponse describeResponse = elastiCacheClient.describeReplicationGroups(describeRequest);
return describeResponse.replicationGroups().get(0).configurationEndpoint();
}
else {
DescribeCacheClustersResult describeResult = elastiCacheClient.describeCacheClusters(new DescribeCacheClustersRequest()
.withCacheClusterId(redisName).withShowCacheNodeInfo(true));
return describeResult.getCacheClusters().get(0).getCacheNodes().get(0).getEndpoint();
DescribeCacheClustersRequest describeRequest = DescribeCacheClustersRequest.builder()
.cacheClusterId(redisName)
.showCacheNodeInfo(true)
.build();
DescribeCacheClustersResponse describeResponse = elastiCacheClient.describeCacheClusters(describeRequest);
return describeResponse.cacheClusters().get(0).cacheNodes().get(0).endpoint();
}
}
finally {
elastiCacheClient.shutdown();
elastiCacheClient.close();
}
}

Expand Down

0 comments on commit 1b72a30

Please sign in to comment.