You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2018/10/29 14:51:28 UTC

svn commit: r1845134 - /tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java

Author: remm
Date: Mon Oct 29 14:51:28 2018
New Revision: 1845134

URL: http://svn.apache.org/viewvc?rev=1845134&view=rev
Log:
Replace with real json test, more to come eventually (that helped sort out what was standard and others like "kind" which are pretty much optional).

Modified:
    tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java

Modified: tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java?rev=1845134&r1=1845133&r2=1845134&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java (original)
+++ tomcat/trunk/test/org/apache/catalina/tribes/membership/cloud/TestKubernetesJson.java Mon Oct 29 14:51:28 2018
@@ -28,54 +28,259 @@ import org.apache.catalina.tribes.member
 
 public class TestKubernetesJson extends KubernetesMembershipProvider {
 
-    private static final String JSON_POD_LIST = "{\n" +
-            "  \"kind\": \"List\",\n" +
-            "  \"apiVersion\": \"v1\",\n" +
-            "  \"items\": [\n" +
-            "    {\n" +
-            "      \"kind\": \"Pod\",\n" +
-            "      \"apiVersion\": \"v1\",\n" +
-            "      \"metadata\": {\n" +
-            "        \"name\": \"test_pod\",\n" +
-            "        \"namespace\": \"default\",\n" +
-            "        \"selfLink\": \"/api/v1/pods/foo\",\n" +
-            "        \"uid\": \"748932794874923\",\n" +
-            "        \"resourceVersion\": \"23\",\n" +
-            "        \"creationTimestamp\": \"2018-10-02T09:14:01Z\"\n" +
-            "      },\n" +
-            "      \"status\": {\n" +
-            "        \"phase\": \"Running\",\n" +
-            "        \"podIP\": \"192.168.0.2\"\n" +
-            "      }\n" +
-            "    },\n" +
-            "    {\n" +
-            "      \"kind\": \"Pod\",\n" +
-            "      \"apiVersion\": \"v1\",\n" +
-            "      \"metadata\": {\n" +
-            "        \"name\": \"test_pod_2\",\n" +
-            "        \"namespace\": \"default\",\n" +
-            "        \"selfLink\": \"/api/v1/pods/foo2\",\n" +
-            "        \"uid\": \"7489327944322341414923\",\n" +
-            "        \"resourceVersion\": \"18\",\n" +
-            "        \"creationTimestamp\": \"2018-10-01T09:14:01Z\"\n" +
-            "      },\n" +
-            "      \"status\": {\n" +
-            "        \"phase\": \"Running\",\n" +
-            "        \"podIP\": \"192.168.0.3\"\n" +
-            "      }\n" +
-            "    }\n" +
-            "  ]\n" +
-            "}";
+    private static final String OPENSHIFT_JSON_POD_LIST = "{\n"
+            + "  \"kind\": \"PodList\",\n" + "  \"apiVersion\": \"v1\",\n"
+            + "  \"metadata\": {\n"
+            + "    \"selfLink\": \"/api/v1/namespaces/tomcat-in-the-cloud/pods\",\n"
+            + "    \"resourceVersion\": \"1120453180\"\n" + "  },\n"
+            + "  \"items\": [\n" + "    {\n" + "      \"metadata\": {\n"
+            + "        \"name\": \"tomcat-in-the-cloud-5bc6dc7cf8-ndpdm\",\n"
+            + "        \"generateName\": \"tomcat-in-the-cloud-5bc6dc7cf8-\",\n"
+            + "        \"namespace\": \"tomcat-in-the-cloud\",\n"
+            + "        \"selfLink\": \"/api/v1/namespaces/tomcat-in-the-cloud/pods/tomcat-in-the-cloud-5bc6dc7cf8-ndpdm\",\n"
+            + "        \"uid\": \"29cc7dec-cc8d-11e8-943e-02ec8e61afcf\",\n"
+            + "        \"resourceVersion\": \"1120373053\",\n"
+            + "        \"creationTimestamp\": \"2018-10-10T13:05:29Z\",\n"
+            + "        \"labels\": {\n"
+            + "          \"pod-template-hash\": \"1672873794\",\n"
+            + "          \"run\": \"tomcat-in-the-cloud\"\n" + "        },\n"
+            + "        \"annotations\": {\n"
+            + "          \"kubernetes.io/limit-ranger\": \"LimitRanger plugin set: cpu, memory request for container tomcat-in-the-cloud; cpu, memory limit for container tomcat-in-the-cloud\",\n"
+            + "          \"openshift.io/scc\": \"restricted\"\n"
+            + "        },\n" + "        \"ownerReferences\": [\n"
+            + "          {\n" + "            \"apiVersion\": \"apps/v1\",\n"
+            + "            \"kind\": \"ReplicaSet\",\n"
+            + "            \"name\": \"tomcat-in-the-cloud-5bc6dc7cf8\",\n"
+            + "            \"uid\": \"12c4fa68-cc8d-11e8-943e-02ec8e61afcf\",\n"
+            + "            \"controller\": true,\n"
+            + "            \"blockOwnerDeletion\": true\n" + "          }\n"
+            + "        ]\n" + "      },\n" + "      \"spec\": {\n"
+            + "        \"volumes\": [\n" + "          {\n"
+            + "            \"name\": \"default-token-n87wf\",\n"
+            + "            \"secret\": {\n"
+            + "              \"secretName\": \"default-token-n87wf\",\n"
+            + "              \"defaultMode\": 420\n" + "            }\n"
+            + "          }\n" + "        ],\n" + "        \"containers\": [\n"
+            + "          {\n"
+            + "            \"name\": \"tomcat-in-the-cloud\",\n"
+            + "            \"image\": \"docker.io/jfclere/test\",\n"
+            + "            \"ports\": [\n" + "              {\n"
+            + "                \"containerPort\": 8080,\n"
+            + "                \"protocol\": \"TCP\"\n" + "              }\n"
+            + "            ],\n" + "            \"resources\": {\n"
+            + "              \"limits\": {\n"
+            + "                \"cpu\": \"1\",\n"
+            + "                \"memory\": \"512Mi\"\n" + "              },\n"
+            + "              \"requests\": {\n"
+            + "                \"cpu\": \"20m\",\n"
+            + "                \"memory\": \"256Mi\"\n" + "              }\n"
+            + "            },\n" + "            \"volumeMounts\": [\n"
+            + "              {\n"
+            + "                \"name\": \"default-token-n87wf\",\n"
+            + "                \"readOnly\": true,\n"
+            + "                \"mountPath\": \"/var/run/secrets/kubernetes.io/serviceaccount\"\n"
+            + "              }\n" + "            ],\n"
+            + "            \"terminationMessagePath\": \"/dev/termination-log\",\n"
+            + "            \"terminationMessagePolicy\": \"File\",\n"
+            + "            \"imagePullPolicy\": \"Always\",\n"
+            + "            \"securityContext\": {\n"
+            + "              \"capabilities\": {\n"
+            + "                \"drop\": [\n" + "                  \"KILL\",\n"
+            + "                  \"MKNOD\",\n"
+            + "                  \"NET_RAW\",\n"
+            + "                  \"SETGID\",\n"
+            + "                  \"SETUID\"\n" + "                ]\n"
+            + "              },\n" + "              \"runAsUser\": 1119270000\n"
+            + "            }\n" + "          }\n" + "        ],\n"
+            + "        \"restartPolicy\": \"Always\",\n"
+            + "        \"terminationGracePeriodSeconds\": 30,\n"
+            + "        \"dnsPolicy\": \"ClusterFirst\",\n"
+            + "        \"nodeSelector\": {\n"
+            + "          \"type\": \"compute\"\n" + "        },\n"
+            + "        \"serviceAccountName\": \"default\",\n"
+            + "        \"serviceAccount\": \"default\",\n"
+            + "        \"nodeName\": \"ip-172-31-18-231.ca-central-1.compute.internal\",\n"
+            + "        \"securityContext\": {\n"
+            + "          \"seLinuxOptions\": {\n"
+            + "            \"level\": \"s0:c345,c295\"\n" + "          },\n"
+            + "          \"fsGroup\": 1119270000\n" + "        },\n"
+            + "        \"imagePullSecrets\": [\n" + "          {\n"
+            + "            \"name\": \"default-dockercfg-lx7wg\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"schedulerName\": \"default-scheduler\",\n"
+            + "        \"tolerations\": [\n" + "          {\n"
+            + "            \"key\": \"node.kubernetes.io/memory-pressure\",\n"
+            + "            \"operator\": \"Exists\",\n"
+            + "            \"effect\": \"NoSchedule\"\n" + "          }\n"
+            + "        ],\n" + "        \"priority\": 0\n" + "      },\n"
+            + "      \"status\": {\n" + "        \"phase\": \"Running\",\n"
+            + "        \"conditions\": [\n" + "          {\n"
+            + "            \"type\": \"Initialized\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:05:30Z\"\n"
+            + "          },\n" + "          {\n"
+            + "            \"type\": \"Ready\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:06:30Z\"\n"
+            + "          },\n" + "          {\n"
+            + "            \"type\": \"ContainersReady\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": null\n" + "          },\n"
+            + "          {\n" + "            \"type\": \"PodScheduled\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:05:30Z\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"hostIP\": \"172.31.18.231\",\n"
+            + "        \"podIP\": \"10.130.140.153\",\n"
+            + "        \"startTime\": \"2018-10-10T13:05:30Z\",\n"
+            + "        \"containerStatuses\": [\n" + "          {\n"
+            + "            \"name\": \"tomcat-in-the-cloud\",\n"
+            + "            \"state\": {\n" + "              \"running\": {\n"
+            + "                \"startedAt\": \"2018-10-10T13:06:29Z\"\n"
+            + "              }\n" + "            },\n"
+            + "            \"lastState\": {\n" + "              \n"
+            + "            },\n" + "            \"ready\": true,\n"
+            + "            \"restartCount\": 0,\n"
+            + "            \"image\": \"docker.io/jfclere/test:latest\",\n"
+            + "            \"imageID\": \"docker.io/jfclere/test@sha256:d36155492516915ecf448fe62769f61b5f9ab795bc8ae1e72a199ee6485cbea2\",\n"
+            + "            \"containerID\": \"cri-o://a173e05e66730efd5e5df6e9b2681b5c37de44b81cc22f2455077b3008a5284c\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"qosClass\": \"Burstable\"\n" + "      }\n" + "    },\n"
+            + "    {\n" + "      \"metadata\": {\n"
+            + "        \"name\": \"tomcat-in-the-cloud-5bc6dc7cf8-w454k\",\n"
+            + "        \"generateName\": \"tomcat-in-the-cloud-5bc6dc7cf8-\",\n"
+            + "        \"namespace\": \"tomcat-in-the-cloud\",\n"
+            + "        \"selfLink\": \"/api/v1/namespaces/tomcat-in-the-cloud/pods/tomcat-in-the-cloud-5bc6dc7cf8-w454k\",\n"
+            + "        \"uid\": \"12cd7ae2-cc8d-11e8-943e-02ec8e61afcf\",\n"
+            + "        \"resourceVersion\": \"1120369623\",\n"
+            + "        \"creationTimestamp\": \"2018-10-10T13:04:51Z\",\n"
+            + "        \"labels\": {\n"
+            + "          \"pod-template-hash\": \"1672873794\",\n"
+            + "          \"run\": \"tomcat-in-the-cloud\"\n" + "        },\n"
+            + "        \"annotations\": {\n"
+            + "          \"kubernetes.io/limit-ranger\": \"LimitRanger plugin set: cpu, memory request for container tomcat-in-the-cloud; cpu, memory limit for container tomcat-in-the-cloud\",\n"
+            + "          \"openshift.io/scc\": \"restricted\"\n"
+            + "        },\n" + "        \"ownerReferences\": [\n"
+            + "          {\n" + "            \"apiVersion\": \"apps/v1\",\n"
+            + "            \"kind\": \"ReplicaSet\",\n"
+            + "            \"name\": \"tomcat-in-the-cloud-5bc6dc7cf8\",\n"
+            + "            \"uid\": \"12c4fa68-cc8d-11e8-943e-02ec8e61afcf\",\n"
+            + "            \"controller\": true,\n"
+            + "            \"blockOwnerDeletion\": true\n" + "          }\n"
+            + "        ]\n" + "      },\n" + "      \"spec\": {\n"
+            + "        \"volumes\": [\n" + "          {\n"
+            + "            \"name\": \"default-token-n87wf\",\n"
+            + "            \"secret\": {\n"
+            + "              \"secretName\": \"default-token-n87wf\",\n"
+            + "              \"defaultMode\": 420\n" + "            }\n"
+            + "          }\n" + "        ],\n" + "        \"containers\": [\n"
+            + "          {\n"
+            + "            \"name\": \"tomcat-in-the-cloud\",\n"
+            + "            \"image\": \"docker.io/jfclere/test\",\n"
+            + "            \"ports\": [\n" + "              {\n"
+            + "                \"containerPort\": 8080,\n"
+            + "                \"protocol\": \"TCP\"\n" + "              }\n"
+            + "            ],\n" + "            \"resources\": {\n"
+            + "              \"limits\": {\n"
+            + "                \"cpu\": \"1\",\n"
+            + "                \"memory\": \"512Mi\"\n" + "              },\n"
+            + "              \"requests\": {\n"
+            + "                \"cpu\": \"20m\",\n"
+            + "                \"memory\": \"256Mi\"\n" + "              }\n"
+            + "            },\n" + "            \"volumeMounts\": [\n"
+            + "              {\n"
+            + "                \"name\": \"default-token-n87wf\",\n"
+            + "                \"readOnly\": true,\n"
+            + "                \"mountPath\": \"/var/run/secrets/kubernetes.io/serviceaccount\"\n"
+            + "              }\n" + "            ],\n"
+            + "            \"terminationMessagePath\": \"/dev/termination-log\",\n"
+            + "            \"terminationMessagePolicy\": \"File\",\n"
+            + "            \"imagePullPolicy\": \"Always\",\n"
+            + "            \"securityContext\": {\n"
+            + "              \"capabilities\": {\n"
+            + "                \"drop\": [\n" + "                  \"KILL\",\n"
+            + "                  \"MKNOD\",\n"
+            + "                  \"NET_RAW\",\n"
+            + "                  \"SETGID\",\n"
+            + "                  \"SETUID\"\n" + "                ]\n"
+            + "              },\n" + "              \"runAsUser\": 1119270000\n"
+            + "            }\n" + "          }\n" + "        ],\n"
+            + "        \"restartPolicy\": \"Always\",\n"
+            + "        \"terminationGracePeriodSeconds\": 30,\n"
+            + "        \"dnsPolicy\": \"ClusterFirst\",\n"
+            + "        \"nodeSelector\": {\n"
+            + "          \"type\": \"compute\"\n" + "        },\n"
+            + "        \"serviceAccountName\": \"default\",\n"
+            + "        \"serviceAccount\": \"default\",\n"
+            + "        \"nodeName\": \"ip-172-31-23-191.ca-central-1.compute.internal\",\n"
+            + "        \"securityContext\": {\n"
+            + "          \"seLinuxOptions\": {\n"
+            + "            \"level\": \"s0:c345,c295\"\n" + "          },\n"
+            + "          \"fsGroup\": 1119270000\n" + "        },\n"
+            + "        \"imagePullSecrets\": [\n" + "          {\n"
+            + "            \"name\": \"default-dockercfg-lx7wg\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"schedulerName\": \"default-scheduler\",\n"
+            + "        \"tolerations\": [\n" + "          {\n"
+            + "            \"key\": \"node.kubernetes.io/memory-pressure\",\n"
+            + "            \"operator\": \"Exists\",\n"
+            + "            \"effect\": \"NoSchedule\"\n" + "          }\n"
+            + "        ],\n" + "        \"priority\": 0\n" + "      },\n"
+            + "      \"status\": {\n" + "        \"phase\": \"Running\",\n"
+            + "        \"conditions\": [\n" + "          {\n"
+            + "            \"type\": \"Initialized\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:04:51Z\"\n"
+            + "          },\n" + "          {\n"
+            + "            \"type\": \"Ready\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:05:15Z\"\n"
+            + "          },\n" + "          {\n"
+            + "            \"type\": \"ContainersReady\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": null\n" + "          },\n"
+            + "          {\n" + "            \"type\": \"PodScheduled\",\n"
+            + "            \"status\": \"True\",\n"
+            + "            \"lastProbeTime\": null,\n"
+            + "            \"lastTransitionTime\": \"2018-10-10T13:04:51Z\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"hostIP\": \"172.31.23.191\",\n"
+            + "        \"podIP\": \"10.129.123.39\",\n"
+            + "        \"startTime\": \"2018-10-10T13:04:51Z\",\n"
+            + "        \"containerStatuses\": [\n" + "          {\n"
+            + "            \"name\": \"tomcat-in-the-cloud\",\n"
+            + "            \"state\": {\n" + "              \"running\": {\n"
+            + "                \"startedAt\": \"2018-10-10T13:05:14Z\"\n"
+            + "              }\n" + "            },\n"
+            + "            \"lastState\": {\n" + "              \n"
+            + "            },\n" + "            \"ready\": true,\n"
+            + "            \"restartCount\": 0,\n"
+            + "            \"image\": \"docker.io/jfclere/test:latest\",\n"
+            + "            \"imageID\": \"docker.io/jfclere/test@sha256:d36155492516915ecf448fe62769f61b5f9ab795bc8ae1e72a199ee6485cbea2\",\n"
+            + "            \"containerID\": \"cri-o://401533326c8224ef5a3f40234dd26c1030925d659757e0b26c09ff1e728c78f1\"\n"
+            + "          }\n" + "        ],\n"
+            + "        \"qosClass\": \"Burstable\"\n" + "      }\n" + "    }\n"
+            + "  ]\n" + "}";
 
     @Test
     public void testJson() throws Exception {
         startTime = Instant.now();
 
         List<MemberImpl> members = new ArrayList<>();
-        parsePods(new StringReader(JSON_POD_LIST), members);
+        parsePods(new StringReader(OPENSHIFT_JSON_POD_LIST), members);
 
         Assert.assertTrue(members.size() == 2);
-        Assert.assertTrue("192.168.0.2".equals(members.get(0).getHostname()));
-        Assert.assertTrue("tcp://192.168.0.2:0".equals(members.get(0).getName()));
+        Assert.assertTrue("10.130.140.153".equals(members.get(0).getHostname()));
+        Assert.assertTrue(
+                "tcp://10.130.140.153:0".equals(members.get(0).getName()));
+
+        members.clear();
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org