diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..21c4e3f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "libs/loguru"] + path = libs/loguru + url = https://github.com/emilk/loguru.git +[submodule "libs/yaml-cpp"] + path = libs/yaml-cpp + url = https://github.com/jbeder/yaml-cpp.git +[submodule "libs/curlcpp"] + path = libs/curlcpp + url = https://github.com/JosephP91/curlcpp.git diff --git a/CMakeLists.txt b/CMakeLists.txt index d20b0ff..c07ef5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,33 +3,59 @@ project (Ship VERSION 0.1.0 LANGUAGES CXX C) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) include(defaultOptions) +FIND_PACKAGE(Threads REQUIRED) + IF(NOT TARGET Catch2) add_subdirectory(libs/Catch2 EXCLUDE_FROM_ALL) include(libs/Catch2/contrib/Catch.cmake) -ENDIF() - - - -IF (NOT TARGET CLI11) + ENDIF() + + add_compile_definitions(LOGURU_WITH_STREAMS SQLITE_THREADSAFE=2) + IF(NOT TARGET loguru) + add_subdirectory(libs/loguru EXCLUDE_FROM_ALL) + ENDIF() + + IF (NOT TARGET CLI11) set(CLI11_TESTING OFF CACHE BOOL "disable testing") add_subdirectory(libs/CLI11 EXCLUDE_FROM_ALL) + ENDIF() + + IF (NOT TARGET yaml-cpp) + set(YAML_CPP_BUILD_TESTS OFF CACHE INTERNAL "") + set(YAML_CPP_BUILD_TOOLS OFF CACHE INTERNAL "") + set(YAML_CPP_BUILD_CONTRIB OFF CACHE INTERNAL "") + set(YAML_CPP_INSTALL OFF CACHE INTERNAL "") + add_subdirectory(libs/yaml-cpp EXCLUDE_FROM_ALL) ENDIF() +# FIND_PACKAGE(yaml-cpp REQUIRED) - -# build with CC=clang-15 CXX=clang++-15 cmake -D CMAKE_BUILD_TYPE=DEBUG .. - - -add_library(kubecontrol STATIC - libs/kubecontrol/kubecontrol.hpp - src/kubecontrol/kubecontrol.cpp + + IF (NOT TARGET curlcpp) + # set(CLI11_TESTING OFF CACHE BOOL "disable testing") + add_subdirectory(libs/curlcpp EXCLUDE_FROM_ALL) + ENDIF() + + # IF (NOT TARGET rest-client) + # set(BUILD_SHARED_LIBS OFF CACHE BOOL "disable testing") + # add_subdirectory(libs/rest-client EXCLUDE_FROM_ALL) + # ENDIF() + + + # build with CC=clang-15 CXX=clang++-15 cmake -D CMAKE_BUILD_TYPE=DEBUG .. + + + add_library(kubecontrol STATIC + include/kubecontrol/kubecontrol.hpp + src/kubecontrol/kubecontrol.cpp ) target_link_libraries(kubecontrol -EntityLibrary - +yaml-cpp +curlcpp loguru +pthread ) target_include_directories(kubecontrol PUBLIC $ @@ -44,13 +70,13 @@ target_include_directories(kubecontrol PUBLIC # option(TEST_KUBECONTROL_LIBRARY "Turn running of application template specific tests off" ON) -IF (${TEST_ENTITIY_LIBRARY}) +IF (${TEST_KUBECONTROL_LIBRARY}) -# add_executable(test_SensorClass tests/test_SensorClass.cpp) -# target_link_libraries(test_SensorClass Catch2::Catch2 EntityLibrary loguru) -# catch_discover_tests(test_SensorClass) + add_executable(test_kubecontrol tests/test_kubecontrol.cpp) + target_link_libraries(test_kubecontrol Catch2::Catch2 kubecontrol loguru) + catch_discover_tests(test_kubecontrol) diff --git a/cmake/Jenkinsfile:Zone.Identifier b/cmake/Jenkinsfile:Zone.Identifier deleted file mode 100644 index e69de29..0000000 diff --git a/cmake/Modules/CheckParent.cmake:Zone.Identifier b/cmake/Modules/CheckParent.cmake:Zone.Identifier deleted file mode 100644 index e69de29..0000000 diff --git a/cmake/Modules/defaultOptions.cmake b/cmake/Modules/defaultOptions.cmake index 2e1ffd2..87653ba 100644 --- a/cmake/Modules/defaultOptions.cmake +++ b/cmake/Modules/defaultOptions.cmake @@ -3,7 +3,7 @@ find_package(Git) enable_testing() cxx_20() -build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" ) +# build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" ) add_code_coverage_all_targets(EXCLUDE ${PROJECT_SOURCE_DIR}/libs/* ${PROJECT_SOURCE_DIR}/test/*) TEST_BIG_ENDIAN(IS_BIG_ENDIAN) diff --git a/cmake/Modules/protobuf.cmake b/cmake/Modules/protobuf.cmake index e2fd5f4..d1d120f 100644 --- a/cmake/Modules/protobuf.cmake +++ b/cmake/Modules/protobuf.cmake @@ -1,3 +1,5 @@ + + function(protobuf_generate_cpp) set(OPTIONS) set(SINGLE_VALUE_KEYWORDS @@ -13,20 +15,22 @@ function(protobuf_generate_cpp) ${ARGN}) FILE(GLOB PROTO_FILES ${protobuf_PROTO_PATH}/*.proto) - set(PROTOC ${CMAKE_BINARY_DIR}/libs/protobuf/protoc) - # set(PROTOC protoc) + set(PROTOC ${CMAKE_BINARY_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/protoc) + message(STATUS "protoc path: " ${PROTOC}) FOREACH(proto ${PROTO_FILES}) FILE(TO_NATIVE_PATH ${proto} proto_native) get_filename_component(protoFILENAME ${proto} NAME_WLE ) get_filename_component(protoDIR ${proto} DIRECTORY) + message(STATUS "proto file path: " ${proto}) add_custom_command( OUTPUT "${protoDIR}/${protoFILENAME}.pb.cc" DEPENDS "${protoDIR}/${protoFILENAME}.proto" - COMMAND ${PROTOC} --cpp_out=${protoDIR} --proto_path=${protoDIR} --proto_path="${CMAKE_SOURCE_DIR}/libs/protobuf/src" "${protoDIR}/${protoFILENAME}.proto" - ) + COMMAND ${PROTOC} --cpp_out=${protoDIR} --proto_path=${protoDIR} --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/include/SimCore/Messages/Protos" --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/src" "${protoDIR}/${protoFILENAME}.proto" + + ) ENDFOREACH(proto) diff --git a/docs/config b/docs/config new file mode 100644 index 0000000..f191f47 --- /dev/null +++ b/docs/config @@ -0,0 +1,19 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ERXlPREV4TkRBMU9Wb1hEVE15TURFeU5qRXhOREExT1Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTU1aClpvTExtWVFVdm9pVWRuNzgrYkJCNUNYcGVJOHRzc2pkbmpCUU9kRW9kN2ZEUS9lZHlGWXlQaHJsZzFVVGVqajUKbHoxVHdWdVZVSWEzaTlpczZWdnZPdFkrWlBtSS9CNnUvdVpXNlJoVjhtN3pFQ0NjejRkTXNMUGQ3NXBqdlBaSwp3TFpEM0hjaCtFMXZMVDZSSUkybVpkV0FMY1REOHBUY0kvcHlHaHEzaEVKQko0NFZkMHcyYkFiQXViVVdoZ09oClo5WkhsSFVSeHFTUHc5bmZ1anY3RUFheU9GY2toVzNISnRkS2JLNEo5ZTQ3ZmQ2ai9KZDgvK0Q0OW5OOGhyZkIKR0hLaFVEQXhLSDZ5T2lFVEFNSXNtcWhmZTFlQlFra0ErdlJvN1FNUXBNMlIrVzE4ZmhNTzJDTFhjUStLdDQ0dwpwenpCUjY2ZnpCblB0cmh4T3BzQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZPOGJDOUFkZjVrRzFkaFJWb2tSVGFpbFFHY1RNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSitlelhTRngyZ0plSnV2cmNxRQppYjVBNnVwYm9xOXEyYVJFR3M3Q3FzL3NodjQ0VFFGMmFTRjNDUGhEdHhQWnFtMjUyZjZYNElYTGVjYVA1cDYvCnBZQTdOU1pzaGZIVFhLZ3pnOStWYUlrdWtWdzRQU1poQ3BxWkk5QXFhOHpTaXNDRndwQ1dieGtVcG8wR2JITk8KTmRUR1htbWRwYUt5NXUwMkw0dHorcXZiZmVTbzZHeHc2aWt6WnlGRk1BcDdzZUoxREpzcE1IdnFxb1g0V3k2cwp0S2haV09rMEU2RWZkUStvOWdCcFJ6R0prK0dsd2pwUlI2K1hJcWNKR05lMHBZVVZXTTRFVEFUcmlwRTVvaVFkCmpaRElycUwvRHQ0ZWwrWmh1cFU2M2haeHJ6QTE4b1pYUS9QaG5xU3AzbGdqYTZ3S05hcXo4L0YzWTZqVjloM2oKTUxnPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + server: https://192.168.252.5:6443 + name: kubernetes +contexts: +- context: + cluster: kubernetes + namespace: hwinkel + user: kubernetes-admin@kubernetes-hwinkel-token-user + name: hwinkel +current-context: hwinkel +kind: Config +preferences: {} +users: +- name: kubernetes-admin@kubernetes-hwinkel-token-user + user: + token: eyJhbGciOiJSUzI1NiIsImtpZCI6InJwN2R3a2NEWHJva0ptLVNFUnAxMnUxNEF3VUdmdURRTmw5VWZuM0NCZ3MifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJod2lua2VsIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imh3aW5rZWwtc2VjcmV0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Imh3aW5rZWwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJmNDNkNTc5NS1lNDFhLTQxOTYtODVkMS01YmNkZGIxNzFkYjkiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6aHdpbmtlbDpod2lua2VsIn0.TQCBkEIY0sEQjpy-3BP1SdXl94Ct-oAeD4VGNEOJEzDYBuU4Cn1fG32k2wAIgZemh6P-DcBhPk0VtCWCLYhWWwIe6FNo3FpqOxcDbu8QHlyD-Y3VnfSzKRHg9OKgUSWnc_Z5P9iBtilNQxnZp_wLOBW6TL8ZeECxeVtBBxUpYfoywSWS7mNpwxHcecP_U__LUU1tP7pYZ8OgDiSIH04CaTrQisTL-FGdcqOEYQhx4zoOyVQFWWYkfjG9oD-5zjtS29O0gckfvKLOu2y_K6RVR51szsquiJiHP1s_AcS-qq1-rXRqEpYRsLxRxr-dflL3aAjnLlPSYCwheQhjCa0fjQ diff --git a/include/kubecontrol/kubecontrol.hpp b/include/kubecontrol/kubecontrol.hpp index e69de29..2b37e7c 100644 --- a/include/kubecontrol/kubecontrol.hpp +++ b/include/kubecontrol/kubecontrol.hpp @@ -0,0 +1,14 @@ +#include +#include + +namespace kubecontrol +{ + class kubecontrol + { + public: + kubecontrol(std::string pathToKubectlConfig); + void getPods(); + + + }; +} \ No newline at end of file diff --git a/libs/curlcpp b/libs/curlcpp new file mode 160000 index 0000000..b7df778 --- /dev/null +++ b/libs/curlcpp @@ -0,0 +1 @@ +Subproject commit b7df7787d1b44b0f221d1812327db3e96f0477b7 diff --git a/libs/loguru b/libs/loguru new file mode 160000 index 0000000..4adaa18 --- /dev/null +++ b/libs/loguru @@ -0,0 +1 @@ +Subproject commit 4adaa185883e3c04da25913579c451d3c32cfac1 diff --git a/libs/yaml-cpp b/libs/yaml-cpp new file mode 160000 index 0000000..35b4498 --- /dev/null +++ b/libs/yaml-cpp @@ -0,0 +1 @@ +Subproject commit 35b4498026b6293bfadc75f9ee325cb16d6975af diff --git a/src/kubecontrol/kubecontrol.cpp b/src/kubecontrol/kubecontrol.cpp index e69de29..e25d4c7 100644 --- a/src/kubecontrol/kubecontrol.cpp +++ b/src/kubecontrol/kubecontrol.cpp @@ -0,0 +1,27 @@ +#include + +#include +#include + +#include + + +namespace kubecontrol +{ + kubecontrol::kubecontrol(std::string pathToKubectlConfig) + { + + YAML::Node config = YAML::LoadFile(pathToKubectlConfig); + LOG_S(INFO)<< "test"; + curl::curl_easy easy; + easy.add("http://"); + easy.add(1L); + } + + void kubecontrol::getPods() + { + + + } + +} \ No newline at end of file diff --git a/test/test_kubecontrol.cpp b/tests/test_kubecontrol.cpp similarity index 55% rename from test/test_kubecontrol.cpp rename to tests/test_kubecontrol.cpp index fd65fa1..102723f 100644 --- a/test/test_kubecontrol.cpp +++ b/tests/test_kubecontrol.cpp @@ -1,17 +1,16 @@ -#include -#include -#include -#include + #define CATCH_CONFIG_MAIN #include -// SimCore::Identifier OwnID, SimCore::Identifier ParentID, SimCore::SensorKinds SensorKind,std::uint32_t GroundTruthPort, std::uint32_t ParentPort,std::string ParentIPAddress +#include SCENARIO("Testing the SimCore Sensor") { +kubecontrol::kubecontrol kc("../docs/config"); + GIVEN("different Attributes for a Track in different forms") { @@ -20,7 +19,7 @@ SCENARIO("Testing the SimCore Sensor") THEN("check if Track attributes are correct") { - // REQUIRE(testOperator == true); + REQUIRE(true == true);