You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2015/06/09 17:13:54 UTC
[2/2] camel git commit: CAMEL-8850 Camel-AWS EC2: Add rebootInstances
operation
CAMEL-8850 Camel-AWS EC2: Add rebootInstances operation
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/dc6f78aa
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/dc6f78aa
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/dc6f78aa
Branch: refs/heads/master
Commit: dc6f78aacf68738ab77565e296083cdea9b07b57
Parents: 054815f
Author: Andrea Cosentino <an...@gmail.com>
Authored: Tue Jun 9 14:24:19 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue Jun 9 17:11:42 2015 +0200
----------------------------------------------------------------------
.../camel/component/aws/ec2/EC2Operations.java | 3 ++-
.../camel/component/aws/ec2/EC2Producer.java | 22 ++++++++++++++++++++
.../component/aws/ec2/AmazonEC2ClientMock.java | 6 ++++++
.../aws/ec2/EC2ComponentSpringTest.java | 15 +++++++++++++
.../component/aws/ec2/EC2OperationsTest.java | 4 +++-
.../component/aws/ec2/EC2ProducerTest.java | 20 ++++++++++++++++++
.../aws/ec2/EC2ComponentSpringTest-context.xml | 4 ++++
7 files changed, 72 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Operations.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Operations.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Operations.java
index 8a25692..e602f7a 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Operations.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Operations.java
@@ -23,5 +23,6 @@ public enum EC2Operations {
stopInstances,
terminateInstances,
describeInstances,
- describeInstancesStatus
+ describeInstancesStatus,
+ rebootInstances
}
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Producer.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Producer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Producer.java
index e2edacd..0169d53 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Producer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Producer.java
@@ -25,6 +25,7 @@ import com.amazonaws.services.ec2.model.DescribeInstanceStatusResult;
import com.amazonaws.services.ec2.model.DescribeInstancesRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesResult;
import com.amazonaws.services.ec2.model.InstanceType;
+import com.amazonaws.services.ec2.model.RebootInstancesRequest;
import com.amazonaws.services.ec2.model.RunInstancesRequest;
import com.amazonaws.services.ec2.model.RunInstancesResult;
import com.amazonaws.services.ec2.model.StartInstancesRequest;
@@ -33,6 +34,7 @@ import com.amazonaws.services.ec2.model.StopInstancesRequest;
import com.amazonaws.services.ec2.model.StopInstancesResult;
import com.amazonaws.services.ec2.model.TerminateInstancesRequest;
import com.amazonaws.services.ec2.model.TerminateInstancesResult;
+import com.amazonaws.services.opsworks.model.RebootInstanceRequest;
import com.amazonaws.services.opsworks.model.StartInstanceRequest;
import org.apache.camel.Endpoint;
@@ -75,6 +77,9 @@ public class EC2Producer extends DefaultProducer {
case describeInstancesStatus:
describeInstancesStatus(getEndpoint().getEc2Client(), exchange);
break;
+ case rebootInstances:
+ rebootInstances(getEndpoint().getEc2Client(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -252,4 +257,21 @@ public class EC2Producer extends DefaultProducer {
}
exchange.getIn().setBody(result);
}
+
+ private void rebootInstances(AmazonEC2Client ec2Client, Exchange exchange) {
+ Collection instanceIds;
+ RebootInstancesRequest request = new RebootInstancesRequest();
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EC2Constants.INSTANCES_IDS))) {
+ instanceIds = exchange.getIn().getHeader(EC2Constants.INSTANCES_IDS, Collection.class);
+ request.withInstanceIds(instanceIds);
+ } else {
+ throw new IllegalArgumentException("Instances Ids must be specified");
+ }
+ try {
+ ec2Client.rebootInstances(request);
+ } catch (AmazonServiceException ase) {
+ LOG.trace("Describe Instances Status command returned the error code {}", ase.getErrorCode());
+ throw ase;
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/AmazonEC2ClientMock.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/AmazonEC2ClientMock.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/AmazonEC2ClientMock.java
index a5bf479..60c87f9 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/AmazonEC2ClientMock.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/AmazonEC2ClientMock.java
@@ -33,6 +33,7 @@ import com.amazonaws.services.ec2.model.InstanceStateChange;
import com.amazonaws.services.ec2.model.InstanceStateName;
import com.amazonaws.services.ec2.model.InstanceStatus;
import com.amazonaws.services.ec2.model.InstanceType;
+import com.amazonaws.services.ec2.model.RebootInstancesRequest;
import com.amazonaws.services.ec2.model.Reservation;
import com.amazonaws.services.ec2.model.RunInstancesRequest;
import com.amazonaws.services.ec2.model.RunInstancesResult;
@@ -226,4 +227,9 @@ public class AmazonEC2ClientMock extends AmazonEC2Client {
result.setInstanceStatuses(instanceStatuses);
return result;
}
+
+ @Override
+ public void rebootInstances(RebootInstancesRequest rebootInstancesRequest) {
+ return;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest.java
index c9fe401..7ac631b 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest.java
@@ -168,6 +168,21 @@ public class EC2ComponentSpringTest extends CamelSpringTestSupport {
assertEquals(resultGet.getInstanceStatuses().get(0).getInstanceState().getName(), InstanceStateName.Running.toString());
}
+ @Test
+ public void ec2RebootInstancesTest() throws Exception {
+
+ Exchange exchange = template.request("direct:reboot", new Processor() {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Collection l = new ArrayList();
+ l.add("test-1");
+ exchange.getIn().setHeader(EC2Constants.INSTANCES_IDS, l);
+ }
+ });
+
+ }
+
@Override
protected AbstractApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext(
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2OperationsTest.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2OperationsTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2OperationsTest.java
index 920b84b..7bb7de5 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2OperationsTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2OperationsTest.java
@@ -24,7 +24,7 @@ public class EC2OperationsTest {
@Test
public void supportedOperationCount() {
- assertEquals(6, EC2Operations.values().length);
+ assertEquals(7, EC2Operations.values().length);
}
@Test
@@ -35,6 +35,7 @@ public class EC2OperationsTest {
assertEquals(EC2Operations.terminateInstances, EC2Operations.valueOf("terminateInstances"));
assertEquals(EC2Operations.describeInstances, EC2Operations.valueOf("describeInstances"));
assertEquals(EC2Operations.describeInstancesStatus, EC2Operations.valueOf("describeInstancesStatus"));
+ assertEquals(EC2Operations.rebootInstances, EC2Operations.valueOf("rebootInstances"));
}
@Test
@@ -45,5 +46,6 @@ public class EC2OperationsTest {
assertEquals(EC2Operations.terminateInstances.toString(), "terminateInstances");
assertEquals(EC2Operations.describeInstances.toString(), "describeInstances");
assertEquals(EC2Operations.describeInstancesStatus.toString(), "describeInstancesStatus");
+ assertEquals(EC2Operations.rebootInstances.toString(), "rebootInstances");
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ProducerTest.java
index 32c724b..8157071 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ProducerTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ec2/EC2ProducerTest.java
@@ -258,6 +258,23 @@ public class EC2ProducerTest extends CamelTestSupport {
assertEquals(resultGet.getInstanceStatuses().get(0).getInstanceState().getName(), InstanceStateName.Running.toString());
}
+ @Test
+ public void ec2RebootInstancesTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ Exchange exchange = template.request("direct:reboot", new Processor() {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Collection l = new ArrayList();
+ l.add("test-1");
+ exchange.getIn().setHeader(EC2Constants.INSTANCES_IDS, l);
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+ }
+
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
@@ -292,6 +309,9 @@ public class EC2ProducerTest extends CamelTestSupport {
from("direct:describeStatus")
.to("aws-ec2://test?amazonEc2Client=#amazonEc2Client&operation=describeInstancesStatus")
.to("mock:result");
+ from("direct:reboot")
+ .to("aws-ec2://test?amazonEc2Client=#amazonEc2Client&operation=rebootInstances")
+ .to("mock:result");
}
};
}
http://git-wip-us.apache.org/repos/asf/camel/blob/dc6f78aa/components/camel-aws/src/test/resources/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest-context.xml
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest-context.xml b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest-context.xml
index 6600925..1282e3d 100644
--- a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest-context.xml
+++ b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/ec2/EC2ComponentSpringTest-context.xml
@@ -45,6 +45,10 @@
<from uri="direct:describeStatus"/>
<to uri="aws-ec2://Test?amazonEc2Client=#amazonEc2Client&operation=describeInstancesStatus"/>
</route>
+ <route>
+ <from uri="direct:reboot"/>
+ <to uri="aws-ec2://Test?amazonEc2Client=#amazonEc2Client&operation=rebootInstances"/>
+ </route>
</camelContext>
<bean id="amazonEc2Client" class="org.apache.camel.component.aws.ec2.AmazonEC2ClientMock"/>