From 85cc9c36ac40dc3a28788d90cc51d7e74c8acf0e Mon Sep 17 00:00:00 2001 From: Jared Tan Date: Sat, 29 Feb 2020 22:20:43 +0800 Subject: [PATCH] fix agent auth e2e not activated. (#4428) * fix e2e miss. --- .github/workflows/e2e.yaml | 2 + test/e2e/e2e-agent-auth/pom.xml | 14 +++-- .../src/docker/rc.d/rc0-prepare.sh | 42 --------------- .../src/docker/rc.d/rc1-startup.sh | 8 --- .../e2e/SampleVerificationITCase.java | 53 ++++++++++++------- 5 files changed, 44 insertions(+), 75 deletions(-) delete mode 100755 test/e2e/e2e-agent-auth/src/docker/rc.d/rc0-prepare.sh diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 06d5fba7c..e19c1de3a 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -56,6 +56,8 @@ jobs: run: export E2E_VERSION=jdk12-1.5 && bash -x test/e2e/run.sh e2e-single-service - name: Agent Reboot Tests(JDK8) run: export E2E_VERSION=jdk8-1.5 && bash -x test/e2e/run.sh e2e-agent-reboot + - name: Agent Auth Tests(JDK8) + run: export E2E_VERSION=jdk8-1.5 && bash -x test/e2e/run.sh e2e-agent-auth Cluster: runs-on: ubuntu-latest diff --git a/test/e2e/e2e-agent-auth/pom.xml b/test/e2e/e2e-agent-auth/pom.xml index 55e329ad9..31ff1728c 100755 --- a/test/e2e/e2e-agent-auth/pom.xml +++ b/test/e2e/e2e-agent-auth/pom.xml @@ -83,14 +83,12 @@ ${e2e.container.name.prefix} + test-token ${project.build.finalName}.jar - -Dskywalking.agent.cool_down_threshold=1 - +webapp.host:webapp.port:8080 +client.host:client.port:9090 - +reboot.host:reboot.port:9091 @@ -100,8 +98,14 @@ - SkyWalking e2e container is ready for tests - + + + http://${docker.host.address}:${client.port}/e2e/health-check + + GET + 200 + + diff --git a/test/e2e/e2e-agent-auth/src/docker/rc.d/rc0-prepare.sh b/test/e2e/e2e-agent-auth/src/docker/rc.d/rc0-prepare.sh deleted file mode 100755 index 5f771bd85..000000000 --- a/test/e2e/e2e-agent-auth/src/docker/rc.d/rc0-prepare.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -# Licensed to the SkyAPM under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# in order to make it easier to restart the OAP (by executing the restart script) from outside (container), -# we'll expose a tcp port and whenever we receive a message on that port, we'll restart the OAP server, -# socat will help on this to execute the script when receiving a message on that port - -apt-get update && apt-get -y install socat - -# socat will execute the command in a new shell, thus won't catch the original functions' declarations -# so we'll put the restart command in a script file - -echo ' - ps -ef | grep -v grep | grep oap.logDir | awk '"'"'{print $2}'"'"' | xargs --no-run-if-empty kill -9 - rm -rf /tmp/oap/trace_buffer1 - rm -rf /tmp/oap/mesh_buffer1 - echo "restarting OAP server..." \ - && SW_RECEIVER_BUFFER_PATH=/tmp/oap/trace_buffer1 \ - && SW_SERVICE_MESH_BUFFER_PATH=/tmp/oap/mesh_buffer1 \ - && cd /sw \ - && bash bin/oapService.sh > /dev/null 2>&1 & -' > /usr/bin/restart_oap - -sync - -chmod +x /usr/bin/restart_oap - -sync diff --git a/test/e2e/e2e-agent-auth/src/docker/rc.d/rc1-startup.sh b/test/e2e/e2e-agent-auth/src/docker/rc.d/rc1-startup.sh index 3b1388c22..a19df3686 100755 --- a/test/e2e/e2e-agent-auth/src/docker/rc.d/rc1-startup.sh +++ b/test/e2e/e2e-agent-auth/src/docker/rc.d/rc1-startup.sh @@ -15,15 +15,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# set up the tcp server to listen for the restart command - -socat -u tcp-l:9091,fork system:'bash restart_oap' & - echo 'starting OAP server...' \ - && SW_STORAGE_ES_BULK_ACTIONS=1 \ - && SW_STORAGE_ES_FLUSH_INTERVAL=1 \ - && SW_RECEIVER_BUFFER_PATH=/tmp/oap/trace_buffer1 \ - && SW_SERVICE_MESH_BUFFER_PATH=/tmp/oap/mesh_buffer1 \ && SW_AUTHENTICATION="test-token" \ && start_oap 'init' diff --git a/test/e2e/e2e-agent-auth/src/test/java/org/apache/skywalking/e2e/SampleVerificationITCase.java b/test/e2e/e2e-agent-auth/src/test/java/org/apache/skywalking/e2e/SampleVerificationITCase.java index 0d290bd0a..ec7328852 100644 --- a/test/e2e/e2e-agent-auth/src/test/java/org/apache/skywalking/e2e/SampleVerificationITCase.java +++ b/test/e2e/e2e-agent-auth/src/test/java/org/apache/skywalking/e2e/SampleVerificationITCase.java @@ -101,7 +101,8 @@ public class SampleVerificationITCase { try { final Map user = new HashMap<>(); user.put("name", "SkyWalking"); - final ResponseEntity responseEntity = restTemplate.postForEntity(instrumentedServiceUrl + "/e2e/users", user, String.class); + final ResponseEntity responseEntity = restTemplate.postForEntity( + instrumentedServiceUrl + "/e2e/users", user, String.class); LOGGER.info("responseEntity: {}", responseEntity); assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK); final List traces = queryClient.traces(new TracesQuery().start(minutesAgo) @@ -156,7 +157,8 @@ public class SampleVerificationITCase { .end(now)); LOGGER.info("topoData: {}", topoData); - InputStream expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.topo.yml") + InputStream expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.topo.yml") .getInputStream(); final TopoMatcher topoMatcher = new Yaml().loadAs(expectedInputStream, TopoMatcher.class); @@ -167,18 +169,21 @@ public class SampleVerificationITCase { private void verifyServiceInstanceTopo(LocalDateTime minutesAgo) throws Exception { final LocalDateTime now = LocalDateTime.now(ZoneOffset.UTC); - final ServiceInstanceTopoData topoData = queryClient.serviceInstanceTopo(new ServiceInstanceTopoQuery().stepByMinute() - .start(minutesAgo - .minusDays(1)) - .end(now) - .clientServiceId("1") - .serverServiceId("2")); + final ServiceInstanceTopoData topoData = queryClient.serviceInstanceTopo( + new ServiceInstanceTopoQuery().stepByMinute() + .start(minutesAgo + .minusDays(1)) + .end(now) + .clientServiceId("1") + .serverServiceId("2")); LOGGER.info("instanceTopoData: {}", topoData); - InputStream expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.serviceInstanceTopo.yml") + InputStream expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.serviceInstanceTopo.yml") .getInputStream(); - final ServiceInstanceTopoMatcher topoMatcher = new Yaml().loadAs(expectedInputStream, ServiceInstanceTopoMatcher.class); + final ServiceInstanceTopoMatcher topoMatcher = new Yaml().loadAs( + expectedInputStream, ServiceInstanceTopoMatcher.class); topoMatcher.verify(topoData); verifyServiceInstanceRelationMetrics(topoData.getCalls(), minutesAgo); } @@ -189,7 +194,8 @@ public class SampleVerificationITCase { final List services = queryClient.services(new ServicesQuery().start(minutesAgo).end(now)); LOGGER.info("services: {}", services); - InputStream expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.services.yml") + InputStream expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.services.yml") .getInputStream(); final ServicesMatcher servicesMatcher = new Yaml().loadAs(expectedInputStream, ServicesMatcher.class); @@ -211,13 +217,14 @@ public class SampleVerificationITCase { } private Instances verifyServiceInstances(LocalDateTime minutesAgo, LocalDateTime now, - Service service) throws Exception { + Service service) throws Exception { InputStream expectedInputStream; Instances instances = queryClient.instances(new InstancesQuery().serviceId(service.getKey()) .start(minutesAgo) .end(now)); LOGGER.info("instances: {}", instances); - expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.instances.yml") + expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.instances.yml") .getInputStream(); final InstancesMatcher instancesMatcher = new Yaml().loadAs(expectedInputStream, InstancesMatcher.class); instancesMatcher.verify(instances); @@ -225,10 +232,11 @@ public class SampleVerificationITCase { } private Endpoints verifyServiceEndpoints(LocalDateTime minutesAgo, LocalDateTime now, - Service service) throws Exception { + Service service) throws Exception { Endpoints instances = queryClient.endpoints(new EndpointQuery().serviceId(service.getKey())); LOGGER.info("instances: {}", instances); - InputStream expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.endpoints.yml") + InputStream expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.endpoints.yml") .getInputStream(); final EndpointsMatcher endpointsMatcher = new Yaml().loadAs(expectedInputStream, EndpointsMatcher.class); endpointsMatcher.verify(instances); @@ -296,7 +304,8 @@ public class SampleVerificationITCase { final List traces = queryClient.traces(new TracesQuery().start(minutesAgo).end(now).orderByDuration()); LOGGER.info("traces: {}", traces); - InputStream expectedInputStream = new ClassPathResource("expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.traces.yml") + InputStream expectedInputStream = new ClassPathResource( + "expected-data/org.apache.skywalking.e2e.SampleVerificationITCase.traces.yml") .getInputStream(); final TracesMatcher tracesMatcher = new Yaml().loadAs(expectedInputStream, TracesMatcher.class); @@ -304,16 +313,20 @@ public class SampleVerificationITCase { } private void verifyServiceInstanceRelationMetrics(List calls, - final LocalDateTime minutesAgo) throws Exception { - verifyRelationMetrics(calls, minutesAgo, ALL_SERVICE_INSTANCE_RELATION_CLIENT_METRICS, ALL_SERVICE_INSTANCE_RELATION_SERVER_METRICS); + final LocalDateTime minutesAgo) throws Exception { + verifyRelationMetrics( + calls, minutesAgo, ALL_SERVICE_INSTANCE_RELATION_CLIENT_METRICS, + ALL_SERVICE_INSTANCE_RELATION_SERVER_METRICS + ); } private void verifyServiceRelationMetrics(List calls, final LocalDateTime minutesAgo) throws Exception { - verifyRelationMetrics(calls, minutesAgo, ALL_SERVICE_RELATION_CLIENT_METRICS, ALL_SERVICE_RELATION_SERVER_METRICS); + verifyRelationMetrics( + calls, minutesAgo, ALL_SERVICE_RELATION_CLIENT_METRICS, ALL_SERVICE_RELATION_SERVER_METRICS); } private void verifyRelationMetrics(List calls, final LocalDateTime minutesAgo, String[] relationClientMetrics, - String[] relationServerMetrics) throws Exception { + String[] relationServerMetrics) throws Exception { for (Call call : calls) { for (String detectPoint : call.getDetectPoints()) { switch (detectPoint) {