You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/06/29 15:36:01 UTC
[19/50] [abbrv] brooklyn-server git commit: Test setting of pod name
and metadata
Test setting of pod name and metadata
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/7c85eefe
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/7c85eefe
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/7c85eefe
Branch: refs/heads/master
Commit: 7c85eefe6b310855432116a87f0be57e38a77398
Parents: 0520ae2
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Tue Jan 31 07:17:08 2017 +0000
Committer: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Committed: Fri May 19 14:01:20 2017 +0100
----------------------------------------------------------------------
.../KubernetesLocationYamlLiveTest.java | 45 +++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7c85eefe/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
----------------------------------------------------------------------
diff --git a/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java b/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
index d623efa..83c0abe 100644
--- a/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
+++ b/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
@@ -17,6 +17,7 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.util.List;
+import java.util.Map;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.location.MachineLocation;
@@ -31,6 +32,8 @@ import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess;
import org.apache.brooklyn.entity.software.base.SoftwareProcess;
import org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess;
import org.apache.brooklyn.location.ssh.SshMachineLocation;
+import org.apache.brooklyn.util.core.config.ConfigBag;
+import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.net.Networking;
import org.apache.brooklyn.util.text.Identifiers;
import org.apache.logging.log4j.util.Strings;
@@ -45,6 +48,8 @@ import com.google.common.net.HostAndPort;
import io.cloudsoft.amp.containerservice.dockercontainer.DockerContainer;
import io.cloudsoft.amp.containerservice.kubernetes.entity.KubernetesPod;
import io.cloudsoft.amp.containerservice.kubernetes.entity.KubernetesResource;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.client.KubernetesClient;
/**
* Live tests for deploying simple blueprints. Particularly useful during dev, but not so useful
@@ -201,6 +206,30 @@ public class KubernetesLocationYamlLiveTest extends AbstractYamlTest {
}
@Test(groups={"Live"})
+ public void testTomcatPodExtras() throws Exception {
+ String yaml = Joiner.on("\n").join(
+ locationYaml,
+ "services:",
+ " - type: " + KubernetesPod.class.getName(),
+ " brooklyn.config:",
+ " docker.container.imageName: tomcat",
+ " docker.container.inboundPorts: [ \"8080\" ]",
+ " pod: tomcat-pod",
+ " metadata:",
+ " extra: test");
+
+ DockerContainer entity = runTomcat(yaml);
+ assertAttributeEqualsEventually(entity, KubernetesPod.KUBERNETES_POD, "tomcat-pod");
+
+ String namespace = entity.sensors().get(KubernetesPod.KUBERNETES_NAMESPACE);
+ KubernetesClient client = getClient(entity);
+ Pod pod = client.pods().inNamespace(namespace).withName("tomcat-pod").get();
+ Map<String, String> labels = pod.getMetadata().getLabels();
+ assertTrue(labels.containsKey("extra"));
+ assertEquals(labels.get("extra"), "test");
+ }
+
+ @Test(groups={"Live"})
public void testTomcatContainer() throws Exception {
String yaml = Joiner.on("\n").join(
locationYaml,
@@ -216,7 +245,7 @@ public class KubernetesLocationYamlLiveTest extends AbstractYamlTest {
/**
* Assumes that the {@link DockerContainer} entity uses port 8080.
*/
- protected void runTomcat(String yaml) throws Exception {
+ protected DockerContainer runTomcat(String yaml) throws Exception {
Entity app = createStartWaitAndLogApplication(yaml);
DockerContainer entity = Iterables.getOnlyElement(Entities.descendantsAndSelf(app, DockerContainer.class));
@@ -226,6 +255,8 @@ public class KubernetesLocationYamlLiveTest extends AbstractYamlTest {
assertReachableEventually(publicPort);
assertHttpStatusCodeEventuallyEquals("http://"+publicPort.getHostText()+":"+publicPort.getPort(), 200);
+
+ return entity;
}
@@ -410,4 +441,16 @@ public class KubernetesLocationYamlLiveTest extends AbstractYamlTest {
assertTrue(Networking.isReachable(hostAndPort), "publicPort="+hostAndPort);
}});
}
+
+ public KubernetesClient getClient(Entity entity) {
+ Maybe<KubernetesLocation> location = Machines.findUniqueElement(entity.getLocations(), KubernetesLocation.class);
+ if (location.isPresentAndNonNull()) {
+ KubernetesLocation kubernetes = location.get();
+ ConfigBag config = kubernetes.config().getBag();
+ KubernetesClientRegistry registry = kubernetes.config().get(KubernetesLocationConfig.KUBERNETES_CLIENT_REGISTRY);
+ KubernetesClient client = registry.getKubernetesClient(config);
+ return client;
+ }
+ throw new IllegalStateException("Cannot find KubernetesLocation on entity: " + Iterables.toString(entity.getLocations()));
+ }
}