test rpc
continuous-integration/drone/push Build is failing Details

rpc
Bastien OLLIER 2 years ago
parent 10e02389e5
commit 858860b9ae

@ -5,6 +5,14 @@ project(planificador)
add_compile_options(-Wall -Wextra -pedantic) add_compile_options(-Wall -Wextra -pedantic)
include(FetchContent) include(FetchContent)
FetchContent_Declare(
rpclib
GIT_REPOSITORY https://github.com/rpclib/rpclib.git
GIT_TAG master
)
FetchContent_MakeAvailable(rpclib)
FetchContent_Declare( FetchContent_Declare(
tomlplusplus tomlplusplus
GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git
@ -13,7 +21,18 @@ FetchContent_Declare(
FetchContent_MakeAvailable(tomlplusplus) FetchContent_MakeAvailable(tomlplusplus)
file(GLOB nameFile "src/*.cpp") file(GLOB nameFile "src/*.cpp")
add_library(rpclib_lib STATIC IMPORTED)
set_target_properties(rpclib_lib PROPERTIES IMPORTED_LOCATION "${rpclib_BINARY_DIR}/librpc.a")
add_executable(planificador src/host.cpp src/runner.cpp src/config.cpp src/main.cpp) add_executable(planificador src/host.cpp src/runner.cpp src/config.cpp src/main.cpp)
target_compile_features(planificador PUBLIC cxx_std_17) target_compile_features(planificador PUBLIC cxx_std_17)
include_directories(${tomlplusplus_SOURCE_DIR}/include) include_directories(${tomlplusplus_SOURCE_DIR}/include)
include_directories(${rpclib_SOURCE_DIR}/include)
SET(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(planificador PRIVATE Threads::Threads)
# Lier votre exécutable avec la bibliothèque rpclib
target_link_libraries(planificador PRIVATE rpclib_lib)

@ -9,15 +9,9 @@ void host::addConnection(sk::runner& runner) {
connections += 1; connections += 1;
} }
const std::string& host::getIp() const { const std::string &host::getIp() const { return ip; }
return ip;
}
unsigned int host::getNbConnections() const { unsigned int host::getNbConnections() const { return connections; }
return connections;
}
unsigned int host::getNbConnectionsMax() const { unsigned int host::getNbConnectionsMax() const { return connectionsMax; }
return connectionsMax;
}
} }

@ -1,8 +1,8 @@
#pragma once #pragma once
#include <string>
#include <queue>
#include "runner.hpp" #include "runner.hpp"
#include <queue>
#include <string>
namespace sk { namespace sk {
class host { class host {

@ -31,6 +31,8 @@ sk::runner_backend detect_backend() {
return sk::runner_backend::BubbleWrap; return sk::runner_backend::BubbleWrap;
} }
#include "rpc/server.h"
int main() { int main() {
std::vector<sk::host> listsHosts = sk::config::loadHostsFromToml("../conf.toml"); std::vector<sk::host> listsHosts = sk::config::loadHostsFromToml("../conf.toml");
std::priority_queue<sk::host> hosts(listsHosts.begin(), listsHosts.end()); std::priority_queue<sk::host> hosts(listsHosts.begin(), listsHosts.end());
@ -39,8 +41,7 @@ int main() {
std::cerr << "Pas de host" << std::endl; std::cerr << "Pas de host" << std::endl;
} }
std::queue<sk::program> queue; /*queue.push(sk::program{"echo $(( 1 + 2 ))", "ghcr.io/moshell-lang/moshell:master"});
queue.push(sk::program{"echo $(( 1 + 2 ))", "ghcr.io/moshell-lang/moshell:master"});
sk::runner runner(detect_backend()); sk::runner runner(detect_backend());
while (!queue.empty()) { while (!queue.empty()) {
@ -49,6 +50,28 @@ int main() {
std::cout << "out: " << res.out << "\n"; std::cout << "out: " << res.out << "\n";
std::cout << "err: " << res.err << "\n"; std::cout << "err: " << res.err << "\n";
queue.pop(); queue.pop();
} }*/
rpc::server srv(8080);
srv.bind("add", [](const std::string& prog, const std::string& image) {
std::cout<<"log"<<std::endl;
std::queue<sk::program> queue;
queue.push(sk::program{prog, image});
sk::runner runner(detect_backend());
const sk::program &current = queue.front();
sk::run_result res = runner.run_blocking(current);
std::cout << "out: " << res.out << "\n";
std::cout << "err: " << res.err << "\n";
queue.pop();
return res.out;
});
srv.run();
return 0; return 0;
} }

Loading…
Cancel
Save