diff --git a/.gitignore b/.gitignore index 1e78577332eab730f22156280545fc4f0484928f..005f5fbce704c564ffd17f71971fd02faa6a99e1 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,7 @@ asapo_tools/pkg # *.rpm +#version files + +common/cpp/include/common/version.h +common/go/src/asapo_common/version/version_lib.go \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 65114f8c551b076b82f027d86194aecb8166e56c..b1159c604495f220217409423392ef2491c4fd8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "GNU") SET(BUILD_SHARED_LIBS OFF) ENDIF(WIN32) + #TODO: Better way then GLOBAL PROPERTY IF(WIN32) find_package(Threads REQUIRED) @@ -88,3 +89,4 @@ if(BUILD_DOCS) include(doxygen) endif() +include(prepare_version) \ No newline at end of file diff --git a/CMakeModules/prepare_version.cmake b/CMakeModules/prepare_version.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f0704fcada9cd6576d8e187d6ddb3cd39f852c2a --- /dev/null +++ b/CMakeModules/prepare_version.cmake @@ -0,0 +1,7 @@ +execute_process(COMMAND git describe --tags --dirty OUTPUT_VARIABLE VERSION) +string(STRIP ${VERSION} VERSION) + +string(TIMESTAMP TIMESTAMP "%H:%M:%S %d.%m.%Y UTC" UTC) + +configure_file(${PROJECT_SOURCE_DIR}/common/cpp/include/common/version.h.in ${PROJECT_SOURCE_DIR}/common/cpp/include/common/version.h @ONLY) +configure_file(${PROJECT_SOURCE_DIR}/common/go/src/asapo_common/version/version_lib.go.in ${PROJECT_SOURCE_DIR}/common/go/src/asapo_common/version/version_lib.go @ONLY) diff --git a/asapo_tools/src/asapo_tools/main/asapo.go b/asapo_tools/src/asapo_tools/main/asapo.go index e326889315ffd4f4c324a83bc646b79aa09acb92..66d5829ec67bd6b966a938b7940b3119505e9539 100644 --- a/asapo_tools/src/asapo_tools/main/asapo.go +++ b/asapo_tools/src/asapo_tools/main/asapo.go @@ -4,7 +4,7 @@ import ( "flag" "fmt" "os" - "asapo_tools/version" + "asapo_common/version" "asapo_tools/cli" ) @@ -14,7 +14,7 @@ var ( func main() { - if ret := version.ShowVersion(os.Stdout, "asapo"); ret { + if ret := version.ShowVersion(os.Stdout, "ASAPO"); ret { return } diff --git a/asapo_tools/src/asapo_tools/version/version.go b/asapo_tools/src/asapo_tools/version/version.go deleted file mode 100644 index e2427a17c6038e422fb6c7b102562dd254043f33..0000000000000000000000000000000000000000 --- a/asapo_tools/src/asapo_tools/version/version.go +++ /dev/null @@ -1,23 +0,0 @@ -package version - -import ( - "flag" - "fmt" - "io" - "os" -) - -var version, buildTime, gitCommit, shortVersion string - -func ShowVersion(w io.Writer, name string) bool { - flags := flag.NewFlagSet("version", flag.ExitOnError) - flag.Bool("version", false, "Print version information") // to have it in main help - flVersion := flags.Bool("version", false, "Print version information") - flags.Bool("help", false, "Print usage") // define help flag but ignore it - flags.Parse(os.Args[1:]) - if *flVersion { - fmt.Fprintf(w, "%s version %s, build time %s\n", name, version, buildTime) - return true - } - return false -} diff --git a/authorizer/src/asapo_authorizer/main/authorizer.go b/authorizer/src/asapo_authorizer/main/authorizer.go index 0916ddbed565ec670066af8df0720a69e413a414..9f4329909333d6dac5c88966ccbc398497856941 100644 --- a/authorizer/src/asapo_authorizer/main/authorizer.go +++ b/authorizer/src/asapo_authorizer/main/authorizer.go @@ -5,6 +5,7 @@ package main import ( log "asapo_common/logger" "asapo_authorizer/server" + "asapo_common/version" "flag" "os" ) @@ -16,6 +17,10 @@ func PrintUsage() { func main() { var fname = flag.String("config", "", "config file path") + if ret := version.ShowVersion(os.Stdout, "ASAPO Authorizer"); ret { + return + } + log.SetSoucre("authorizer") flag.Parse() diff --git a/authorizer/src/asapo_authorizer/server/server_nottested.go b/authorizer/src/asapo_authorizer/server/server_nottested.go index 6ad0c98f35e819a7c6d4f491dff4829702fcc5d1..54c2fb20a31cc7b455a9f6a0b4247a0184192ebc 100644 --- a/authorizer/src/asapo_authorizer/server/server_nottested.go +++ b/authorizer/src/asapo_authorizer/server/server_nottested.go @@ -5,6 +5,7 @@ package server import ( log "asapo_common/logger" "asapo_common/utils" + "asapo_common/version" "errors" "net/http" "strconv" @@ -12,6 +13,7 @@ import ( func Start() { mux := utils.NewRouter(listRoutes) + log.Info("Starting ASAPO Authorizer, version " + version.GetVersion()) log.Info("Listening on port: " + strconv.Itoa(settings.Port)) log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP))) } diff --git a/broker/src/asapo_broker/main/broker.go b/broker/src/asapo_broker/main/broker.go index e4b9c6e742c5d1f865c8b3c204aedc438926ed85..f9a41942ccc4a60893202d9e319ed066c73b6aca 100644 --- a/broker/src/asapo_broker/main/broker.go +++ b/broker/src/asapo_broker/main/broker.go @@ -6,6 +6,7 @@ import ( "asapo_broker/database" "asapo_broker/server" log "asapo_common/logger" + "asapo_common/version" "flag" "os" ) @@ -21,6 +22,10 @@ func PrintUsage() { func main() { var fname = flag.String("config", "", "config file path") + if ret := version.ShowVersion(os.Stdout, "ASAPO Broker"); ret { + return + } + log.SetSoucre("broker") flag.Parse() if *fname == "" { diff --git a/broker/src/asapo_broker/server/server_nottested.go b/broker/src/asapo_broker/server/server_nottested.go index c9febf74b9fe37065d7f49387c912f67cf5f786e..943277aa75da290758fc6124952a806c8a18e4b1 100644 --- a/broker/src/asapo_broker/server/server_nottested.go +++ b/broker/src/asapo_broker/server/server_nottested.go @@ -5,6 +5,7 @@ package server import ( log "asapo_common/logger" "asapo_common/utils" + "asapo_common/version" "errors" "net/http" "strconv" @@ -19,6 +20,7 @@ func StartStatistics() { func Start() { StartStatistics() mux := utils.NewRouter(listRoutes) + log.Info("Starting Asapo Broker, version " + version.GetVersion()) log.Info("Listening on port: " + strconv.Itoa(settings.Port)) log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP))) } diff --git a/common/cpp/CMakeLists.txt b/common/cpp/CMakeLists.txt index 6f1350d101ddf101d72672d30c0a3b7ffa0e2f0b..05ba02232fe27e9483cb7b705636d5ab3418f3de 100644 --- a/common/cpp/CMakeLists.txt +++ b/common/cpp/CMakeLists.txt @@ -16,7 +16,8 @@ if(BUILD_MONGODB_CLIENTLIB) endif() install(DIRECTORY ${ASAPO_CXX_COMMON_INCLUDE_DIR}/common - DESTINATION ${CMAKE_INSTALL_PREFIX}/include ) + DESTINATION ${CMAKE_INSTALL_PREFIX}/include + PATTERN "*.h.in" EXCLUDE) install(DIRECTORY ${ASAPO_CXX_COMMON_INCLUDE_DIR}/logger DESTINATION ${CMAKE_INSTALL_PREFIX}/include ) diff --git a/common/cpp/include/common/version.h.in b/common/cpp/include/common/version.h.in new file mode 100644 index 0000000000000000000000000000000000000000..1ca92fd870aeecf79f17f29907c7b3d452cee070 --- /dev/null +++ b/common/cpp/include/common/version.h.in @@ -0,0 +1,21 @@ +#ifndef ASAPO_VERSION_H +#define ASAPO_VERSION_H + +#include <iostream> +#include "string.h" + +namespace asapo { + +const char kVersion[] = "@VERSION@"; + +inline void ExitAfterPrintVersionIfNeeded(std::string prefix,int argc, char* argv[]) { + if (argc == 2 && strcmp(argv[1], "-v") == 0) { + std::cout << prefix << ", version " << kVersion << std::endl; + exit(0); + } +} + +} + + +#endif //ASAPO_VERSION_H diff --git a/common/cpp/src/system_io/system_io.h b/common/cpp/src/system_io/system_io.h index 00ff32d82a051055fee93afb1d0832c4df7a5439..48c614927db890d3ece91b0b2ad97b7e4a7b9468 100644 --- a/common/cpp/src/system_io/system_io.h +++ b/common/cpp/src/system_io/system_io.h @@ -15,6 +15,11 @@ typedef SSIZE_T ssize_t; #include "../../../../../../../../usr/include/netinet/in.h" #endif +#ifdef __APPLE__ +# define MSG_NOSIGNAL 0 +#endif + + namespace asapo { class SystemIO final : public IO { diff --git a/common/go/src/asapo_common/version/version.go b/common/go/src/asapo_common/version/version.go new file mode 100644 index 0000000000000000000000000000000000000000..d4674f37bddf4e84eaaec6cde2686ed6e68f306a --- /dev/null +++ b/common/go/src/asapo_common/version/version.go @@ -0,0 +1,24 @@ +package version + +import ( + "flag" + "fmt" + "io" +) + +var version string + +func GetVersion() string { + return version +} + +func ShowVersion(w io.Writer, name string) bool { + + flVersion := flag.Bool("v", false, "Print version information") + flag.Parse() + if *flVersion { + fmt.Fprintf(w, "%s, version %s\n", name, version) + return true + } + return false +} diff --git a/asapo_tools/src/asapo_tools/version/version_lib.go.in b/common/go/src/asapo_common/version/version_lib.go.in similarity index 65% rename from asapo_tools/src/asapo_tools/version/version_lib.go.in rename to common/go/src/asapo_common/version/version_lib.go.in index 3fe1989dbbc62d3515284e43bd2c3e415e874471..2dcfeaeeeccfd566d7bbf1bb69bacead466ab5e1 100644 --- a/asapo_tools/src/asapo_tools/version/version_lib.go.in +++ b/common/go/src/asapo_common/version/version_lib.go.in @@ -3,8 +3,5 @@ package version // Default build-time variable for library-import. // This file is overridden on build with build-time informations. func init(){ - gitCommit = "@VERSION_SHA1@" version = "@VERSION@" - shortVersion = "@VERSION_SHORT@" - buildTime = "@TIMESTAMP@" } diff --git a/deploy/nomad_jobs/asapo-brokers.nmd.in b/deploy/nomad_jobs/asapo-brokers.nmd.in index e601184374f7d8a1085bfdc7800cddfc2a1c3d0d..4c5a3040dc85a96f250cc2c9c35306421ae2f51b 100644 --- a/deploy/nomad_jobs/asapo-brokers.nmd.in +++ b/deploy/nomad_jobs/asapo-brokers.nmd.in @@ -24,7 +24,7 @@ job "asapo-brokers" { config { network_mode = "host" dns_servers = ["127.0.0.1"] - image = "yakser/asapo-broker:feature_ha" + image = "yakser/asapo-broker:develop" force_pull = true volumes = ["local/config.json:/var/lib/broker/config.json"] logging { diff --git a/deploy/nomad_jobs/asapo-receivers.nmd.in b/deploy/nomad_jobs/asapo-receivers.nmd.in index 8d58581771321d3fe839dcc85f417ec0800e0378..4159d9791a33a9d9b7aa89997bb4606aeed315e1 100644 --- a/deploy/nomad_jobs/asapo-receivers.nmd.in +++ b/deploy/nomad_jobs/asapo-receivers.nmd.in @@ -24,7 +24,7 @@ job "asapo-receivers" { config { network_mode = "host" dns_servers = ["127.0.0.1"] - image = "yakser/asapo-receiver:feature_ha" + image = "yakser/asapo-receiver:develop" force_pull = true volumes = ["local/config.json:/var/lib/receiver/config.json", "/bldocuments/support/asapo/data:/var/lib/receiver/data"] diff --git a/deploy/nomad_jobs/asapo-services.nmd.in b/deploy/nomad_jobs/asapo-services.nmd.in index 3e31d425cfd06563a69c4f73a6e64805dbef9f52..3be75045c272db6d04878040082d464f557d4581 100644 --- a/deploy/nomad_jobs/asapo-services.nmd.in +++ b/deploy/nomad_jobs/asapo-services.nmd.in @@ -12,7 +12,7 @@ job "asapo-services" { config { network_mode = "host" dns_servers = ["127.0.0.1"] - image = "yakser/asapo-authorizer:feature_ha" + image = "yakser/asapo-authorizer:develop" force_pull = true volumes = ["local/config.json:/var/lib/authorizer/config.json", "/bldocuments/support/asapo/beamtime_beamline_mapping.txt:/var/lib/authorizer/beamtime_beamline_mapping.txt", @@ -71,7 +71,7 @@ job "asapo-services" { config { network_mode = "host" dns_servers = ["127.0.0.1"] - image = "yakser/asapo-discovery:feature_ha" + image = "yakser/asapo-discovery:develop" force_pull = true volumes = ["local/config.json:/var/lib/discovery/config.json"] logging { diff --git a/discovery/src/asapo_discovery/main/discovery.go b/discovery/src/asapo_discovery/main/discovery.go index d78d64898b6203fe7d4bab24e8303eb2a384187a..e4bd21e4a37f6a11be84fa447dfa9d97ea6b3993 100644 --- a/discovery/src/asapo_discovery/main/discovery.go +++ b/discovery/src/asapo_discovery/main/discovery.go @@ -5,6 +5,7 @@ package main import ( "flag" log "asapo_common/logger" + "asapo_common/version" "asapo_discovery/server" "os" "asapo_discovery/request_handler" @@ -29,6 +30,11 @@ func PrintUsage() { func main() { var fname = flag.String("config", "", "config file path") + if ret := version.ShowVersion(os.Stdout, "ASAPO Discovery"); ret { + return + } + + log.SetSoucre("discovery") flag.Parse() if *fname == "" { diff --git a/discovery/src/asapo_discovery/server/server_nottested.go b/discovery/src/asapo_discovery/server/server_nottested.go index 3b98cf5ea9b77caef8853d806fa5a7d40539198a..091db8e202b96c25b357139a147c236b1a3a3493 100644 --- a/discovery/src/asapo_discovery/server/server_nottested.go +++ b/discovery/src/asapo_discovery/server/server_nottested.go @@ -5,12 +5,14 @@ package server import ( log "asapo_common/logger" "asapo_common/utils" + "asapo_common/version" "net/http" "strconv" ) func Start() { mux := utils.NewRouter(listRoutes) + log.Info("Starting ASAPO Discovery, version " + version.GetVersion()) log.Info("Listening on port: " + strconv.Itoa(settings.Port)) log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP))) } diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp index aec527a91d55bdb13f0d55e3f02b604e891fed3e..80b010f4c242bf0fd14a3906e3e127e3a082c1d2 100644 --- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp +++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp @@ -35,6 +35,7 @@ void PrintCommandArguments(const Args& args) { void ProcessCommandArguments(int argc, char* argv[], Args* args) { + asapo::ExitAfterPrintVersionIfNeeded("Dummy Data Producer", argc, argv); if (argc != 8) { std::cout << "Usage: " << argv[0] << diff --git a/examples/worker/getnext_broker/check_linux.sh b/examples/worker/getnext_broker/check_linux.sh index ed90a1acba61ea67c9c6034145cf38b10fee0ca5..04ee45752f3f75bc95434575d6a680f8cb1346f9 100644 --- a/examples/worker/getnext_broker/check_linux.sh +++ b/examples/worker/getnext_broker/check_linux.sh @@ -24,6 +24,8 @@ do echo 'db.data.insert({"_id":'$i',"size":100,"name":"'$i'","lastchange":1})' | mongo ${database_name} done +sleep 1 + $@ 127.0.0.1:8400 $database_name 2 $token_test_run 1000 | grep "Processed 3 file(s)" diff --git a/examples/worker/getnext_broker/getnext_broker.cpp b/examples/worker/getnext_broker/getnext_broker.cpp index 51484cf7f6b8cff4b4516c21f2d912423fc263bd..84cbe726fd0d444d3ab1c76d14b830eab050767b 100644 --- a/examples/worker/getnext_broker/getnext_broker.cpp +++ b/examples/worker/getnext_broker/getnext_broker.cpp @@ -79,6 +79,7 @@ int ReadAllData(const Params& params, uint64_t* duration_ms) { } int main(int argc, char* argv[]) { + asapo::ExitAfterPrintVersionIfNeeded("GetNext Broker Example", argc, argv); if (argc != 6) { std::cout << "Usage: " + std::string{argv[0]} +" <server> <run_name> <nthreads> <token> <timeout ms>" << std::endl; exit(EXIT_FAILURE); diff --git a/examples/worker/process_folder/process_folder.cpp b/examples/worker/process_folder/process_folder.cpp index 2e8f7da92f92f6410573c31c22a0f9787a074b1f..63a6955dd066b4c616e3b054c5aea1551b6dae54 100644 --- a/examples/worker/process_folder/process_folder.cpp +++ b/examples/worker/process_folder/process_folder.cpp @@ -8,6 +8,7 @@ #include "asapo_worker.h" + using std::chrono::high_resolution_clock; using asapo::Error; @@ -83,6 +84,8 @@ void PrintStatistics(const Statistics& statistics) { int main(int argc, char* argv[]) { + asapo::ExitAfterPrintVersionIfNeeded("Process Folder Broker Example", argc, argv); + std::string folder = ProcessCommandArguments(argc, argv); auto broker = CreateBroker(folder); diff --git a/producer/api/include/asapo_producer.h b/producer/api/include/asapo_producer.h index 84309f32bc72456d26342c0d50b7798a9a7a46e9..1d9ea25d79275075942ec2ba0184be24d6335691 100644 --- a/producer/api/include/asapo_producer.h +++ b/producer/api/include/asapo_producer.h @@ -2,6 +2,8 @@ #define ASAPO_ASAPO_PRODUCER_H #include "common/io_error.h" +#include "common/version.h" + #include "producer/producer.h" diff --git a/producer/event_monitor_producer/CMakeLists.txt b/producer/event_monitor_producer/CMakeLists.txt index fb44c774f3654b14d4dda1d2b7da2c14c966f7a0..cebdbdb98a1791deb97476b9d0d3e59fb8e11da7 100644 --- a/producer/event_monitor_producer/CMakeLists.txt +++ b/producer/event_monitor_producer/CMakeLists.txt @@ -5,8 +5,9 @@ set(SOURCE_FILES src/event_detector_factory.cpp src/folder_event_detector.cpp ) - -IF(WIN32) +IF (APPLE) + #do nothing +ELSEIF(WIN32) set(SOURCE_FILES ${SOURCE_FILES} src/system_folder_watch_windows.cpp src/single_folder_watch_windows.cpp src/watch_io.cpp @@ -15,7 +16,7 @@ IF(WIN32) ) ELSEIF(UNIX) set(SOURCE_FILES ${SOURCE_FILES} src/system_folder_watch_linux.cpp src/inotify_event.cpp src/inotify_linux.cpp) -ENDIF(WIN32) +ENDIF(APPLE) @@ -55,13 +56,14 @@ set(TEST_SOURCE_FILES unittests/test_event_detector_factory.cpp unittests/test_folder_event_detector.cpp ) - -IF(UNIX) +IF (APPLE) + #do nothing +ELSEIF(UNIX) set(TEST_SOURCE_FILES ${TEST_SOURCE_FILES} unittests/test_system_folder_watch_linux.cpp) ELSE() set(TEST_SOURCE_FILES ${TEST_SOURCE_FILES} unittests/test_system_folder_watch_windows.cpp unittests/test_single_folder_watch_windows.cpp) -ENDIF(UNIX) +ENDIF(APPLE) set(TEST_LIBRARIES "${TARGET_NAME}") diff --git a/producer/event_monitor_producer/src/main_eventmon.cpp b/producer/event_monitor_producer/src/main_eventmon.cpp index 18d23aa95bc38c0a6935f3e3f55804a10c36179e..4191bfbd4648f0642a825a839fdb33a93156d2ac 100644 --- a/producer/event_monitor_producer/src/main_eventmon.cpp +++ b/producer/event_monitor_producer/src/main_eventmon.cpp @@ -15,6 +15,7 @@ #include "preprocessor/definitions.h" #include "io/io_factory.h" +#include "common/version.h" using asapo::Producer; using asapo::EventMonConfigFactory; @@ -73,6 +74,8 @@ void SignalHandler(int signal) { int main (int argc, char* argv[]) { + asapo::ExitAfterPrintVersionIfNeeded("ASAPO Event Monitor", argc, argv); + auto err = ReadConfigFile(argc, argv); if (err) { std::cerr << "cannot read config file: " << err->Explain() << std::endl; @@ -93,7 +96,7 @@ int main (int argc, char* argv[]) { auto producer = CreateProducer(); asapo::EventDetectorFactory factory; auto event_detector = factory.CreateEventDetector(); - + logger->Info(std::string("starting ASAPO Event Monitor, version ") + asapo::kVersion); err = event_detector->StartMonitoring(); if (err) { logger->Error(err->Explain()); diff --git a/producer/event_monitor_producer/src/system_folder_watch.h b/producer/event_monitor_producer/src/system_folder_watch.h index e81687f5cccaeb10620a61514c10d8af734385af..2dcf28a595c7882bb48d80f09a69c677de10a12e 100644 --- a/producer/event_monitor_producer/src/system_folder_watch.h +++ b/producer/event_monitor_producer/src/system_folder_watch.h @@ -5,9 +5,14 @@ #include "system_folder_watch_windows.h" #endif -#if defined(__linux__) || defined (__APPLE__) +#if defined(__linux__) #include "system_folder_watch_linux.h" #endif +#if defined(__APPLE__) +#include "system_folder_watch_macos_dummy.h" +#endif + + #endif //ASAPO_SYSTEM_FODLER_WATCH_H diff --git a/producer/event_monitor_producer/src/system_folder_watch_macos_dummy.h b/producer/event_monitor_producer/src/system_folder_watch_macos_dummy.h new file mode 100644 index 0000000000000000000000000000000000000000..d644b7c9c6ab8474029f4ec6cd27aee748ea012d --- /dev/null +++ b/producer/event_monitor_producer/src/system_folder_watch_macos_dummy.h @@ -0,0 +1,24 @@ +#ifndef ASAPO_SYSTEM_FOLDER_WATCH_MACOS_DUMMY_H +#define ASAPO_SYSTEM_FOLDER_WATCH_MACOS_DUMMY_H + +#include "common.h" +#include "preprocessor/definitions.h" + + +// dummy file to make it compile on macos + + +namespace asapo { + +class SystemFolderWatch { + public: + VIRTUAL Error StartFolderMonitor(const std::string& root_folder, const std::vector<std::string>& monitored_folders) { + return nullptr; + }; + VIRTUAL FilesToSend GetFileList(Error* err) { + return {}; + }; +}; + +} +#endif //ASAPO_SYSTEM_FOLDER_WATCH_MACOS_DUMMY_H diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index f40dc1e2f606b2c2063398f8cdb06ebf0da7006f..72d45a960aeb3ff907b929fcf52c4f581e18d910 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -5,6 +5,7 @@ #include "receiver_config.h" #include "receiver_logger.h" +#include "common/version.h" asapo::Error ReadConfigFile(int argc, char* argv[]) { if (argc != 2) { @@ -16,6 +17,7 @@ asapo::Error ReadConfigFile(int argc, char* argv[]) { } int main (int argc, char* argv[]) { + asapo::ExitAfterPrintVersionIfNeeded("ASAPO Receiver", argc, argv); auto err = ReadConfigFile(argc, argv); const auto& logger = asapo::GetDefaultReceiverLogger(); @@ -33,6 +35,7 @@ int main (int argc, char* argv[]) { auto* receiver = new asapo::Receiver(); + logger->Info(std::string("starting receiver, version ") + asapo::kVersion); logger->Info("listening on " + address); receiver->Listen(address, &err); if(err) { diff --git a/receiver/src/request_handler_authorize.cpp b/receiver/src/request_handler_authorize.cpp index 597584601c01f0646920239b85a55574c2418418..00f932b8270983e447636d5a6071168ea6b96726 100644 --- a/receiver/src/request_handler_authorize.cpp +++ b/receiver/src/request_handler_authorize.cpp @@ -48,6 +48,9 @@ Error RequestHandlerAuthorize::Authorize(Request* request, const char* beamtime_ (err = parser.GetString("Beamline", &beamline_)); if (err) { return ErrorFromServerResponse(err, code); + } else { + log__->Debug(std::string("authorized connection from ") + request->GetOriginUri() + " beamline: " + + beamline_ + ", beamtime id: " + beamtime_id_); } return nullptr; diff --git a/receiver/unittests/test_request.cpp b/receiver/unittests/test_request.cpp index c0bf0497cf8c31a45a468a2dc70f59ff6fb978cb..8224ea20743a2d250c2c711a09171ffb96a4bbd4 100644 --- a/receiver/unittests/test_request.cpp +++ b/receiver/unittests/test_request.cpp @@ -162,8 +162,7 @@ TEST_F(RequestTests, HandleProcessesRequests) { TEST_F(RequestTests, DataIsNullAtInit) { auto& data = request->GetData(); - - ASSERT_THAT(data, Eq(nullptr)); + ASSERT_THAT(data.get(), Eq(nullptr)); } TEST_F(RequestTests, GetDataIsNotNullptr) { diff --git a/receiver/unittests/test_request_handler_authorizer.cpp b/receiver/unittests/test_request_handler_authorizer.cpp index 3fabc8000510bdcf6a569771144b35a612e29231..f6523f2815639fb68b8c12f85b311904ef18f1fe 100644 --- a/receiver/unittests/test_request_handler_authorizer.cpp +++ b/receiver/unittests/test_request_handler_authorizer.cpp @@ -110,8 +110,12 @@ class AuthorizerHandlerTests : public Test { HasSubstr(expected_beamtime_id), HasSubstr(expected_producer_uri), HasSubstr(expected_authorization_server)))); + } else { + EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("authorized"), + HasSubstr(expected_beamtime_id), + HasSubstr(expected_beamline), + HasSubstr(expected_producer_uri)))); } - } diff --git a/tests/automatic/bug_fixes/producer_send_after_restart/check_windows.bat b/tests/automatic/bug_fixes/producer_send_after_restart/check_windows.bat index 162097f75524e5e86f98dfd5296e7eea57c08362..05389ce825258b4ef30726fa9e0bbc6b147e255f 100644 --- a/tests/automatic/bug_fixes/producer_send_after_restart/check_windows.bat +++ b/tests/automatic/bug_fixes/producer_send_after_restart/check_windows.bat @@ -41,6 +41,8 @@ c:\opt\consul\nomad stop receiver c:\opt\consul\nomad run receiver.nmd ping 1.0.0.0 -n 3 -w 100 > nul +ping 1.0.0.0 -n 3 -w 100 > nul +ping 1.0.0.0 -n 3 -w 100 > nul echo hello > c:\tmp\asapo\test_in\test1\file3 diff --git a/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad b/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad index 26a71f6fa974bfa8d180b5d79b829d003c8dca60..2a4f017ee69708a5a50ff91daf1c86f01058fce9 100644 --- a/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad +++ b/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad @@ -90,92 +90,92 @@ job "asapo-test" { } #linux -} + group "worker-linux1" { + + constraint { + attribute = "${attr.kernel.name}" + value = "linux" + } -group "worker-linux1" { + # constraint { + # attribute = "${meta.location}" + # operator = "!=" + # value = "petra3" + # } - constraint { - attribute = "${attr.kernel.name}" - value = "linux" - } + count = 1 - # constraint { - # attribute = "${meta.location}" - # operator = "!=" - # value = "petra3" - # } - - count = 1 - - task "worker-linux" { - driver = "raw_exec" - - config { - command = "local/getnext_broker" - args = [ - "psana002:8400", - "asapo_test1", - "16", - "oTsKsj8i6WcW_gVzeIFvZCtSfMErjDELJEyAI23n7Ik=", - "30000"] - } + task "worker-linux" { + driver = "raw_exec" - resources { - cpu = 5000 - memory = 128 - network { - mbits = 10000 + config { + command = "local/getnext_broker" + args = [ + "psana002:8400", + "asapo_test1", + "16", + "oTsKsj8i6WcW_gVzeIFvZCtSfMErjDELJEyAI23n7Ik=", + "30000"] } - } - artifact { - source = "http://nims.desy.de/extra/asapo/getnext_broker" + resources { + cpu = 5000 + memory = 128 + network { + mbits = 10000 + } + } + + artifact { + source = "http://nims.desy.de/extra/asapo/getnext_broker" + } } + } + # worker-linux1 -} -# worker-linux1 + group "worker-linux2" { + + constraint { + attribute = "${attr.kernel.name}" + value = "linux" + } -group "worker-linux2" { + # constraint { + # attribute = "${meta.location}" + # operator = "!=" + # value = "petra3" + # } - constraint { - attribute = "${attr.kernel.name}" - value = "linux" - } + count = 1 - # constraint { - # attribute = "${meta.location}" - # operator = "!=" - # value = "petra3" - # } - - count = 1 - - task "worker-linux" { - driver = "raw_exec" - - config { - command = "local/getnext_broker" - args = [ - "psana002:8400", - "asapo_test2", - "16", - "yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=", - "30000"] - } - resources { - cpu = 5000 - memory = 128 - network { - mbits = 10000 + task "worker-linux" { + driver = "raw_exec" + + config { + command = "local/getnext_broker" + args = [ + "psana002:8400", + "asapo_test2", + "16", + "yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=", + "30000"] + } + resources { + cpu = 5000 + memory = 128 + network { + mbits = 10000 + } } - } - artifact { - source = "http://nims.desy.de/extra/asapo/getnext_broker" + artifact { + source = "http://nims.desy.de/extra/asapo/getnext_broker" + } } + } } diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_filemon.nomad b/tests/manual/tests_via_nomad/asapo-test_filegen_filemon.nomad index 6ea2313dc6130d8462d884828da7454757ab72c8..00dedc361778932f6023a90bac315cfc7e7f9a9a 100644 --- a/tests/manual/tests_via_nomad/asapo-test_filegen_filemon.nomad +++ b/tests/manual/tests_via_nomad/asapo-test_filegen_filemon.nomad @@ -61,7 +61,7 @@ job "asapo-test" { "10M", "10000", "120", - "/tmp/asapo/test_in/test_folder/file_lin"] + "/run/user/data/file_lin"] } artifact { diff --git a/tests/manual/tests_via_nomad/asapo-test_filemon_producer_toreceiver.nomad b/tests/manual/tests_via_nomad/asapo-test_filemon_producer_toreceiver.nomad index fcde0f3442f59396c0bd793f89dec6ac922f8d1d..b4356226dc48cf81b8ef4711adf60d52be010def 100644 --- a/tests/manual/tests_via_nomad/asapo-test_filemon_producer_toreceiver.nomad +++ b/tests/manual/tests_via_nomad/asapo-test_filemon_producer_toreceiver.nomad @@ -92,8 +92,8 @@ job "asapo-filemon-producer" { "Mode":"tcp", "NThreads":8, "LogLevel":"debug", - "RootMonitoredFolder":"/tmp/asapo/test_in", - "MonitoredSubFolders":["test_folder"], + "RootMonitoredFolder":"/run/user", + "MonitoredSubFolders":["data"], "IgnoreExtentions":["tmp"], "RemoveAfterSend":true } diff --git a/worker/api/cpp/include/asapo_worker.h b/worker/api/cpp/include/asapo_worker.h index d07b021b3fa39687022e3a4514613fa31f538636..f00cdaeaf2b2245249a649fbe1e6d125db6e0fbb 100644 --- a/worker/api/cpp/include/asapo_worker.h +++ b/worker/api/cpp/include/asapo_worker.h @@ -2,5 +2,6 @@ #define ASAPO_ASAPO_WORKER_H #include "worker/data_broker.h" +#include "common/version.h" #endif //ASAPO_ASAPO_WORKER_H