CF AT for http | transform | log
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
---
|
||||
applications:
|
||||
- name: log-sink-rabbit
|
||||
host: log-sink-rabbit
|
||||
memory: 2G
|
||||
disk_quota: 2G
|
||||
instances: 1
|
||||
path: /tmp/log-sink-rabbit.jar
|
||||
env:
|
||||
LOGGING_FILE: logsinkrabbit.log
|
||||
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: logfile,health,info
|
||||
SPRING_CLOUD_STREAMAPP_SECURITY_ENABLED: false
|
||||
SPRING_CLOUD_STREAM_BINDINGS_INPUT_DESTINATION: fromtransform
|
||||
services:
|
||||
- scst-rabbit
|
||||
17
cloudfoundry/cf-manifests/transform-processor-manifest.yml
Normal file
17
cloudfoundry/cf-manifests/transform-processor-manifest.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
applications:
|
||||
- name: transform-processor-rabbit
|
||||
host: transform-processor-rabbit
|
||||
memory: 2G
|
||||
disk_quota: 2G
|
||||
instances: 1
|
||||
path: /tmp/transform-processor-rabbit.jar
|
||||
env:
|
||||
LOGGING_FILE: transformprocessorrabbit.log
|
||||
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: logfile,health,info
|
||||
SPRING_CLOUD_STREAMAPP_SECURITY_ENABLED: false
|
||||
SPRING_CLOUD_STREAM_BINDINGS_INPUT_DESTINATION: fromhttpsource
|
||||
SPRING_CLOUD_STREAM_BINDINGS_OUTPUT_DESTINATION: fromtransform
|
||||
TRANSFORMER_EXPRESSION: "payload.toUpperCase()"
|
||||
services:
|
||||
- scst-rabbit
|
||||
@@ -16,6 +16,47 @@ popd () {
|
||||
command popd "$@" > /dev/null
|
||||
}
|
||||
|
||||
function prepare_http_transform_log_with_rabbit_binder() {
|
||||
|
||||
wget -O /tmp/http-source-rabbit.jar http://repo.spring.io/snapshot/org/springframework/cloud/stream/app/http-source-rabbit/2.1.0.BUILD-SNAPSHOT/http-source-rabbit-2.1.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
wget -O /tmp/transform-processor-rabbit.jar http://repo.spring.io/snapshot/org/springframework/cloud/stream/app/transform-processor-rabbit/2.1.0.BUILD-SNAPSHOT/transform-processor-rabbit-2.1.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
wget -O /tmp/log-sink-rabbit.jar http://repo.spring.io/snapshot/org/springframework/cloud/stream/app/log-sink-rabbit/2.1.0.BUILD-SNAPSHOT/log-sink-rabbit-2.1.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
if [ $6 == "skip-ssl-validation" ]
|
||||
then
|
||||
cf login -a $1 --skip-ssl-validation -u $2 -p $3 -o $4 -s $5
|
||||
else
|
||||
cf login -a $1 -u $2 -p $3 -o $4 -s $5
|
||||
fi
|
||||
|
||||
cf push -f ./cf-manifests/http-source-manifest.yml
|
||||
|
||||
cf app http-source-rabbit > /tmp/http-source-route.txt
|
||||
|
||||
HTTP_SOURCE_ROUTE=`grep routes /tmp/http-source-route.txt | awk '{ print $2 }'`
|
||||
|
||||
FULL_HTTP_SOURCE_ROUTE=http://$HTTP_SOURCE_ROUTE
|
||||
|
||||
cf push -f ./cf-manifests/transform-processor-manifest.yml
|
||||
|
||||
cf app transform-processor-rabbit > /tmp/transform-processor-route.txt
|
||||
|
||||
TRANSFORM_PROCESSOR_ROUTE=`grep routes /tmp/transform-processor-route.txt | awk '{ print $2 }'`
|
||||
|
||||
FULL_TRANSFORM_PROCESSOR_ROUTE=http://$TRANSFORM_PROCESSOR_ROUTE
|
||||
|
||||
cf push -f ./cf-manifests/httptransform-log-sink-manifest.yml
|
||||
|
||||
cf app log-sink-rabbit > /tmp/httptransform-log-sink-route.txt
|
||||
|
||||
HTTPTRANSFORM_LOG_SINK_ROUTE=`grep routes /tmp/httptransform-log-sink-route.txt | awk '{ print $2 }'`
|
||||
|
||||
FULL_HTTPTRANSFORM_LOG_SINK_ROUTE=http://$HTTPTRANSFORM_LOG_SINK_ROUTE
|
||||
}
|
||||
|
||||
|
||||
function prepare_http_splitter_log_with_rabbit_binder() {
|
||||
|
||||
wget -O /tmp/http-source-rabbit.jar http://repo.spring.io/snapshot/org/springframework/cloud/stream/app/http-source-rabbit/2.1.0.BUILD-SNAPSHOT/http-source-rabbit-2.1.0.BUILD-SNAPSHOT.jar
|
||||
@@ -192,6 +233,40 @@ function prepare_partitioning_test_with_rabbit_binder() {
|
||||
|
||||
SECONDS=0
|
||||
|
||||
echo "Prepare artifacts for http | transform | log testing"
|
||||
|
||||
prepare_http_transform_log_with_rabbit_binder $1 $2 $3 $4 $5 $6
|
||||
|
||||
pushd ../spring-cloud-stream-acceptance-tests
|
||||
|
||||
../mvnw clean package -Dtest=HttpTransformLogAcceptanceTests -Dmaven.test.skip=false -Dhttp.source.route=$FULL_HTTP_SOURCE_ROUTE -Dtransform.processor.route=$FULL_TRANSFORM_PROCESSOR_ROUTE -Dlog.sink.route=$FULL_HTTPTRANSFORM_LOG_SINK_ROUTE
|
||||
BUILD_RETURN_VALUE=$?
|
||||
|
||||
popd
|
||||
|
||||
cf stop http-source-rabbit && cf delete http-source-rabbit -f
|
||||
cf stop transform-processor-rabbit && cf delete splitter-processor-rabbit -f
|
||||
cf stop log-sink-rabbit && cf delete log-sink-rabbit -f
|
||||
|
||||
cf logout
|
||||
|
||||
rm /tmp/http-source-route.txt
|
||||
rm /tmp/transform-processor-route.txt
|
||||
rm /tmp/httptransform-log-sink-route.txt
|
||||
|
||||
rm /tmp/http-source-rabbit.jar
|
||||
rm /tmp/transform-processor-rabbit.jar
|
||||
rm /tmp/log-sink-rabbit.jar
|
||||
|
||||
if [ "$BUILD_RETURN_VALUE" != 0 ]
|
||||
then
|
||||
echo "Early exit due to test failure in ticktock tests"
|
||||
duration=$SECONDS
|
||||
|
||||
echo "Total time: Build took $(($duration / 60)) minutes and $(($duration % 60)) seconds to complete."
|
||||
|
||||
exit $BUILD_RETURN_VALUE
|
||||
fi
|
||||
|
||||
echo "Prepare artifacts for http | splitter | log testing"
|
||||
|
||||
@@ -210,7 +285,7 @@ cf stop log-sink-rabbit
|
||||
|
||||
cf delete http-source-rabbit -f
|
||||
cf delete splitter-processor-rabbit -f
|
||||
cf delete httpsplitter-log-sink-rabbit -f
|
||||
cf delete log-sink-rabbit -f
|
||||
|
||||
cf logout
|
||||
|
||||
@@ -218,6 +293,10 @@ rm /tmp/http-source-route.txt
|
||||
rm /tmp/splitter-processor-route.txt
|
||||
rm /tmp/httpsplitter-log-sink-route.txt
|
||||
|
||||
rm /tmp/http-source-rabbit.jar
|
||||
rm /tmp/splitter-processor-rabbit.jar
|
||||
rm /tmp/log-sink-rabbit.jar
|
||||
|
||||
if [ "$BUILD_RETURN_VALUE" != 0 ]
|
||||
then
|
||||
echo "Early exit due to test failure in ticktock tests"
|
||||
@@ -250,6 +329,9 @@ cf logout
|
||||
rm /tmp/ticktock-time-source-route.txt
|
||||
rm /tmp/ticktock-log-sink-route.txt
|
||||
|
||||
rm /tmp/ticktock-time-source.jar
|
||||
rm /tmp/ticktock-log-sink.jar
|
||||
|
||||
if [ "$BUILD_RETURN_VALUE" != 0 ]
|
||||
then
|
||||
echo "Early exit due to test failure in ticktock tests"
|
||||
@@ -283,6 +365,9 @@ cf logout
|
||||
rm /tmp/ticktock-time-source-route131.txt
|
||||
rm /tmp/ticktock-log-sink-route131.txt
|
||||
|
||||
rm /tmp/ticktock-time-source131.jar
|
||||
rm /tmp/ticktock-log-sink131.jar
|
||||
|
||||
if [ "$BUILD_RETURN_VALUE" != 0 ]
|
||||
then
|
||||
echo "Early exit due to test failure in ticktock tests"
|
||||
@@ -312,6 +397,8 @@ cf logout
|
||||
|
||||
rm /tmp/uppercase-route.txt
|
||||
|
||||
rm /tmp/uppercase-transformer-rabbit.jar
|
||||
|
||||
if [ "$BUILD_RETURN_VALUE" != 0 ]
|
||||
then
|
||||
echo "Early exit due to test failure in uppercase transformer"
|
||||
@@ -350,6 +437,9 @@ rm /tmp/part-consumer1-route.txt
|
||||
rm /tmp/part-consumer2-route.txt
|
||||
rm /tmp/part-consumer3-route.txt
|
||||
|
||||
rm /tmp/partitioning-producer-rabbit.jar
|
||||
rm /tmp/partitioning-consumer-rabbit.jar
|
||||
|
||||
duration=$SECONDS
|
||||
|
||||
echo "Cumulative Build Time Across All Tests: Build took $(($duration / 60)) minutes and $(($duration % 60)) seconds to complete."
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2019 the original author or authors.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package sample.acceptance.tests;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
/**
|
||||
* @author Soby Chacko
|
||||
*/
|
||||
public class HttpTransformLogAcceptanceTests extends AbstractAcceptanceTests {
|
||||
|
||||
@Test
|
||||
public void testHttpTransformLog() {
|
||||
|
||||
String httpSourceUrl = System.getProperty("http.source.route");
|
||||
String transformProcessorUrl = System.getProperty("transform.processor.route");
|
||||
String logSinkUrl = System.getProperty("log.sink.route");
|
||||
|
||||
|
||||
boolean foundLogs = waitForLogEntry("HTTP Source", httpSourceUrl, "Started HttpSource");
|
||||
if(!foundLogs) {
|
||||
fail("Did not find the http source started logging message.");
|
||||
}
|
||||
|
||||
foundLogs = waitForLogEntry("Transform Processor", transformProcessorUrl, "Started TransformProcessor");
|
||||
if(!foundLogs) {
|
||||
fail("Did not find the transform processor started logging message.");
|
||||
}
|
||||
|
||||
foundLogs = waitForLogEntry("Log Sink", logSinkUrl, "Started LogSink");
|
||||
if(!foundLogs) {
|
||||
fail("Did not find the log sink started logging message.");
|
||||
}
|
||||
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
|
||||
restTemplate.postForObject(
|
||||
httpSourceUrl,
|
||||
"foobar", String.class);
|
||||
|
||||
verifyLogs(logSinkUrl, ": FOOBAR");
|
||||
}
|
||||
|
||||
void verifyLogs(String appUrl, String textToLookfor) {
|
||||
boolean foundMessage = waitForLogEntry("Log Sink", appUrl, textToLookfor);
|
||||
if (!foundMessage) {
|
||||
fail("Did not find the message - " + textToLookfor + " - in the logs");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user