diff --git a/CMakeModules/prepare_asapo.cmake b/CMakeModules/prepare_asapo.cmake index ce5c33d92ff39fb8ee26332194512844b64c79e7..981593512e060dcb2ebbf1e2d4cf940b5ddc2909 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 8f69453cf620b4a5f1d3d1152a17271c87095066..84f296f3df4f32445b4bbfd502afc0d62c827f34 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 0000000000000000000000000000000000000000..0c4d2174727eb6bfca65167b4925001188601a81 --- /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 282208f29ed6b52887a9628d69ab86d90d45c04b..0d563934e9741538930dd51b7f90907ece08bb59 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 1f3b1db63f68a21992a76d3283271c5c96e13007..451dd17fce9d379722906e9d84a5ffc18085550f 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 9e44b551b7301e8367751edb11aad86dca6cdc33..ff15633f4734cd5a4c7a79d5c45a1a2865286699 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 0000000000000000000000000000000000000000..3c7ec5ef1e2e0b8d9353e5c475af2a2f39ab8e03 --- /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 1177861e12ba54dcf0e0a0e0c4c21cb30a079283..4414e4692d60a7f9180b0781f73a8889d9215b33 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 02fdd657bff47c4f8988b677e57092917e5db1e9..b2afbf0d4a22b17512ff7e7e09ad70c001fe29aa 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@,