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 2017/05/30 09:04:59 UTC
[10/12] camel git commit: CAMEL-11356: Camel-Kubernetes: refactoring
tests by using Kubernetes-server-mock and Openshift-server-mock - Service
Accounts tests
CAMEL-11356: Camel-Kubernetes: refactoring tests by using Kubernetes-server-mock and Openshift-server-mock - Service Accounts tests
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e4c6edb3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e4c6edb3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e4c6edb3
Branch: refs/heads/master
Commit: e4c6edb308c62b798ffa7d74df706353acf86be1
Parents: ffdfcad
Author: Andrea Cosentino <an...@gmail.com>
Authored: Tue May 30 09:46:53 2017 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue May 30 11:01:11 2017 +0200
----------------------------------------------------------------------
.../KubernetesServiceAccountsProducer.java | 9 +-
...edKubernetesServiceAccountsProducerTest.java | 2 +
.../KubernetesServiceAccountsProducerTest.java | 115 ++++++-------------
3 files changed, 40 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/e4c6edb3/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
index acecca8..aedbc4d 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
@@ -21,6 +21,9 @@ import java.util.Map;
import io.fabric8.kubernetes.api.model.DoneableServiceAccount;
import io.fabric8.kubernetes.api.model.ServiceAccount;
import io.fabric8.kubernetes.api.model.ServiceAccountList;
+import io.fabric8.kubernetes.client.Watch;
+import io.fabric8.kubernetes.client.Watcher;
+import io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable;
import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
@@ -91,7 +94,7 @@ public class KubernetesServiceAccountsProducer extends DefaultProducer {
}
protected void doList(Exchange exchange, String operation) throws Exception {
- ServiceAccountList saList = getEndpoint().getKubernetesClient().serviceAccounts()
+ ServiceAccountList saList = getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace()
.list();
exchange.getOut().setBody(saList.getItems());
}
@@ -112,8 +115,8 @@ public class KubernetesServiceAccountsProducer extends DefaultProducer {
}
saList = serviceAccounts.list();
} else {
- MixedOperation<ServiceAccount, ServiceAccountList, DoneableServiceAccount, Resource<ServiceAccount, DoneableServiceAccount>> serviceAccounts;
- serviceAccounts = getEndpoint().getKubernetesClient().serviceAccounts();
+ FilterWatchListMultiDeletable<ServiceAccount, ServiceAccountList, Boolean, Watch, Watcher<ServiceAccount>> serviceAccounts;
+ serviceAccounts = getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace();
for (Map.Entry<String, String> entry : labels.entrySet()) {
serviceAccounts.withLabel(entry.getKey(), entry.getValue());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/e4c6edb3/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/deprecated/DeprecatedKubernetesServiceAccountsProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/deprecated/DeprecatedKubernetesServiceAccountsProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/deprecated/DeprecatedKubernetesServiceAccountsProducerTest.java
index 4ce0413..6a0310f 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/deprecated/DeprecatedKubernetesServiceAccountsProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/deprecated/DeprecatedKubernetesServiceAccountsProducerTest.java
@@ -32,8 +32,10 @@ import org.apache.camel.component.kubernetes.KubernetesTestSupport;
import org.apache.camel.component.kubernetes.producer.KubernetesServiceAccountsProducerTest;
import org.apache.camel.util.ObjectHelper;
import org.apache.commons.codec.binary.Base64;
+import org.junit.Ignore;
import org.junit.Test;
+@Ignore
@Deprecated
public class DeprecatedKubernetesServiceAccountsProducerTest extends KubernetesServiceAccountsProducerTest {
http://git-wip-us.apache.org/repos/asf/camel/blob/e4c6edb3/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
index 2705f6f..f80375f 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
@@ -17,113 +17,74 @@
package org.apache.camel.component.kubernetes.producer;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ServiceAccount;
+import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
+import io.fabric8.kubernetes.api.model.ServiceAccountListBuilder;
+import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.kubernetes.KubernetesConstants;
import org.apache.camel.component.kubernetes.KubernetesTestSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.codec.binary.Base64;
+import org.apache.camel.impl.JndiRegistry;
+import org.junit.Rule;
import org.junit.Test;
public class KubernetesServiceAccountsProducerTest extends KubernetesTestSupport {
+ @Rule
+ public KubernetesServer server = new KubernetesServer();
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ registry.bind("kubernetesClient", server.getClient());
+ return registry;
+ }
+
@Test
public void listTest() throws Exception {
- if (ObjectHelper.isEmpty(authToken)) {
- return;
- }
- List<ServiceAccount> result = template.requestBody("direct:list", "",
- List.class);
-
- boolean fabric8Exists = false;
-
- Iterator<ServiceAccount> it = result.iterator();
- while (it.hasNext()) {
- ServiceAccount service = it.next();
- if ("fabric8".equalsIgnoreCase(service.getMetadata().getName())) {
- fabric8Exists = true;
- }
- }
+ server.expect().withPath("/api/v1/serviceaccounts").andReturn(200, new ServiceAccountListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+ List<ServiceAccount> result = template.requestBody("direct:list", "", List.class);
- assertTrue(fabric8Exists);
+ assertEquals(3, result.size());
}
@Test
public void listByLabelsTest() throws Exception {
- if (ObjectHelper.isEmpty(authToken)) {
- return;
- }
+ server.expect().withPath("/api/v1/serviceaccounts?labelSelector=" + toUrlEncoded("key1=value1,key2=value2"))
+ .andReturn(200, new ServiceAccountListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
Exchange ex = template.request("direct:listByLabels", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
- "default");
Map<String, String> labels = new HashMap<String, String>();
- labels.put("component", "elasticsearch");
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS, labels);
+ labels.put("key1", "value1");
+ labels.put("key2", "value2");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS, labels);
}
});
List<ServiceAccount> result = ex.getOut().getBody(List.class);
- assertTrue(result.size() == 0);
+ assertEquals(3, result.size());
}
@Test
public void createAndDeleteServiceAccount() throws Exception {
- if (ObjectHelper.isEmpty(authToken)) {
- return;
- }
- Exchange ex = template.request("direct:create", new Processor() {
-
- @Override
- public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
- "default");
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_SERVICE_ACCOUNT_NAME, "test");
- Map<String, String> labels = new HashMap<String, String>();
- labels.put("this", "rocks");
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS, labels);
- ServiceAccount s = new ServiceAccount();
- s.setKind("ServiceAccount");
- Map<String, String> mp = new HashMap<String, String>();
- mp.put("username", Base64.encodeBase64String("pippo".getBytes()));
- mp.put("password", Base64.encodeBase64String("password".getBytes()));
- ObjectMeta meta = new ObjectMeta();
- meta.setName("test");
- s.setMetadata(meta);
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_SERVICE_ACCOUNT, s);
- }
- });
-
- ServiceAccount sec = ex.getOut().getBody(ServiceAccount.class);
-
- assertEquals(sec.getMetadata().getName(), "test");
+ ServiceAccount pod1 = new ServiceAccountBuilder().withNewMetadata().withName("sa1").withNamespace("test").and().build();
- ex = template.request("direct:delete", new Processor() {
+ server.expect().withPath("/api/v1/namespaces/test/serviceaccounts/sa1").andReturn(200, pod1).once();
+ Exchange ex = template.request("direct:delete", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
- "default");
- exchange.getIn().setHeader(
- KubernetesConstants.KUBERNETES_SERVICE_ACCOUNT_NAME, "test");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNT_NAME, "sa1");
}
});
@@ -137,21 +98,9 @@ public class KubernetesServiceAccountsProducerTest extends KubernetesTestSupport
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:list")
- .toF("kubernetes-service-accounts://%s?oauthToken=%s&operation=listServiceAccounts",
- host, authToken);
- from("direct:listByLabels")
- .toF("kubernetes-service-accounts://%s?oauthToken=%s&operation=listServiceAccountsByLabels",
- host, authToken);
- from("direct:getServices")
- .toF("kubernetes-service-accounts://%s?oauthToken=%s&operation=getServiceAccount",
- host, authToken);
- from("direct:create")
- .toF("kubernetes-service-accounts://%s?oauthToken=%s&operation=createServiceAccount",
- host, authToken);
- from("direct:delete")
- .toF("kubernetes-service-accounts://%s?oauthToken=%s&operation=deleteServiceAccount",
- host, authToken);
+ from("direct:list").to("kubernetes-service-accounts:///?kubernetesClient=#kubernetesClient&operation=listServiceAccounts");
+ from("direct:listByLabels").to("kubernetes-service-accounts:///?kubernetesClient=#kubernetesClient&operation=listServiceAccountsByLabels");
+ from("direct:delete").to("kubernetes-service-accounts:///?kubernetesClient=#kubernetesClient&operation=deleteServiceAccount");
}
};
}