Example usage for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient describeTable

List of usage examples for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient describeTable

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient describeTable.

Prototype

@Override
    public DescribeTableResult describeTable(String tableName) 

Source Link

Usage

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
}