diff --git a/src/main/java/com/netflix/simianarmy/aws/AWSClient.java b/src/main/java/com/netflix/simianarmy/aws/AWSClient.java index 8825a900..70d38d0f 100644 --- a/src/main/java/com/netflix/simianarmy/aws/AWSClient.java +++ b/src/main/java/com/netflix/simianarmy/aws/AWSClient.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.LinkedList; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.netflix.simianarmy.CloudClient; import com.amazonaws.services.ec2.AmazonEC2; @@ -49,6 +50,14 @@ public AWSClient(AWSCredentials cred, String region) { this.region = region; } + /** + * This constructor will use the {@link DefaultAWSCredentialsProviderChain} to obtain credentials. + * @param region + */ + public AWSClient(String region){ + this(new DefaultAWSCredentialsProviderChain().getCredentials(), region); + } + protected AmazonEC2 ec2Client() { AmazonEC2 client = new AmazonEC2Client(cred); client.setEndpoint("ec2." + region + ".amazonaws.com"); diff --git a/src/main/java/com/netflix/simianarmy/aws/SimpleDBRecorder.java b/src/main/java/com/netflix/simianarmy/aws/SimpleDBRecorder.java index 0b5044f1..a58edcf7 100644 --- a/src/main/java/com/netflix/simianarmy/aws/SimpleDBRecorder.java +++ b/src/main/java/com/netflix/simianarmy/aws/SimpleDBRecorder.java @@ -30,6 +30,7 @@ import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.services.simpledb.AmazonSimpleDB; import com.amazonaws.services.simpledb.AmazonSimpleDBClient; import com.amazonaws.services.simpledb.model.PutAttributesRequest; @@ -73,8 +74,18 @@ public SimpleDBRecorder(AWSCredentials cred, String region, String domain) { this.domain = domain; } + /** + * Use {@link DefaultAWSCredentialsProviderChain} to provide credentials. + * @param region + * @param domain + */ + public SimpleDBRecorder(String region, String domain) { + this(new DefaultAWSCredentialsProviderChain().getCredentials(), region, domain); + } + protected AmazonSimpleDB sdbClient() { AmazonSimpleDB client = new AmazonSimpleDBClient(cred); + client.setEndpoint("sdb." + region + ".amazonaws.com"); return client; } @@ -111,6 +122,8 @@ public void recordEvent(Event evt) { List attrs = new LinkedList(); attrs.add(new ReplaceableAttribute(Keys.id.name(), evt.id(), true)); attrs.add(new ReplaceableAttribute(Keys.eventTime.name(), String.valueOf(evt.eventTime().getTime()), true)); + //TODO I think region is overloaded here, probably need to distinguish between the region being changed + //and where the data is being stored. attrs.add(new ReplaceableAttribute(Keys.region.name(), region, true)); attrs.add(new ReplaceableAttribute(Keys.recordType.name(), "MonkeyEvent", true)); attrs.add(new ReplaceableAttribute(Keys.monkeyType.name(), enumToValue(evt.monkeyType()), true)); diff --git a/src/test/java/com/netflix/simianarmy/resources/chaos/TestChaosMonkeyResource.java b/src/test/java/com/netflix/simianarmy/resources/chaos/TestChaosMonkeyResource.java index b605ca52..d43f03c8 100644 --- a/src/test/java/com/netflix/simianarmy/resources/chaos/TestChaosMonkeyResource.java +++ b/src/test/java/com/netflix/simianarmy/resources/chaos/TestChaosMonkeyResource.java @@ -74,7 +74,7 @@ public void init() { } @Test - public void testServlet() { + public void testResource() { MonkeyRunner.getInstance().replaceMonkey(BasicChaosMonkey.class, MockTestChaosMonkeyContext.class); ChaosMonkeyResource resource = new ChaosMonkeyResource();