From 057ebfddf7ff3eece09f495252990fee1bc2b1ab Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Wed, 20 Jun 2018 15:20:21 +0200
Subject: [PATCH] update tests for authorizer

---
 .../producer/dummy-data-producer/check_linux.sh    |  2 +-
 .../producer/dummy-data-producer/check_windows.bat |  2 +-
 receiver/src/requests_dispatcher.cpp               |  1 +
 .../full_chain/simple_chain/check_linux.sh         | 14 ++++++++------
 .../full_chain/simple_chain/check_windows.bat      | 14 ++++++++------
 .../check_monitoring/check_linux.sh                | 13 ++++++++-----
 .../transfer_single_file/check_linux.sh            | 12 +++++++-----
 .../transfer_single_file/check_windows.bat         | 12 +++++++-----
 tests/automatic/settings/receiver.json.tpl.lin     |  3 ++-
 tests/automatic/settings/receiver.json.tpl.win     |  3 ++-
 10 files changed, 45 insertions(+), 31 deletions(-)

diff --git a/examples/producer/dummy-data-producer/check_linux.sh b/examples/producer/dummy-data-producer/check_linux.sh
index 53b377620..e7301d29f 100644
--- a/examples/producer/dummy-data-producer/check_linux.sh
+++ b/examples/producer/dummy-data-producer/check_linux.sh
@@ -12,7 +12,7 @@ rm -rf files
 
 mkdir files
 
-$@ files 11 4 4 1 2>&1 | grep Rate
+$@ files beamtime_id 11 4 4 1 2>&1 | grep Rate
 
 
 ls -ln files/0.bin | awk '{ print $5 }'| grep 11264
diff --git a/examples/producer/dummy-data-producer/check_windows.bat b/examples/producer/dummy-data-producer/check_windows.bat
index da2b59829..5cf58de58 100644
--- a/examples/producer/dummy-data-producer/check_windows.bat
+++ b/examples/producer/dummy-data-producer/check_windows.bat
@@ -2,7 +2,7 @@ SET folder=files
 
 mkdir %folder%
 
-"%1" %folder% 11 4 4 1 2>&1 | findstr "Rate" || goto :error
+"%1" %folder% beamtime_id 11 4 4 1 2>&1 | findstr "Rate" || goto :error
 
 FOR /F "usebackq" %%A IN ('%folder%\0.bin') DO set size=%%~zA
 if %size% NEQ 11264 goto :error
diff --git a/receiver/src/requests_dispatcher.cpp b/receiver/src/requests_dispatcher.cpp
index d5703c878..7639027eb 100644
--- a/receiver/src/requests_dispatcher.cpp
+++ b/receiver/src/requests_dispatcher.cpp
@@ -33,6 +33,7 @@ Error RequestsDispatcher::ProcessRequest(const std::unique_ptr<Request>& request
     handle_err = request->Handle(statistics__);
     GenericNetworkResponse generic_response;
     generic_response.error_code = GetNetworkCodeFromError(handle_err);
+    strcpy(generic_response.message, "");
     if (handle_err) {
         log__->Error("error processing request from " + producer_uri_ + " - " + handle_err->Explain());
         strncpy(generic_response.message, handle_err->Explain().c_str(), kMaxMessageSize);
diff --git a/tests/automatic/full_chain/simple_chain/check_linux.sh b/tests/automatic/full_chain/simple_chain/check_linux.sh
index 11c022e52..b92ce9c97 100644
--- a/tests/automatic/full_chain/simple_chain/check_linux.sh
+++ b/tests/automatic/full_chain/simple_chain/check_linux.sh
@@ -4,11 +4,11 @@ set -e
 
 trap Cleanup EXIT
 
-broker_database_name=test_run
+beamtime_id=asapo_test
 monitor_database_name=db_test
 proxy_address=127.0.0.1:8400
 
-receiver_folder=/tmp/asapo/receiver/files
+receiver_folder=/tmp/asapo/receiver/files/${beamtime_id}
 
 Cleanup() {
     echo cleanup
@@ -17,15 +17,17 @@ Cleanup() {
     nomad stop receiver
     nomad stop discovery
     nomad stop broker
+    nomad stop authorizer
 #    kill $producerid
-    echo "db.dropDatabase()" | mongo ${broker_database_name}
+    echo "db.dropDatabase()" | mongo ${beamtime_id}
     influx -execute "drop database ${monitor_database_name}"
 }
 
 influx -execute "create database ${monitor_database_name}"
-echo "db.${broker_database_name}.insert({dummy:1})" | mongo ${broker_database_name}
+echo "db.${beamtime_id}.insert({dummy:1})" | mongo ${beamtime_id}
 
 nomad run nginx.nmd
+nomad run authorizer.nmd
 nomad run receiver.nmd
 nomad run discovery.nmd
 nomad run broker.nmd
@@ -34,8 +36,8 @@ sleep 1
 
 #producer
 mkdir -p ${receiver_folder}
-$1 localhost:8400 100 1000 4 0 &
+$1 localhost:8400 ${beamtime_id} 100 1000 4 0 &
 #producerid=`echo $!`
 
 
-$2 ${proxy_address} ${broker_database_name} 2 | grep "Processed 1000 file(s)"
+$2 ${proxy_address} ${beamtime_id} 2 | grep "Processed 1000 file(s)"
diff --git a/tests/automatic/full_chain/simple_chain/check_windows.bat b/tests/automatic/full_chain/simple_chain/check_windows.bat
index 2c6f52915..9be98343b 100644
--- a/tests/automatic/full_chain/simple_chain/check_windows.bat
+++ b/tests/automatic/full_chain/simple_chain/check_windows.bat
@@ -1,11 +1,12 @@
 SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
-set broker_database_name=test_run
-SET receiver_folder="c:\tmp\asapo\receiver\files"
+set beamtime_id="asapo_test"
+SET receiver_folder="c:\tmp\asapo\receiver\files\%beamtime_id%"
 set proxy_address="127.0.0.1:8400"
 
-echo db.%broker_database_name%.insert({dummy:1}) | %mongo_exe% %broker_database_name%
+echo db.%beamtime_id%.insert({dummy:1}) | %mongo_exe% %beamtime_id%
 
 c:\opt\consul\nomad run receiver.nmd
+c:\opt\consul\nomad run authorizer.nmd
 c:\opt\consul\nomad run discovery.nmd
 c:\opt\consul\nomad run broker.nmd
 c:\opt\consul\nomad run nginx.nmd
@@ -14,11 +15,11 @@ ping 1.0.0.0 -n 10 -w 100 > nul
 
 REM producer
 mkdir %receiver_folder%
-start /B "" "%1" %proxy_address% 100 1000 4 0
+start /B "" "%1" %proxy_address% %beamtime_id% 100 1000 4 0
 ping 1.0.0.0 -n 1 -w 100 > nul
 
 REM worker
-"%2" %proxy_address% %broker_database_name% 2 | findstr /c:"Processed 1000 file(s)"  || goto :error
+"%2" %proxy_address% %beamtime_id% 2 | findstr /c:"Processed 1000 file(s)"  || goto :error
 
 
 goto :clean
@@ -31,8 +32,9 @@ exit /b 1
 c:\opt\consul\nomad stop receiver
 c:\opt\consul\nomad stop discovery
 c:\opt\consul\nomad stop broker
+c:\opt\consul\nomad stop authorizer
 c:\opt\consul\nomad stop nginx
 rmdir /S /Q %receiver_folder%
-echo db.dropDatabase() | %mongo_exe% %broker_database_name%
+echo db.dropDatabase() | %mongo_exe% %beamtime_id%
 
 
diff --git a/tests/automatic/producer_receiver/check_monitoring/check_linux.sh b/tests/automatic/producer_receiver/check_monitoring/check_linux.sh
index 936ca16de..5f20a5e25 100644
--- a/tests/automatic/producer_receiver/check_monitoring/check_linux.sh
+++ b/tests/automatic/producer_receiver/check_monitoring/check_linux.sh
@@ -1,8 +1,8 @@
 #!/usr/bin/env bash
 
 database_name=db_test
-mongo_database_name=test_run
-receiver_folder=/tmp/asapo/receiver/files
+beamtime_id=asapo_test
+receiver_folder=/tmp/asapo/receiver/files/${beamtime_id}
 set -e
 
 trap Cleanup EXIT
@@ -12,8 +12,9 @@ Cleanup() {
 	influx -execute "drop database ${database_name}"
     nomad stop receiver
     nomad stop discovery
+    nomad stop authorizer
     nomad stop nginx
-    echo "db.dropDatabase()" | mongo ${mongo_database_name}
+    echo "db.dropDatabase()" | mongo ${beamtime_id}
     rm -rf ${receiver_folder}
 }
 
@@ -21,14 +22,16 @@ mkdir -p ${receiver_folder}
 
 influx -execute "create database ${database_name}"
 
+nomad run authorizer.nmd
 nomad run receiver.nmd
 nomad run discovery.nmd
 nomad run nginx.nmd
 
 sleep 1
 
-$1 localhost:8400 100 112 4  0
+$1 localhost:8400 ${beamtime_id} 100 112 4  0
 
 sleep 1
 
-influx -execute "select sum(n_requests) from statistics" -database=${database_name} -format=json | jq .results[0].series[0].values[0][1] | grep 112
+# should be 116 requests (112 data transfers and 4 authorizations)
+influx -execute "select sum(n_requests) from statistics" -database=${database_name} -format=json  | jq .results[0].series[0].values[0][1] | grep 116
diff --git a/tests/automatic/producer_receiver/transfer_single_file/check_linux.sh b/tests/automatic/producer_receiver/transfer_single_file/check_linux.sh
index d2b4f5f5a..cfda6bff5 100644
--- a/tests/automatic/producer_receiver/transfer_single_file/check_linux.sh
+++ b/tests/automatic/producer_receiver/transfer_single_file/check_linux.sh
@@ -5,29 +5,31 @@ set -e
 trap Cleanup EXIT
 
 database_name=db_test
-mongo_database_name=test_run
-receiver_folder=/tmp/asapo/receiver/files
+beamtime_id=asapo_test
+receiver_folder=/tmp/asapo/receiver/files/${beamtime_id}
 
 Cleanup() {
 	echo cleanup
 	rm -rf ${receiver_folder}
     nomad stop receiver
     nomad stop discovery
+    nomad stop authorizer
     nomad stop nginx
-    echo "db.dropDatabase()" | mongo ${mongo_database_name}
+    echo "db.dropDatabase()" | mongo ${beamtime_id}
     influx -execute "drop database ${database_name}"
 }
 
 influx -execute "create database ${database_name}"
-echo "db.${mongo_database_name}.insert({dummy:1})" | mongo ${mongo_database_name}
+echo "db.${beamtime_id}.insert({dummy:1})" | mongo ${beamtime_id}
 
+nomad run authorizer.nmd
 nomad run nginx.nmd
 nomad run receiver.nmd
 nomad run discovery.nmd
 
 mkdir -p ${receiver_folder}
 
-$1 localhost:8400 100 1 1  0
+$1 localhost:8400 ${beamtime_id} 100 1 1  0
 
 
 ls -ln ${receiver_folder}/1.bin | awk '{ print $5 }'| grep 102400
diff --git a/tests/automatic/producer_receiver/transfer_single_file/check_windows.bat b/tests/automatic/producer_receiver/transfer_single_file/check_windows.bat
index cb26780f3..c069a5930 100644
--- a/tests/automatic/producer_receiver/transfer_single_file/check_windows.bat
+++ b/tests/automatic/producer_receiver/transfer_single_file/check_windows.bat
@@ -1,11 +1,12 @@
 SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
-SET database_name=test_run
-SET receiver_folder="c:\tmp\asapo\receiver\files"
+SET beamtime_id=asapo_test
+SET receiver_folder="c:\tmp\asapo\receiver\files\%beamtime_id%"
 
-echo db.%database_name%.insert({dummy:1})" | %mongo_exe% %database_name%
+echo db.%beamtime_id%.insert({dummy:1})" | %mongo_exe% %beamtime_id%
 
 
 c:\opt\consul\nomad run receiver.nmd
+c:\opt\consul\nomad run authorizer.nmd
 c:\opt\consul\nomad run discovery.nmd
 c:\opt\consul\nomad run nginx.nmd
 
@@ -13,7 +14,7 @@ ping 1.0.0.0 -n 1 -w 100 > nul
 
 mkdir %receiver_folder%
 
-%1 localhost:8400 100 1 1 0
+%1 localhost:8400 %beamtime_id% 100 1 1 0
 
 ping 1.0.0.0 -n 1 -w 100 > nul
 
@@ -30,7 +31,8 @@ exit /b 1
 c:\opt\consul\nomad stop receiver
 c:\opt\consul\nomad stop discovery
 c:\opt\consul\nomad stop nginx
+c:\opt\consul\nomad stop authorizer
 rmdir /S /Q %receiver_folder%
-echo db.dropDatabase() | %mongo_exe% %database_name%
+echo db.dropDatabase() | %mongo_exe% %beamtime_id%
 
 
diff --git a/tests/automatic/settings/receiver.json.tpl.lin b/tests/automatic/settings/receiver.json.tpl.lin
index 8d98fd1ab..399449cdd 100644
--- a/tests/automatic/settings/receiver.json.tpl.lin
+++ b/tests/automatic/settings/receiver.json.tpl.lin
@@ -2,7 +2,8 @@
   "MonitorDbAddress":"localhost:8086",
   "MonitorDbName": "db_test",
   "BrokerDbAddress":"localhost:27017",
-  "BrokerDbName": "test_run",
+  "AuthorizationServer": "localhost:8400/authorizer",
+  "AuthorizationInterval": 10000,
   "ListenPort": {{ env "NOMAD_PORT_recv" }},
   "Tag": "{{ env "NOMAD_ADDR_recv" }}",
   "WriteToDisk":true,
diff --git a/tests/automatic/settings/receiver.json.tpl.win b/tests/automatic/settings/receiver.json.tpl.win
index d4cb5e038..58cacee7c 100644
--- a/tests/automatic/settings/receiver.json.tpl.win
+++ b/tests/automatic/settings/receiver.json.tpl.win
@@ -2,7 +2,8 @@
   "MonitorDbAddress":"localhost:8086",
   "MonitorDbName": "db_test",
   "BrokerDbAddress":"localhost:27017",
-  "BrokerDbName": "test_run",
+  "AuthorizationServer": "localhost:8400/authorizer",
+  "AuthorizationInterval": 10000,
   "ListenPort": {{ env "NOMAD_PORT_recv" }},
   "Tag": "{{ env "NOMAD_ADDR_recv" }}",
   "WriteToDisk":true,
-- 
GitLab