use of com.amazonaws.services.dynamodbv2.model.CreateTableRequest in project openhab1-addons by openhab.
the class DynamoDBPersistenceService method createTable.
/**
* Create table (if not present) and wait for table to become active.
*
* Synchronized in order to ensure that at most single thread is creating the table at a time
*
* @param mapper
* @param dtoClass
* @return whether table creation succeeded.
*/
private synchronized boolean createTable(DynamoDBMapper mapper, Class<?> dtoClass) {
if (db == null) {
return false;
}
String tableName;
try {
ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput(dbConfig.getReadCapacityUnits(), dbConfig.getWriteCapacityUnits());
CreateTableRequest request = mapper.generateCreateTableRequest(dtoClass);
request.setProvisionedThroughput(provisionedThroughput);
if (request.getGlobalSecondaryIndexes() != null) {
for (GlobalSecondaryIndex index : request.getGlobalSecondaryIndexes()) {
index.setProvisionedThroughput(provisionedThroughput);
}
}
tableName = request.getTableName();
try {
db.getDynamoClient().describeTable(tableName);
} catch (ResourceNotFoundException e) {
// No table present, continue with creation
db.getDynamoClient().createTable(request);
} catch (AmazonClientException e) {
logger.error("Table creation failed due to error in describeTable operation", e);
return false;
}
// table found or just created, wait
return waitForTableToBecomeActive(tableName);
} catch (AmazonClientException e) {
logger.error("Exception when creating table", e);
return false;
}
}
use of com.amazonaws.services.dynamodbv2.model.CreateTableRequest in project camel by apache.
the class AmazonDDBClientMock method describeTable.
@Override
public DescribeTableResult describeTable(DescribeTableRequest describeTableRequest) {
this.describeTableRequest = describeTableRequest;
String tableName = describeTableRequest.getTableName();
if ("activeTable".equals(tableName)) {
return tableWithStatus(TableStatus.ACTIVE);
} else if ("creatibleTable".equals(tableName) && createTableRequest != null) {
return tableWithStatus(TableStatus.ACTIVE);
} else if ("FULL_DESCRIBE_TABLE".equals(tableName)) {
return new DescribeTableResult().withTable(new TableDescription().withTableName(tableName).withTableStatus(TableStatus.ACTIVE).withCreationDateTime(new Date(NOW)).withItemCount(100L).withKeySchema(new KeySchemaElement().withAttributeName("name")).withProvisionedThroughput(new ProvisionedThroughputDescription().withReadCapacityUnits(20L).withWriteCapacityUnits(10L)).withTableSizeBytes(1000L));
}
throw new ResourceNotFoundException(tableName + " is missing");
}
use of com.amazonaws.services.dynamodbv2.model.CreateTableRequest in project tutorials by eugenp.
the class ProductInfoRepositoryIntegrationTest method setup.
@Before
public void setup() throws Exception {
try {
dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB);
CreateTableRequest tableRequest = dynamoDBMapper.generateCreateTableRequest(ProductInfo.class);
tableRequest.setProvisionedThroughput(new ProvisionedThroughput(1L, 1L));
amazonDynamoDB.createTable(tableRequest);
} catch (ResourceInUseException e) {
// Do nothing, table already created
}
// TODO How to handle different environments. i.e. AVOID deleting all entries in ProductInfo on table
dynamoDBMapper.batchDelete((List<ProductInfo>) repository.findAll());
}
use of com.amazonaws.services.dynamodbv2.model.CreateTableRequest in project jcabi-dynamo by jcabi.
the class RegionMock method get.
/**
* Get region with a table.
* @param table Table name
* @return Region
* @throws Exception If fails
*/
public Region get(final String table) throws Exception {
final Region region = new Region.Simple(new Credentials.Direct(Credentials.TEST, this.prt));
final MadeTable mocker = new MadeTable(region, new CreateTableRequest().withTableName(table).withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L)).withAttributeDefinitions(new AttributeDefinition().withAttributeName(this.ahash).withAttributeType(ScalarAttributeType.S), new AttributeDefinition().withAttributeName(this.arange).withAttributeType(ScalarAttributeType.N)).withKeySchema(new KeySchemaElement().withAttributeName(this.ahash).withKeyType(KeyType.HASH), new KeySchemaElement().withAttributeName(this.arange).withKeyType(KeyType.RANGE)));
mocker.create();
mocker.createIfAbsent();
return new ReRegion(region);
}
use of com.amazonaws.services.dynamodbv2.model.CreateTableRequest in project aws-doc-sdk-examples by awsdocs.
the class LowLevelParallelScan method createTable.
private static void createTable(String tableName, long readCapacityUnits, long writeCapacityUnits, String partitionKeyName, String partitionKeyType, String sortKeyName, String sortKeyType) {
try {
System.out.println("Creating table " + tableName);
ArrayList<KeySchemaElement> ks = new ArrayList<KeySchemaElement>();
ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>();
// Partition
ks.add(new KeySchemaElement().withAttributeName(partitionKeyName).withKeyType(KeyType.HASH));
// key
attributeDefinitions.add(new AttributeDefinition().withAttributeName(partitionKeyName).withAttributeType(partitionKeyType));
if (sortKeyName != null) {
// Sort
ks.add(new KeySchemaElement().withAttributeName(sortKeyName).withKeyType(KeyType.RANGE));
// key
attributeDefinitions.add(new AttributeDefinition().withAttributeName(sortKeyName).withAttributeType(sortKeyType));
}
// Provide initial provisioned throughput values as Java long data
// types
ProvisionedThroughput provisionedthroughput = new ProvisionedThroughput().withReadCapacityUnits(readCapacityUnits).withWriteCapacityUnits(writeCapacityUnits);
CreateTableRequest request = new CreateTableRequest().withTableName(tableName).withKeySchema(ks).withProvisionedThroughput(provisionedthroughput).withAttributeDefinitions(attributeDefinitions);
client.createTable(request);
} catch (AmazonServiceException ase) {
System.err.println("Failed to create table " + tableName + " " + ase);
}
}
Aggregations