From 96b72e42ea0f76bc17ef0e8a6e7b54f91596c459 Mon Sep 17 00:00:00 2001 From: Carsten Patzke <carsten.patzke@desy.de> Date: Thu, 16 Apr 2020 21:46:20 +0200 Subject: [PATCH] Added receiver tcp and fabric nomad files --- CMakeModules/prepare_asapo.cmake | 14 +++--- common/cpp/include/common/networking.h | 1 + config/nomad/receiver_fabric.nmd.in | 47 +++++++++++++++++++ .../{receiver.nmd.in => receiver_tcp.nmd.in} | 2 +- consumer/api/cpp/src/data_broker.cpp | 1 + .../net_server/test_rds_fabric_server.cpp | 4 +- .../settings/receiver_fabric.json.tpl.lin.in | 25 ++++++++++ ...pl.lin.in => receiver_tcp.json.tpl.lin.in} | 3 +- ...pl.win.in => receiver_tcp.json.tpl.win.in} | 3 +- 9 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 config/nomad/receiver_fabric.nmd.in rename config/nomad/{receiver.nmd.in => receiver_tcp.nmd.in} (93%) create mode 100644 tests/automatic/settings/receiver_fabric.json.tpl.lin.in rename tests/automatic/settings/{receiver.json.tpl.lin.in => receiver_tcp.json.tpl.lin.in} (89%) rename tests/automatic/settings/{receiver.json.tpl.win.in => receiver_tcp.json.tpl.win.in} (89%) diff --git a/CMakeModules/prepare_asapo.cmake b/CMakeModules/prepare_asapo.cmake index ce5c33d92..981593512 100644 --- a/CMakeModules/prepare_asapo.cmake +++ b/CMakeModules/prepare_asapo.cmake @@ -27,22 +27,25 @@ function(prepare_asapo) endif() if (WIN32) - configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver.json.tpl.win.in receiver.json.tpl @ONLY) - configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_win.nmd nginx_kill.nmd @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_tcp.json.tpl.win.in receiver_tcp.json.tpl @ONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/authorizer_settings.json.tpl.win authorizer.json.tpl COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/start_services.bat start_services.bat COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/stop_services.bat stop_services.bat COPYONLY) + configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_tcp.nmd.in receiver_tcp.nmd @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_win.nmd nginx_kill.nmd @ONLY) else() - configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver.json.tpl.lin.in receiver.json.tpl @ONLY) - configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_lin.nmd nginx_kill.nmd @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_tcp.json.tpl.lin.in receiver_tcp.json.tpl @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_fabric.json.tpl.lin.in receiver_fabric.json.tpl @ONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/authorizer_settings.json.tpl.lin authorizer.json.tpl COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/start_services.sh start_services.sh COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/stop_services.sh stop_services.sh COPYONLY) + configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_tcp.nmd.in receiver_tcp.nmd @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_fabric.nmd.in receiver_fabric.nmd @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_lin.nmd nginx_kill.nmd @ONLY) endif() - configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver.nmd.in receiver.nmd @ONLY) configure_file(${CMAKE_SOURCE_DIR}/config/nomad/discovery.nmd.in discovery.nmd @ONLY) configure_file(${CMAKE_SOURCE_DIR}/config/nomad/authorizer.nmd.in authorizer.nmd @ONLY) configure_file(${CMAKE_SOURCE_DIR}/config/nomad/file_transfer.nmd.in file_transfer.nmd @ONLY) @@ -54,7 +57,6 @@ function(prepare_asapo) configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/nginx.conf.tpl nginx.conf.tpl COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx.nmd.in nginx.nmd @ONLY) - endfunction() macro(configure_files srcDir destDir) diff --git a/common/cpp/include/common/networking.h b/common/cpp/include/common/networking.h index 8f69453cf..84f296f3d 100644 --- a/common/cpp/include/common/networking.h +++ b/common/cpp/include/common/networking.h @@ -14,6 +14,7 @@ typedef uint64_t NetworkRequestId; enum class NetworkConnectionType { kAsapoTcp, // ASAPOs TCP (Multiple connections for parallel data transfers) + kFabric, // Fabric connection (Primarily used for InfiniBand verbs) }; enum Opcode : uint8_t { diff --git a/config/nomad/receiver_fabric.nmd.in b/config/nomad/receiver_fabric.nmd.in new file mode 100644 index 000000000..0c4d21747 --- /dev/null +++ b/config/nomad/receiver_fabric.nmd.in @@ -0,0 +1,47 @@ +job "receiver" { + datacenters = ["dc1"] + + type = "service" + + group "group" { + count = 1 + + task "receiver" { + driver = "raw_exec" + + config { + command = "@RECEIVER_DIR@/@RECEIVER_NAME@", + args = ["${NOMAD_TASK_DIR}/receiver.json"] + } + + resources { + cpu = 500 # 500 MHz + memory = 256 # 256MB + network { + port "recv" {} + port "recv_ds" {} + } + } + + service { + name = "asapo-receiver" + port = "recv" + check { + name = "alive" + type = "tcp" + interval = "10s" + timeout = "2s" + initial_status = "passing" + } + } + + template { + source = "@WORK_DIR@/receiver_fabric.json.tpl" + destination = "local/receiver.json" + change_mode = "signal" + change_signal = "SIGHUP" + } + + } + } +} diff --git a/config/nomad/receiver.nmd.in b/config/nomad/receiver_tcp.nmd.in similarity index 93% rename from config/nomad/receiver.nmd.in rename to config/nomad/receiver_tcp.nmd.in index 282208f29..0d563934e 100644 --- a/config/nomad/receiver.nmd.in +++ b/config/nomad/receiver_tcp.nmd.in @@ -36,7 +36,7 @@ job "receiver" { } template { - source = "@WORK_DIR@/receiver.json.tpl" + source = "@WORK_DIR@/receiver_tcp.json.tpl" destination = "local/receiver.json" change_mode = "signal" change_signal = "SIGHUP" diff --git a/consumer/api/cpp/src/data_broker.cpp b/consumer/api/cpp/src/data_broker.cpp index 1f3b1db63..451dd17fc 100644 --- a/consumer/api/cpp/src/data_broker.cpp +++ b/consumer/api/cpp/src/data_broker.cpp @@ -25,6 +25,7 @@ std::unique_ptr<DataBroker> Create(const std::string& source_name, } +// TODO Add NetworkConnectionType std::unique_ptr<DataBroker> DataBrokerFactory::CreateServerBroker(std::string server_name, std::string source_path, bool has_filesystem, SourceCredentials source, Error* error) noexcept { diff --git a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp index 9e44b551b..ff15633f4 100644 --- a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp +++ b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp @@ -98,8 +98,8 @@ TEST_F(RdsFabricServerTests, Initialize_Error_DoubleInitialize) { )); EXPECT_CALL(mock_fabric_server, GetAddress()).WillOnce(Return( - "TestAddress" - )); + "TestAddress" + )); Error err = rds_server.Initialize(); ASSERT_THAT(rds_server.server__, Ne(nullptr)); diff --git a/tests/automatic/settings/receiver_fabric.json.tpl.lin.in b/tests/automatic/settings/receiver_fabric.json.tpl.lin.in new file mode 100644 index 000000000..3c7ec5ef1 --- /dev/null +++ b/tests/automatic/settings/receiver_fabric.json.tpl.lin.in @@ -0,0 +1,25 @@ +{ + "PerformanceDbServer":"localhost:8086", + "PerformanceDbName": "db_test", + "DatabaseServer":"auto", + "DiscoveryServer": "localhost:8400/asapo-discovery", + "DataServer": { + "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}", + "NThreads": 2, + "ListenPort": {{ env "NOMAD_PORT_recv_ds" }}, + "NetworkMode": ["fabric"] + }, + "DataCache": { + "Use": @RECEIVER_USE_CACHE@, + "SizeGB": 1, + "ReservedShare": 10 + }, + "AuthorizationServer": "localhost:8400/asapo-authorizer", + "AuthorizationInterval": 1000, + "ListenPort": {{ env "NOMAD_PORT_recv" }}, + "Tag": "{{ env "NOMAD_ADDR_recv" }}", + "WriteToDisk": @RECEIVER_WRITE_TO_DISK@, + "ReceiveToDiskThresholdMB":50, + "WriteToDb": true, + "LogLevel" : "debug" + } diff --git a/tests/automatic/settings/receiver.json.tpl.lin.in b/tests/automatic/settings/receiver_tcp.json.tpl.lin.in similarity index 89% rename from tests/automatic/settings/receiver.json.tpl.lin.in rename to tests/automatic/settings/receiver_tcp.json.tpl.lin.in index 1177861e1..4414e4692 100644 --- a/tests/automatic/settings/receiver.json.tpl.lin.in +++ b/tests/automatic/settings/receiver_tcp.json.tpl.lin.in @@ -6,7 +6,8 @@ "DataServer": { "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}", "NThreads": 2, - "ListenPort": {{ env "NOMAD_PORT_recv_ds" }} + "ListenPort": {{ env "NOMAD_PORT_recv_ds" }}, + "NetworkMode": ["tcp"] }, "DataCache": { "Use": @RECEIVER_USE_CACHE@, diff --git a/tests/automatic/settings/receiver.json.tpl.win.in b/tests/automatic/settings/receiver_tcp.json.tpl.win.in similarity index 89% rename from tests/automatic/settings/receiver.json.tpl.win.in rename to tests/automatic/settings/receiver_tcp.json.tpl.win.in index 02fdd657b..b2afbf0d4 100644 --- a/tests/automatic/settings/receiver.json.tpl.win.in +++ b/tests/automatic/settings/receiver_tcp.json.tpl.win.in @@ -9,7 +9,8 @@ "DataServer": { "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}", "NThreads": 2, - "ListenPort": {{ env "NOMAD_PORT_recv_ds" }} + "ListenPort": {{ env "NOMAD_PORT_recv_ds" }}, + "NetworkMode": ["tcp"] }, "DataCache": { "Use": @RECEIVER_USE_CACHE@, -- GitLab