List of usage examples for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient describeTable
@Override
public DescribeTableResult describeTable(String tableName)
From source file:dynamok.source.DynamoDbSourceConnector.java
License:Apache License
@Override public void start(Map<String, String> props) { config = new ConnectorConfig(props); streamShards = new HashMap<>(); final AmazonDynamoDBClient client; final AmazonDynamoDBStreamsClient streamsClient; if (config.accessKeyId.value().isEmpty() || config.secretKeyId.value().isEmpty()) { client = new AmazonDynamoDBClient(); streamsClient = new AmazonDynamoDBStreamsClient(); log.debug("AmazonDynamoDB clients created with default credentials"); } else {//from ww w . j a va2 s . com BasicAWSCredentials awsCreds = new BasicAWSCredentials(config.accessKeyId.value(), config.secretKeyId.value()); client = new AmazonDynamoDBClient(awsCreds); streamsClient = new AmazonDynamoDBStreamsClient(awsCreds); log.debug("AmazonDynamoDB clients created with AWS credentials from connector configuration"); } client.configureRegion(config.region); streamsClient.configureRegion(config.region); final Set<String> ignoredTables = new HashSet<>(); final Set<String> consumeTables = new HashSet<>(); String lastEvaluatedTableName = null; do { final ListTablesResult listResult = client.listTables(lastEvaluatedTableName); for (String tableName : listResult.getTableNames()) { if (!acceptTable(tableName)) { ignoredTables.add(tableName); continue; } final TableDescription tableDesc = client.describeTable(tableName).getTable(); final StreamSpecification streamSpec = tableDesc.getStreamSpecification(); if (streamSpec == null || !streamSpec.isStreamEnabled()) { throw new ConnectException( String.format("DynamoDB table `%s` does not have streams enabled", tableName)); } final String streamViewType = streamSpec.getStreamViewType(); if (!streamViewType.equals(StreamViewType.NEW_IMAGE.name()) && !streamViewType.equals(StreamViewType.NEW_AND_OLD_IMAGES.name())) { throw new ConnectException(String.format("DynamoDB stream view type for table `%s` is %s", tableName, streamViewType)); } final DescribeStreamResult describeStreamResult = streamsClient .describeStream(new DescribeStreamRequest().withStreamArn(tableDesc.getLatestStreamArn())); for (Shard shard : describeStreamResult.getStreamDescription().getShards()) { streamShards.put(shard, tableDesc); } consumeTables.add(tableName); } lastEvaluatedTableName = listResult.getLastEvaluatedTableName(); } while (lastEvaluatedTableName != null); log.info("Tables to ignore: {}", ignoredTables); log.info("Tables to ingest: {}", consumeTables); client.shutdown(); streamsClient.shutdown(); }
From source file:edu.brandeis.cs.moseskim.gudfoods.aws.dynamodb.DynamoDBManager.java
License:Open Source License
public static String getTestTableStatus() { try {//from w w w.j a va 2s.c om AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DescribeTableRequest request = new DescribeTableRequest().withTableName(Constants.TEST_TABLE_NAME); DescribeTableResult result = null; while (result == null) { try { result = ddb.describeTable(request); } catch (AmazonClientException e) { Log.e(TAG, "HTTP request timeout"); } } String status = result.getTable().getTableStatus(); return status == null ? "" : status; } catch (ResourceNotFoundException e) { } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } return ""; }
From source file:examples.csci567.demo.userpreferencesom.DynamoDBManager.java
License:Open Source License
public static String getTestTableStatus() { try {/*from w ww . j av a2s .c o m*/ AmazonDynamoDBClient ddb = UserPreferenceDemoActivity.clientManager.ddb(); DescribeTableRequest request = new DescribeTableRequest().withTableName(Constants.TEST_TABLE_NAME); DescribeTableResult result = ddb.describeTable(request); String status = result.getTable().getTableStatus(); return status == null ? "" : status; } catch (ResourceNotFoundException e) { } catch (AmazonServiceException ex) { UserPreferenceDemoActivity.clientManager.wipeCredentialsOnAuthError(ex); } return ""; }
From source file:org.wildfly.camel.test.common.aws.DynamoDBUtils.java
License:Apache License
public static void assertNoStaleTables(AmazonDynamoDBClient client, String when) { /* Get the list of tables without the ones in the deleting state */ List<String> tables = client.listTables().getTableNames().stream() .filter(t -> System.currentTimeMillis() - AWSUtils.toEpochMillis(t) > AWSUtils.HOUR || !"DELETING".equals(client.describeTable(t).getTable().getTableStatus())) .collect(Collectors.toList()); Assert.assertEquals(String.format("Found stale DynamoDB tables %s running the test: %s", when, tables), 0, tables.size());//from w w w .j a v a2 s. c o m }