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 2018/07/24 11:33:29 UTC
[camel] 02/04: CAMEL-12238 - Camel-AWS: Create an IAM component,
listUsers operation
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit d15d3ab61d186b255b0244bf176f6c1d9ed3d4a3
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Jul 24 13:06:08 2018 +0200
CAMEL-12238 - Camel-AWS: Create an IAM component, listUsers operation
---
.../camel/component/aws/iam/IAMOperations.java | 3 ++-
.../apache/camel/component/aws/iam/IAMProducer.java | 17 +++++++++++++++++
.../component/aws/iam/AmazonIAMClientMock.java | 9 ++++++++-
.../component/aws/iam/IAMProducerSpringTest.java | 21 ++++++++++++++++++++-
.../camel/component/aws/iam/IAMProducerTest.java | 21 +++++++++++++++++++++
.../aws/iam/IAMComponentSpringTest-context.xml | 5 +++++
6 files changed, 73 insertions(+), 3 deletions(-)
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
index da5b4ca..7559ec7 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
@@ -20,5 +20,6 @@ public enum IAMOperations {
listAccessKeys,
createUser,
- deleteUser
+ deleteUser,
+ listUsers
}
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
index 83f7998..4fcbaa0 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
@@ -23,6 +23,8 @@ import com.amazonaws.services.identitymanagement.model.CreateUserResult;
import com.amazonaws.services.identitymanagement.model.DeleteUserRequest;
import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
+import com.amazonaws.services.identitymanagement.model.ListUsersRequest;
+import com.amazonaws.services.identitymanagement.model.ListUsersResult;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -60,6 +62,9 @@ public class IAMProducer extends DefaultProducer {
case deleteUser:
deleteUser(getEndpoint().getIamClient(), exchange);
break;
+ case listUsers:
+ listUsers(getEndpoint().getIamClient(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -135,4 +140,16 @@ public class IAMProducer extends DefaultProducer {
Message message = getMessageForResponse(exchange);
message.setBody(result);
}
+
+ private void listUsers(AmazonIdentityManagement iamClient, Exchange exchange) {
+ ListUsersResult result;
+ try {
+ result = iamClient.listUsers();
+ } catch (AmazonServiceException ase) {
+ LOG.trace("List users command returned the error code {}", ase.getErrorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
}
\ No newline at end of file
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
index abe78a2..c21efdd 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.aws.iam;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
+import java.util.List;
import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.ResponseMetadata;
@@ -655,7 +656,13 @@ public class AmazonIAMClientMock extends AmazonIdentityManagementClient {
@Override
public ListUsersResult listUsers() {
- throw new UnsupportedOperationException();
+ ListUsersResult res = new ListUsersResult();
+ List<User> list = new ArrayList<>();
+ User user = new User();
+ user.setUserName("test");
+ list.add(user);
+ res.setUsers(list);
+ return res;
}
@Override
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
index d69ad43..16875b5 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
@@ -27,6 +27,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.amazonaws.services.identitymanagement.model.CreateUserResult;
import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
+import com.amazonaws.services.identitymanagement.model.ListUsersResult;
public class IAMProducerSpringTest extends CamelSpringTestSupport {
@@ -34,7 +35,7 @@ public class IAMProducerSpringTest extends CamelSpringTestSupport {
private MockEndpoint mock;
@Test
- public void mqListBrokersTest() throws Exception {
+ public void iamListAccessKeysTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:listKeys", new Processor() {
@@ -86,6 +87,24 @@ public class IAMProducerSpringTest extends CamelSpringTestSupport {
DeleteUserResult resultGet = (DeleteUserResult) exchange.getIn().getBody();
assertNotNull(resultGet);
}
+
+ @Test
+ public void iamListUsersTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ Exchange exchange = template.request("direct:listUsers", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listUsers);
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+
+ ListUsersResult resultGet = (ListUsersResult) exchange.getIn().getBody();
+ assertEquals(1, resultGet.getUsers().size());
+ assertEquals("test", resultGet.getUsers().get(0).getUserName());
+ }
@Override
protected ClassPathXmlApplicationContext createApplicationContext() {
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
index b9aa180..1041dbd 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
@@ -28,6 +28,7 @@ import org.junit.Test;
import com.amazonaws.services.identitymanagement.model.CreateUserResult;
import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
+import com.amazonaws.services.identitymanagement.model.ListUsersResult;
public class IAMProducerTest extends CamelTestSupport {
@@ -87,6 +88,24 @@ public class IAMProducerTest extends CamelTestSupport {
DeleteUserResult resultGet = (DeleteUserResult) exchange.getIn().getBody();
assertNotNull(resultGet);
}
+
+ @Test
+ public void iamListUsersTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ Exchange exchange = template.request("direct:listUsers", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listUsers);
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+
+ ListUsersResult resultGet = (ListUsersResult) exchange.getIn().getBody();
+ assertEquals(1, resultGet.getUsers().size());
+ assertEquals("test", resultGet.getUsers().get(0).getUserName());
+ }
@Override
protected JndiRegistry createRegistry() throws Exception {
@@ -110,6 +129,8 @@ public class IAMProducerTest extends CamelTestSupport {
.to("mock:result");
from("direct:deleteUser").to("aws-iam://test?iamClient=#amazonIAMClient&operation=deleteUser")
.to("mock:result");
+ from("direct:listUsers").to("aws-iam://test?iamClient=#amazonIAMClient&operation=listUsers")
+ .to("mock:result");
}
};
}
diff --git a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
index 454e936..8d3cd52 100644
--- a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
+++ b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
@@ -39,6 +39,11 @@
<to uri="aws-iam://Test?iamClient=#amazonIAMClient&operation=deleteUser"/>
<to uri="mock:result"/>
</route>
+ <route>
+ <from uri="direct:listUsers"/>
+ <to uri="aws-iam://Test?iamClient=#amazonIAMClient&operation=listUsers"/>
+ <to uri="mock:result"/>
+ </route>
</camelContext>
<bean id="amazonIAMClient" class="org.apache.camel.component.aws.iam.AmazonIAMClientMock"/>