use of com.amazonaws.services.dynamodbv2.AmazonDynamoDB in project athenz by yahoo.
the class DynamoDBClientFetcherImplTest method testGetClientWitSpecifiedRegion.
@Test
public void testGetClientWitSpecifiedRegion() {
System.setProperty(ZTS_PROP_DYNAMODB_REGION, "test.region");
DynamoDBClientFetcher dynamoDBClientFetcher = DynamoDBClientFetcherFactory.getDynamoDBClientFetcher();
PrivateKeyStore keyStore = Mockito.mock(PrivateKeyStore.class);
ZTSClientNotificationSender ztsClientNotificationSender = Mockito.mock(ZTSClientNotificationSender.class);
AmazonDynamoDB dynamoDBClient = dynamoDBClientFetcher.getDynamoDBClient(ztsClientNotificationSender, keyStore).getAmazonDynamoDB();
assertNotNull(dynamoDBClient);
System.clearProperty(ZTS_PROP_DYNAMODB_REGION);
}
use of com.amazonaws.services.dynamodbv2.AmazonDynamoDB in project athenz by yahoo.
the class DynamoDBCertRecordStoreFactory method create.
@Override
public CertRecordStore create(PrivateKeyStore keyStore) {
final String tableName = System.getProperty(ZTSConsts.ZTS_PROP_CERT_DYNAMODB_TABLE_NAME);
if (tableName == null || tableName.isEmpty()) {
LOGGER.error("Cert Store DynamoDB table name not specified");
throw new ResourceException(ResourceException.SERVICE_UNAVAILABLE, "DynamoDB table name not specified");
}
final String currentTimeIndexName = System.getProperty(ZTSConsts.ZTS_PROP_CERT_DYNAMODB_INDEX_CURRENT_TIME_NAME);
if (currentTimeIndexName == null || currentTimeIndexName.isEmpty()) {
LOGGER.error("Cert Store DynamoDB index current-time not specified");
throw new ResourceException(ResourceException.SERVICE_UNAVAILABLE, "DynamoDB index current-time not specified");
}
final String hostNameIndex = System.getProperty(ZTSConsts.ZTS_PROP_CERT_DYNAMODB_INDEX_HOST_NAME);
if (hostNameIndex == null || hostNameIndex.isEmpty()) {
LOGGER.error("Cert Store DynamoDB index host-name not specified");
throw new ResourceException(ResourceException.SERVICE_UNAVAILABLE, "DynamoDB index host-name not specified");
}
ZTSClientNotificationSenderImpl ztsClientNotificationSender = new ZTSClientNotificationSenderImpl();
AmazonDynamoDB client = getDynamoDBClient(ztsClientNotificationSender, keyStore);
return new DynamoDBCertRecordStore(client, tableName, currentTimeIndexName, hostNameIndex, ztsClientNotificationSender);
}
use of com.amazonaws.services.dynamodbv2.AmazonDynamoDB in project athenz by yahoo.
the class DynamoDBClientFetcherImpl method getDynamoDBClient.
@Override
public DynamoDBClientAndCredentials getDynamoDBClient(ZTSClientNotificationSender ztsClientNotificationSender, PrivateKeyStore keyStore) {
// if we're given key/cert path settings then
// we'll deal with aws temporary credentials otherwise
// we'll assume we're running in aws thus our ec2 already
// has credentials to access dynamodb
DynamoDBClientSettings dynamoDBClientSettings = new DynamoDBClientSettings(keyStore);
if (dynamoDBClientSettings.areCredentialsProvided()) {
LOGGER.info("DynamoDB Client will use temporary AWS credentials");
return getAuthenticatedDynamoDBClient(dynamoDBClientSettings, ztsClientNotificationSender);
} else {
LOGGER.info("DynamoDB client will use existing AWS authentication");
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().withRegion(getAWSRegion(dynamoDBClientSettings.getRegion())).build();
return new DynamoDBClientAndCredentials(client, null);
}
}
use of com.amazonaws.services.dynamodbv2.AmazonDynamoDB in project athenz by yahoo.
the class DynamoDBSSHRecordStoreFactory method create.
@Override
public SSHRecordStore create(PrivateKeyStore keyStore) {
final String tableName = System.getProperty(ZTSConsts.ZTS_PROP_SSH_DYNAMODB_TABLE_NAME);
if (tableName == null || tableName.isEmpty()) {
LOGGER.error("SSH Store DynamoDB table name not specified");
throw new ResourceException(ResourceException.SERVICE_UNAVAILABLE, "DynamoDB ssh table name not specified");
}
ZTSClientNotificationSenderImpl ztsClientNotificationSender = new ZTSClientNotificationSenderImpl();
AmazonDynamoDB client = getDynamoDBClient(ztsClientNotificationSender, keyStore);
return new DynamoDBSSHRecordStore(client, tableName, ztsClientNotificationSender);
}
use of com.amazonaws.services.dynamodbv2.AmazonDynamoDB in project athenz by yahoo.
the class DynamoDBWorkloadRecordStoreFactoryTest method testGetDynamoDBClient.
@Test
public void testGetDynamoDBClient() {
System.setProperty(ZTS_PROP_DYNAMODB_KEY_PATH, "test.keypath");
System.setProperty(ZTS_PROP_DYNAMODB_CERT_PATH, "test.certpath");
System.setProperty(ZTS_PROP_DYNAMODB_DOMAIN, "test.domain");
System.setProperty(ZTS_PROP_DYNAMODB_REGION, "test.region");
System.setProperty(ZTS_PROP_DYNAMODB_ROLE, "test.role");
System.setProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE, "test.truststore");
System.setProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE_PASSWORD, "test.truststore.password");
System.setProperty(ZTS_PROP_DYNAMODB_ZTS_URL, "test.ztsurl");
System.setProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE_APPNAME, "test.appname");
PrivateKeyStore keyStore = Mockito.mock(PrivateKeyStore.class);
when(keyStore.getApplicationSecret(Mockito.eq("test.appname"), Mockito.eq("test.truststore.password"))).thenReturn("decryptedPassword");
DynamoDBWorkloadRecordStoreFactory factory = new DynamoDBWorkloadRecordStoreFactory();
ZTSClientNotificationSenderImpl ztsClientNotificationSender = Mockito.mock(ZTSClientNotificationSenderImpl.class);
PrivateKeyStore privateKeyStore = Mockito.mock(PrivateKeyStore.class);
AmazonDynamoDB dynamoDBClient = factory.getDynamoDBClient(ztsClientNotificationSender, privateKeyStore);
Assert.assertNotNull(dynamoDBClient);
System.clearProperty(ZTS_PROP_DYNAMODB_KEY_PATH);
System.clearProperty(ZTS_PROP_DYNAMODB_CERT_PATH);
System.clearProperty(ZTS_PROP_DYNAMODB_DOMAIN);
System.clearProperty(ZTS_PROP_DYNAMODB_REGION);
System.clearProperty(ZTS_PROP_DYNAMODB_ROLE);
System.clearProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE);
System.clearProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE_PASSWORD);
System.clearProperty(ZTS_PROP_DYNAMODB_ZTS_URL);
System.clearProperty(ZTS_PROP_DYNAMODB_TRUSTSTORE_APPNAME);
}
Aggregations