下面列出了怎么用com.amazonaws.services.dynamodbv2.model.ListTablesResult的API类实例代码及写法,或者点击链接到github查看源代码。
static void listMyTables() {
String lastEvaluatedTableName = null;
do {
ListTablesRequest listTablesRequest = new ListTablesRequest().withLimit(10)
.withExclusiveStartTableName(lastEvaluatedTableName);
ListTablesResult result = client.listTables(listTablesRequest);
lastEvaluatedTableName = result.getLastEvaluatedTableName();
for (String name : result.getTableNames()) {
System.out.println(name);
}
} while (lastEvaluatedTableName != null);
}
static void createTestTable(String tableName) {
CreateTableResult res = createDynamoTable(tableName);
TableDescription tableDesc = res.getTableDescription();
Assert.assertEquals(tableName, tableDesc.getTableName());
Assert.assertTrue(tableDesc.getKeySchema().toString().contains(ATTR_NAME_1));
Assert.assertTrue(tableDesc.getKeySchema().toString().contains(ATTR_NAME_2));
Assert.assertEquals(
tableDesc.getProvisionedThroughput().getReadCapacityUnits(), Long.valueOf(1000));
Assert.assertEquals(
tableDesc.getProvisionedThroughput().getWriteCapacityUnits(), Long.valueOf(1000));
Assert.assertEquals("ACTIVE", tableDesc.getTableStatus());
Assert.assertEquals(
"arn:aws:dynamodb:us-east-1:000000000000:table/" + tableName, tableDesc.getTableArn());
ListTablesResult tables = dynamoDBClient.listTables();
Assert.assertEquals(1, tables.getTableNames().size());
}
@Test
public void test_updateTable() throws Exception {
createTable();
DescribeTableResult describeResult = dynamoDb.describeTable(TEST_TABLE_NAME);
Long readUnits = describeResult.getTable().getProvisionedThroughput().getReadCapacityUnits();
assertThat(readUnits, equalTo(UNITS));
UpdateTableResult updateResult = dynamoDb.updateTable(TEST_TABLE_NAME, new ProvisionedThroughput()
.withReadCapacityUnits(new Long(200))
.withWriteCapacityUnits(new Long(200)));
String tableName = updateResult.getTableDescription().getTableName();
assertThat(tableName, equalTo(TEST_TABLE_NAME));
ListTablesResult listResult = listTables();
describeResult = dynamoDb.describeTable(TEST_TABLE_NAME);
readUnits = describeResult.getTable().getProvisionedThroughput().getReadCapacityUnits();
assertThat(readUnits, equalTo(new Long(200)));
}
static void listMyTables() {
String lastEvaluatedTableName = null;
do {
ListTablesRequest listTablesRequest = new ListTablesRequest()
.withLimit(10)
.withExclusiveStartTableName(lastEvaluatedTableName);
ListTablesResult result = client.listTables(listTablesRequest);
lastEvaluatedTableName = result.getLastEvaluatedTableName();
for (String name : result.getTableNames()) {
System.out.println(name);
}
} while (lastEvaluatedTableName != null);
}
@Test
public void createTableTest() {
AmazonDynamoDB ddb = DynamoDBEmbedded.create().amazonDynamoDB();
try {
String tableName = "Movies";
String hashKeyName = "film_id";
CreateTableResult res = createTable(ddb, tableName, hashKeyName);
TableDescription tableDesc = res.getTableDescription();
assertEquals(tableName, tableDesc.getTableName());
assertEquals("[{AttributeName: " + hashKeyName + ",KeyType: HASH}]", tableDesc.getKeySchema().toString());
assertEquals("[{AttributeName: " + hashKeyName + ",AttributeType: S}]",
tableDesc.getAttributeDefinitions().toString());
assertEquals(Long.valueOf(1000L), tableDesc.getProvisionedThroughput().getReadCapacityUnits());
assertEquals(Long.valueOf(1000L), tableDesc.getProvisionedThroughput().getWriteCapacityUnits());
assertEquals("ACTIVE", tableDesc.getTableStatus());
assertEquals("arn:aws:dynamodb:ddblocal:000000000000:table/Movies", tableDesc.getTableArn());
ListTablesResult tables = ddb.listTables();
assertEquals(1, tables.getTableNames().size());
} finally {
ddb.shutdown();
}
}
private List<String> listTablesInternal()
throws TimeoutException
{
List<String> tables = new ArrayList<>();
String nextToken = null;
do {
ListTablesRequest ddbRequest = new ListTablesRequest()
.withExclusiveStartTableName(nextToken);
ListTablesResult result = invoker.invoke(() -> ddbClient.listTables(ddbRequest));
tables.addAll(result.getTableNames());
nextToken = result.getLastEvaluatedTableName();
}
while (nextToken != null);
return tables;
}
/**
* Fetch dynamo DB tables test.
*
* @throws Exception the exception
*/
@SuppressWarnings("static-access")
@Test
public void fetchDynamoDBTablesTest() throws Exception {
mockStatic(AmazonDynamoDBClientBuilder.class);
AmazonDynamoDB awsClient = PowerMockito.mock(AmazonDynamoDB.class);
AmazonDynamoDBClientBuilder amazonDynamoDBClientBuilder = PowerMockito.mock(AmazonDynamoDBClientBuilder.class);
AWSStaticCredentialsProvider awsStaticCredentialsProvider = PowerMockito.mock(AWSStaticCredentialsProvider.class);
PowerMockito.whenNew(AWSStaticCredentialsProvider.class).withAnyArguments().thenReturn(awsStaticCredentialsProvider);
when(amazonDynamoDBClientBuilder.standard()).thenReturn(amazonDynamoDBClientBuilder);
when(amazonDynamoDBClientBuilder.withCredentials(anyObject())).thenReturn(amazonDynamoDBClientBuilder);
when(amazonDynamoDBClientBuilder.withRegion(anyString())).thenReturn(amazonDynamoDBClientBuilder);
when(amazonDynamoDBClientBuilder.build()).thenReturn(awsClient);
ListTablesResult listTableResult = new ListTablesResult();
List<String> tables = new ArrayList<>();
tables.add(new String());
listTableResult.setTableNames(tables);
when(awsClient.listTables()).thenReturn(listTableResult);
DescribeTableResult describeTableResult = new DescribeTableResult();
TableDescription table = new TableDescription();
table.setTableArn("tableArn");
describeTableResult.setTable(table);
when(awsClient.describeTable(anyString())).thenReturn(describeTableResult);
when(awsClient.listTagsOfResource(anyObject())).thenReturn(new ListTagsOfResourceResult());
assertThat(inventoryUtil.fetchDynamoDBTables(new BasicSessionCredentials("awsAccessKey", "awsSecretKey", "sessionToken"),
"skipRegions", "account","accountName").size(), is(1));
}
static void listMyTables() {
TableCollection<ListTablesResult> tables = dynamoDB.listTables();
Iterator<Table> iterator = tables.iterator();
System.out.println("Listing table names");
while (iterator.hasNext()) {
Table table = iterator.next();
System.out.println(table.getTableName());
}
}
@Override
public ListTablesResult next() throws BackendException {
final ListTablesResult result = delegate.listTables(request);
if (result.getLastEvaluatedTableName() != null && !result.getLastEvaluatedTableName().isEmpty()) {
request.setExclusiveStartTableName(result.getLastEvaluatedTableName());
} else { //done
markComplete();
}
// c add scanned items
tableNames.addAll(result.getTableNames());
return result;
}
ListTablesResult listTables(final ListTablesRequest request) throws BackendException {
controlPlaneRateLimiter.acquire();
final Timer.Context apiTimerContext = getTimerContext(listTablesApiName, null /*tableName*/);
ListTablesResult result;
try {
result = client.listTables(request);
} catch (final Exception e) {
throw processDynamoDbApiException(e, LIST_TABLES, null /*tableName*/);
} finally {
apiTimerContext.stop();
}
return result;
}
@Test
public void test_listTables_WithNpParameters() throws Exception {
createTable();
ListTablesResult result = listTables();
List<String> tableNames = result.getTableNames();
assertThat(tableNames.size(), equalTo(1));
assertThat(tableNames.get(0), equalTo(TEST_TABLE_NAME));
}
@Test
public void test_listTables_WithExclusiveStartTableName() throws Exception {
createTable();
ListTablesResult result = dynamoDb.listTables(TEST_TABLE_NAME);
List<String> tableNames = result.getTableNames();
assertThat(tableNames.size(), equalTo(1));
assertThat(tableNames.get(0), equalTo(TEST_TABLE_NAME));
}
@Test
public void test_listTables_WithLimit() throws Exception {
createTable();
ListTablesResult result = dynamoDb.listTables(new Integer(10));
List<String> tableNames = result.getTableNames();
assertThat(tableNames.size(), equalTo(1));
assertThat(tableNames.get(0), equalTo(TEST_TABLE_NAME));
}
@Test
public void test_listTables_WithAllParameters() throws Exception {
createTable();
ListTablesResult result = dynamoDb.listTables(TEST_TABLE_NAME, new Integer(10));
List<String> tableNames = result.getTableNames();
assertThat(tableNames.size(), equalTo(1));
assertThat(tableNames.get(0), equalTo(TEST_TABLE_NAME));
}
@Override
public void dropNamespace() {
if (m_tenantPrefix.length() == 0) {
m_logger.warn("Drop namespace not supported for legacy DynamoDB instances. "+
"Tables for tenant {} must be deleted manually", m_tenant.getName());
return;
}
ListTablesResult tables = m_ddbClient.listTables();
List<String> tableNames = tables.getTableNames();
for (String tableName : tableNames) {
if (tableName.startsWith(m_tenantPrefix)) {
deleteTable(tableName);
}
}
}
@Override
public void deleteAll() throws Exception {
final ListTablesResult tables = client.listTables();
for (final String tableName : tables.getTableNames()) {
if ((gwNamespace == null) || tableName.startsWith(gwNamespace)) {
client.deleteTable(new DeleteTableRequest(tableName));
}
}
tableExistsCache.clear();
}
@Test
public void noSqlTables() {
when(awsClient.createDynamoDbClient(any(AwsCredentialView.class), anyString())).thenReturn(amazonDynamoDB);
when(amazonDynamoDB.listTables(any(ListTablesRequest.class))).thenReturn(
new ListTablesResult().withTableNames("a", "b").withLastEvaluatedTableName("b"),
new ListTablesResult().withTableNames("c", "d")
);
CloudNoSqlTables cloudNoSqlTables = underTest.noSqlTables(new CloudCredential(), region("region"), null);
assertThat(cloudNoSqlTables.getCloudNoSqlTables()).hasSameElementsAs(List.of(
new CloudNoSqlTable("a"),
new CloudNoSqlTable("b"),
new CloudNoSqlTable("c"),
new CloudNoSqlTable("d")));
}
static void listMyTables() {
TableCollection<ListTablesResult> tables = dynamoDB.listTables();
Iterator<Table> iterator = tables.iterator();
System.out.println("Listing table names");
while (iterator.hasNext()) {
Table table = iterator.next();
System.out.println(table.getTableName());
}
}
/**
* Fetch dynamo DB tables.
*
* @param temporaryCredentials the temporary credentials
* @param skipRegions the skip regions
* @param accountId the accountId
* @param accountName the account name
* @return the map
*/
public static Map<String,List<DynamoVH>> fetchDynamoDBTables(BasicSessionCredentials temporaryCredentials, String skipRegions,String accountId,String accountName){
Map<String,List<DynamoVH>> dynamodbtables = new LinkedHashMap<>();
String expPrefix = InventoryConstants.ERROR_PREFIX_CODE+accountId + "\",\"Message\": \"Exception in fetching info for resource in specific region\" ,\"type\": \"DynamoDB\" , \"region\":\"" ;
for(Region region : RegionUtils.getRegions()){
try{
if(!skipRegions.contains(region.getName())){
AmazonDynamoDB awsClient= AmazonDynamoDBClientBuilder.standard().
withCredentials(new AWSStaticCredentialsProvider(temporaryCredentials)).withRegion(region.getName()).build();
String marker = null;
List<String> tables = new ArrayList<>();
ListTablesResult listTableResult;
do{
listTableResult = awsClient.listTables(new ListTablesRequest().withExclusiveStartTableName(marker));
marker = listTableResult.getLastEvaluatedTableName();
tables.addAll(listTableResult.getTableNames());
}while(marker!=null);
List<DynamoVH> dynamodbtablesTemp = new ArrayList<>();
tables.parallelStream().forEach(tblName -> {
TableDescription table = awsClient.describeTable(tblName).getTable();
List<com.amazonaws.services.dynamodbv2.model.Tag> tags = awsClient.listTagsOfResource(new ListTagsOfResourceRequest().withResourceArn( table.getTableArn())).getTags();
synchronized (dynamodbtablesTemp) {
dynamodbtablesTemp.add(new DynamoVH(table,tags));
}
});
if(!dynamodbtablesTemp.isEmpty() ){
log.debug(InventoryConstants.ACCOUNT + accountId +" Type : DynamoDB "+region.getName() + " >> "+dynamodbtablesTemp.size());
dynamodbtables.put(accountId+delimiter+accountName+delimiter+region.getName(), dynamodbtablesTemp);
}
}
}catch(Exception e){
if(region.isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX)){
log.warn(expPrefix+ region.getName()+InventoryConstants.ERROR_CAUSE +e.getMessage()+"\"}");
ErrorManageUtil.uploadError(accountId,region.getName(),"dynamodb",e.getMessage());
}
}
}
return dynamodbtables;
}
@Override
public ListTablesResult listTables(ListTablesRequest listTablesRequest) {
throw new UnsupportedOperationException();
}
@Override
public ListTablesResult listTables() {
throw new UnsupportedOperationException();
}
@Override
public ListTablesResult listTables(String exclusiveStartTableName) {
throw new UnsupportedOperationException();
}
@Override
public ListTablesResult listTables(String exclusiveStartTableName, Integer limit) {
throw new UnsupportedOperationException();
}
@Override
public ListTablesResult listTables(Integer limit) {
throw new UnsupportedOperationException();
}
public static void main(String[] args)
{
System.out.println("Your DynamoDB tables:\n");
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
ListTablesRequest request;
boolean more_tables = true;
String last_name = null;
while(more_tables) {
try {
if (last_name == null) {
request = new ListTablesRequest().withLimit(10);
}
else {
request = new ListTablesRequest()
.withLimit(10)
.withExclusiveStartTableName(last_name);
}
ListTablesResult table_list = ddb.listTables(request);
List<String> table_names = table_list.getTableNames();
if (table_names.size() > 0) {
for (String cur_name : table_names) {
System.out.format("* %s\n", cur_name);
}
} else {
System.out.println("No tables found!");
System.exit(0);
}
last_name = table_list.getLastEvaluatedTableName();
if (last_name == null) {
more_tables = false;
}
} catch (AmazonServiceException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
}
System.out.println("\nDone!");
}
public static void listTables(ListTablesResult result, String method) {
System.out.println("found " + Integer.toString(result.getTableNames().size()) + " tables with " + method);
for (String table : result.getTableNames()) {
System.out.println(table);
}
}
@Override
protected ListTablesResult getMergedPages() {
return new ListTablesResult().withTableNames(tableNames);
}
public ListTablesResult listAllTables() throws BackendException {
final ListTablesWorker worker = new ListTablesWorker(this);
worker.call();
return worker.getMergedPages();
}
private ListTablesResult listTables() throws Exception {
ListTablesResult result = dynamoDb.listTables();
return result;
}
public static void listTables(ListTablesResult result, String method) {
System.out.println("found " + Integer.toString(result.getTableNames().size()) + " tables with " + method);
for(String table : result.getTableNames()) {
System.out.println(table);
}
}