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/18 17:36:38 UTC

[3/3] camel git commit: CAMEL-8882: Camel-AWS EC2: Add options to Run Instance command, add keyPair header

CAMEL-8882: Camel-AWS EC2: Add options to Run Instance command, add keyPair header


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/409a039e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/409a039e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/409a039e

Branch: refs/heads/master
Commit: 409a039e3cf886b4e2005f5d691367582aaaf5f3
Parents: fc38b2e
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Jun 18 10:15:33 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Jun 18 17:33:22 2015 +0200

----------------------------------------------------------------------
 .../camel/component/aws/ec2/EC2Constants.java   |  1 +
 .../camel/component/aws/ec2/EC2Producer.java    |  5 +++
 .../component/aws/ec2/AmazonEC2ClientMock.java  | 39 ++++++++++++++------
 .../aws/ec2/EC2ComponentSpringTest.java         | 24 ++++++++++++
 .../component/aws/ec2/EC2ProducerTest.java      | 27 ++++++++++++++
 5 files changed, 85 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/409a039e/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Constants.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Constants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Constants.java
index 611e513..c0e95dc 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Constants.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ec2/EC2Constants.java
@@ -32,4 +32,5 @@ public interface EC2Constants {
     String INSTANCE_EBS_OPTIMIZED   = "CamelAwsEC2InstanceEbsOptimized";
     String INSTANCE_SECURITY_GROUPS = "CamelAwsEC2InstanceSecurityGroups";
     String INSTANCES_IDS            = "CamelAwsEC2InstancesIds";
+    String INSTANCES_KEY_PAIR       = "CamelAwsEC2InstancesKeyPair";
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/409a039e/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 fd11c68..dff573d 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
@@ -124,6 +124,7 @@ public class EC2Producer extends DefaultProducer {
         String kernelId;
         boolean ebsOptimized;
         Collection securityGroups;
+        String keyName;
         RunInstancesRequest request = new RunInstancesRequest();
         if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EC2Constants.IMAGE_ID))) {
             ami = exchange.getIn().getHeader(EC2Constants.IMAGE_ID, String.class);
@@ -165,6 +166,10 @@ public class EC2Producer extends DefaultProducer {
             securityGroups = exchange.getIn().getHeader(EC2Constants.INSTANCE_SECURITY_GROUPS, Collection.class);
             request.withSecurityGroups(securityGroups);
         }
+        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EC2Constants.INSTANCES_KEY_PAIR))) {
+            keyName = exchange.getIn().getHeader(EC2Constants.INSTANCES_KEY_PAIR, String.class);
+            request.withKeyName(keyName);
+        }
         RunInstancesResult result;
         try {
             result = ec2Client.runInstances(request);

http://git-wip-us.apache.org/repos/asf/camel/blob/409a039e/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 b714ebe..80572c1 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
@@ -52,6 +52,8 @@ import com.amazonaws.services.ec2.model.TerminateInstancesResult;
 import com.amazonaws.services.ec2.model.UnmonitorInstancesRequest;
 import com.amazonaws.services.ec2.model.UnmonitorInstancesResult;
 
+import org.apache.camel.util.ObjectHelper;
+
 public class AmazonEC2ClientMock extends AmazonEC2Client {
 
     public AmazonEC2ClientMock() {
@@ -71,17 +73,32 @@ public class AmazonEC2ClientMock extends AmazonEC2Client {
             ins.setImageId(runInstancesRequest.getImageId());
             ins.setInstanceType(runInstancesRequest.getInstanceType());
             ins.setInstanceId("instance-1");
-            if (runInstancesRequest.getSecurityGroups().contains("secgroup-1") && runInstancesRequest.getSecurityGroups().contains("secgroup-2")) {
-                GroupIdentifier id1 = new GroupIdentifier();
-                id1.setGroupId("id-1");
-                id1.setGroupName("secgroup-1");
-                GroupIdentifier id2 = new GroupIdentifier();
-                id2.setGroupId("id-2");
-                id2.setGroupName("secgroup-2");
-                Collection secGroups = new ArrayList<GroupIdentifier>();
-                secGroups.add(id1);
-                secGroups.add(id2);
-                ins.setSecurityGroups(secGroups);
+            if (ObjectHelper.isNotEmpty(runInstancesRequest.getSecurityGroups()) && ObjectHelper.isNotEmpty(runInstancesRequest.getSecurityGroups())) {
+                if (runInstancesRequest.getSecurityGroups().contains("secgroup-1") && runInstancesRequest.getSecurityGroups().contains("secgroup-2")) {
+                    GroupIdentifier id1 = new GroupIdentifier();
+                    id1.setGroupId("id-1");
+                    id1.setGroupName("secgroup-1");
+                    GroupIdentifier id2 = new GroupIdentifier();
+                    id2.setGroupId("id-2");
+                    id2.setGroupName("secgroup-2");
+                    Collection secGroups = new ArrayList<GroupIdentifier>();
+                    secGroups.add(id1);
+                    secGroups.add(id2);
+                    ins.setSecurityGroups(secGroups);
+                } else if (ObjectHelper.isNotEmpty(runInstancesRequest.getKeyName())) {
+                    if (ObjectHelper.isNotEmpty(runInstancesRequest.getKeyName().contains("keypair-1"))) {
+                        GroupIdentifier id1 = new GroupIdentifier();
+                        id1.setGroupId("id-3");
+                        id1.setGroupName("secgroup-3");
+                        GroupIdentifier id2 = new GroupIdentifier();
+                        id2.setGroupId("id-4");
+                        id2.setGroupName("secgroup-4");
+                        Collection secGroups = new ArrayList<GroupIdentifier>();
+                        secGroups.add(id1);
+                        secGroups.add(id2);
+                        ins.setSecurityGroups(secGroups);
+                    }
+                }
             }
             instances.add(ins);
             res.setInstances(instances);

http://git-wip-us.apache.org/repos/asf/camel/blob/409a039e/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 5457a9c..849bf2d 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
@@ -71,6 +71,30 @@ public class EC2ComponentSpringTest extends CamelSpringTestSupport {
     }
     
     @Test
+    public void ec2CreateAndRunTestWithKeyPair() throws Exception {
+
+        Exchange exchange = template.request("direct:createAndRun", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EC2Constants.OPERATION, EC2Operations.createAndRunInstances);
+                exchange.getIn().setHeader(EC2Constants.IMAGE_ID, "test-1");
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_TYPE, InstanceType.T2Micro);
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_MIN_COUNT, 1);
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_MAX_COUNT, 1);
+                exchange.getIn().setHeader(EC2Constants.INSTANCES_KEY_PAIR, "keypair-1");
+            }
+        });
+        
+        RunInstancesResult resultGet = (RunInstancesResult) exchange.getIn().getBody();
+        assertEquals(resultGet.getReservation().getInstances().get(0).getImageId(), "test-1");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getInstanceType(), InstanceType.T2Micro.toString());
+        assertEquals(resultGet.getReservation().getInstances().get(0).getInstanceId(), "instance-1");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().size(), 2);
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().get(0).getGroupId(), "id-3");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().get(1).getGroupId(), "id-4");
+    }
+    
+    @Test
     public void startInstances() {
         
         Exchange exchange = template.request("direct:start", new Processor() {

http://git-wip-us.apache.org/repos/asf/camel/blob/409a039e/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 4c48191..2e53781 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
@@ -99,6 +99,33 @@ public class EC2ProducerTest extends CamelTestSupport {
     }
     
     @Test
+    public void ec2CreateAndRunTestWithKeyPair() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:createAndRun", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EC2Constants.OPERATION, EC2Operations.createAndRunInstances);
+                exchange.getIn().setHeader(EC2Constants.IMAGE_ID, "test-1");
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_TYPE, InstanceType.T2Micro);
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_MIN_COUNT, 1);
+                exchange.getIn().setHeader(EC2Constants.INSTANCE_MAX_COUNT, 1);
+                exchange.getIn().setHeader(EC2Constants.INSTANCES_KEY_PAIR, "keypair-1");
+            }
+        });
+        
+        assertMockEndpointsSatisfied();
+        
+        RunInstancesResult resultGet = (RunInstancesResult) exchange.getIn().getBody();
+        assertEquals(resultGet.getReservation().getInstances().get(0).getImageId(), "test-1");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getInstanceType(), InstanceType.T2Micro.toString());
+        assertEquals(resultGet.getReservation().getInstances().get(0).getInstanceId(), "instance-1");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().size(), 2);
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().get(0).getGroupId(), "id-3");
+        assertEquals(resultGet.getReservation().getInstances().get(0).getSecurityGroups().get(1).getGroupId(), "id-4");
+    }
+    
+    @Test
     public void ec2CreateAndRunKoTest() throws Exception {
 
         mock.expectedMessageCount(0);