Removing internal references
This commit is contained in:
parent
f7d286ac2e
commit
d191401c18
2 changed files with 3 additions and 136 deletions
|
|
@ -26,7 +26,6 @@ import software.amazon.kinesis.common.ConfigsBuilder;
|
||||||
import software.amazon.kinesis.common.InitialPositionInStream;
|
import software.amazon.kinesis.common.InitialPositionInStream;
|
||||||
import software.amazon.kinesis.processor.ShardRecordProcessorFactory;
|
import software.amazon.kinesis.processor.ShardRecordProcessorFactory;
|
||||||
import software.amazon.kinesis.retrieval.RetrievalConfig;
|
import software.amazon.kinesis.retrieval.RetrievalConfig;
|
||||||
import software.amazon.kinesis.utils.OdinCredentialsHelper;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.Inet4Address;
|
import java.net.Inet4Address;
|
||||||
|
|
@ -67,18 +66,6 @@ public interface KCLAppConfig {
|
||||||
// "default" profile, should match with profiles listed in "cat ~/.aws/config"
|
// "default" profile, should match with profiles listed in "cat ~/.aws/config"
|
||||||
String getProfile();
|
String getProfile();
|
||||||
|
|
||||||
default String odinMaterialName() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
default AWSCredentialsProvider getSyncAwsCredentials() throws IOException {
|
|
||||||
return OdinCredentialsHelper.getSyncAwsCredentialsFromMaterialSet( odinMaterialName() );
|
|
||||||
}
|
|
||||||
|
|
||||||
default AwsCredentialsProvider getAsyncAwsCredentials() throws IOException {
|
|
||||||
return OdinCredentialsHelper.getAsyncAwsCredentialsFromMaterialSet( odinMaterialName() );
|
|
||||||
}
|
|
||||||
|
|
||||||
// '-1' means round robin across 0, 5_000, 15_000, 30_000 milliseconds delay.
|
// '-1' means round robin across 0, 5_000, 15_000, 30_000 milliseconds delay.
|
||||||
// The delay period is picked according to current time, so expected to be unpredictable across different KCL runs.
|
// The delay period is picked according to current time, so expected to be unpredictable across different KCL runs.
|
||||||
// '0' means PassThroughRecordProcessor
|
// '0' means PassThroughRecordProcessor
|
||||||
|
|
@ -136,9 +123,7 @@ public interface KCLAppConfig {
|
||||||
kinesisAsyncClientBuilder.httpClient( sdkAsyncHttpClient );
|
kinesisAsyncClientBuilder.httpClient( sdkAsyncHttpClient );
|
||||||
|
|
||||||
|
|
||||||
if ( getAsyncAwsCredentials() != null ) {
|
if ( getProfile() != null ) {
|
||||||
kinesisAsyncClientBuilder.credentialsProvider( getAsyncAwsCredentials() );
|
|
||||||
} else if ( getProfile() != null ) {
|
|
||||||
kinesisAsyncClientBuilder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
kinesisAsyncClientBuilder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
||||||
} else {
|
} else {
|
||||||
kinesisAsyncClientBuilder.credentialsProvider( DefaultCredentialsProvider.create() );
|
kinesisAsyncClientBuilder.credentialsProvider( DefaultCredentialsProvider.create() );
|
||||||
|
|
@ -150,9 +135,7 @@ public interface KCLAppConfig {
|
||||||
default DynamoDbAsyncClient buildAsyncDynamoDbClient() throws IOException {
|
default DynamoDbAsyncClient buildAsyncDynamoDbClient() throws IOException {
|
||||||
final DynamoDbAsyncClientBuilder builder = DynamoDbAsyncClient.builder().region( getRegion() );
|
final DynamoDbAsyncClientBuilder builder = DynamoDbAsyncClient.builder().region( getRegion() );
|
||||||
|
|
||||||
if ( getAsyncAwsCredentials() != null ) {
|
if ( getProfile() != null ) {
|
||||||
builder.credentialsProvider( getAsyncAwsCredentials() );
|
|
||||||
} else if ( getProfile() != null ) {
|
|
||||||
builder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
builder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
||||||
} else {
|
} else {
|
||||||
builder.credentialsProvider( DefaultCredentialsProvider.create() );
|
builder.credentialsProvider( DefaultCredentialsProvider.create() );
|
||||||
|
|
@ -164,9 +147,7 @@ public interface KCLAppConfig {
|
||||||
default CloudWatchAsyncClient buildAsyncCloudWatchClient() throws IOException {
|
default CloudWatchAsyncClient buildAsyncCloudWatchClient() throws IOException {
|
||||||
final CloudWatchAsyncClientBuilder builder = CloudWatchAsyncClient.builder().region( getRegion() );
|
final CloudWatchAsyncClientBuilder builder = CloudWatchAsyncClient.builder().region( getRegion() );
|
||||||
|
|
||||||
if ( getAsyncAwsCredentials() != null ) {
|
if ( getProfile() != null ) {
|
||||||
builder.credentialsProvider( getAsyncAwsCredentials() );
|
|
||||||
} else if ( getProfile() != null ) {
|
|
||||||
builder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
builder.credentialsProvider( ProfileCredentialsProvider.builder().profileName( getProfile() ).build() );
|
||||||
} else {
|
} else {
|
||||||
builder.credentialsProvider( DefaultCredentialsProvider.create() );
|
builder.credentialsProvider( DefaultCredentialsProvider.create() );
|
||||||
|
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
package software.amazon.kinesis.utils;
|
|
||||||
|
|
||||||
import com.amazonaws.auth.AWSCredentials;
|
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
|
||||||
import com.google.common.io.CharStreams;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentials;
|
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper class to hold odin credentials because odin is not available externally and this package doesn't use brazil.
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
public class OdinCredentialsHelper {
|
|
||||||
|
|
||||||
private final static String PRINCIPAL = "Principal";
|
|
||||||
private final static String CREDENTIAL = "Credential";
|
|
||||||
private final static String ODIN_COMMAND = "/apollo/env/envImprovement/bin/odin-get -t";
|
|
||||||
|
|
||||||
private static String getMaterial(String materialName, String materialType) throws IOException {
|
|
||||||
final InputStream inputStream = Runtime.getRuntime().exec(String.format("%s %s %s", ODIN_COMMAND, materialType, materialName)).getInputStream();
|
|
||||||
return CharStreams.toString(new InputStreamReader(inputStream, StandardCharsets.UTF_8)).trim();
|
|
||||||
}
|
|
||||||
private static String getPrincipal(String materialName) throws IOException {
|
|
||||||
return getMaterial(materialName, PRINCIPAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String getCredential(String materialName) throws IOException {
|
|
||||||
return getMaterial(materialName, CREDENTIAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method to pull credentials from odin for testing for AWS SDK sync clients (1.x).
|
|
||||||
*
|
|
||||||
* @param materialName name of the material set to fetch.
|
|
||||||
* @return access/secret key pair from Odin if specified for testing.
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public static AWSCredentialsProvider getSyncAwsCredentialsFromMaterialSet(String materialName) throws IOException {
|
|
||||||
if (materialName == null) {
|
|
||||||
log.debug("No material name found.");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.debug("Fetching credentials for material - {}.", materialName);
|
|
||||||
|
|
||||||
final String principal = getPrincipal(materialName);
|
|
||||||
final String credential = getCredential(materialName);
|
|
||||||
|
|
||||||
final AWSCredentialsProvider awsCredentialsProvider = new AWSCredentialsProvider() {
|
|
||||||
@Override
|
|
||||||
public AWSCredentials getCredentials() {
|
|
||||||
return new AWSCredentials() {
|
|
||||||
@Override
|
|
||||||
public String getAWSAccessKeyId() {
|
|
||||||
return principal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getAWSSecretKey() {
|
|
||||||
return credential;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void refresh() {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
log.debug("Successfully retrieved credentials from odin. Access key - {}.", principal);
|
|
||||||
|
|
||||||
return awsCredentialsProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method to pull credentials from odin for testing for AWS SDK async clients (2.x).
|
|
||||||
*
|
|
||||||
* @param materialName name of the material set to fetch.
|
|
||||||
* @return access/secret key pair from Odin if specified for testing.
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public static AwsCredentialsProvider getAsyncAwsCredentialsFromMaterialSet(String materialName) throws IOException {
|
|
||||||
if (materialName == null) {
|
|
||||||
log.debug("No material name found.");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.debug("Fetching credentials for material - {}.", materialName);
|
|
||||||
|
|
||||||
final String principal = getPrincipal(materialName);
|
|
||||||
final String credential = getCredential(materialName);
|
|
||||||
|
|
||||||
final AwsCredentialsProvider awsCredentialsProvider = () -> new AwsCredentials() {
|
|
||||||
@Override
|
|
||||||
public String accessKeyId() {
|
|
||||||
return principal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String secretAccessKey() {
|
|
||||||
return credential;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
log.debug("Successfully retrieved credentials from odin. Access key - {}.", principal);
|
|
||||||
|
|
||||||
return awsCredentialsProvider;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue