Loading Builder/include/Builder.h +2 −3 Original line number Diff line number Diff line #pragma once #include <boost/asio.hpp> #include <boost/asio/io_context.hpp> namespace asio = boost::asio; Loading @@ -8,9 +8,8 @@ class Builder { public: explicit Builder(); // Start the IO service void run(); private: asio::io_service io_service; asio::io_context io_context; }; Builder/src/Builder.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -4,10 +4,10 @@ Builder::Builder() { // Full build connection - this will not run until the io_service is started asio::spawn(io_service, asio::spawn(io_context, [&](asio::yield_context yield) { boost::system::error_code error; Messenger client(io_service, "8080", yield, error); Messenger client(io_context, "8080", yield, error); if (error) { throw std::runtime_error("Error connecting to client: " + error.message()); } Loading Loading @@ -38,7 +38,7 @@ Builder::Builder() { } // Create a pipe to communicate with our build subprocess bp::async_pipe std_pipe(io_service); bp::async_pipe std_pipe(io_context); // Launch our build as a subprocess // We use "unbuffer" to fake the build into thinking it has a real TTY, which the command output eventually will Loading Loading @@ -83,5 +83,5 @@ Builder::Builder() { } void Builder::run() { io_service.run(); io_context.run(); } BuilderQueue/include/Connection.h +3 −27 Original line number Diff line number Diff line Loading @@ -3,9 +3,9 @@ #include "BuilderQueue.h" #include "Logger.h" #include "Messenger.h" #include <boost/asio/spawn.hpp> namespace asio = boost::asio; using asio::ip::tcp; class Connection : public std::enable_shared_from_this<Connection> { public: Loading @@ -16,31 +16,7 @@ public: logger::write("Ending connection"); } void start(asio::io_context& io_context) { try { auto self(shared_from_this()); logger::write("Established connection"); asio::spawn(io_context, [this, self](asio::yield_context yield) { boost::system::error_code error; auto request = messenger.async_read_string(yield, error); if (error) { logger::write("Request failure" + error.message()); } else if (request == "checkout_builder_request") { checkout_builder(yield, error); } else { logger::write("Invalid request message received: " + request); } }); } catch (std::exception& ex) { logger::write(std::string() + "Connection exception: " + ex.what()); } catch(...) { logger::write("Unknown connection exception caught!"); } } void start(asio::io_context &io_context); private: BuilderQueue &queue; Loading BuilderQueue/include/OpenStackBuilder.h +7 −3 Original line number Diff line number Diff line Loading @@ -8,7 +8,11 @@ namespace asio = boost::asio; namespace OpenStackBuilder { std::set<BuilderData> get_builders(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); std::set<BuilderData> get_builders(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); void request_create(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); void destroy(BuilderData builder, asio::io_context& io_context, asio::yield_context yield, boost::system::error_code &error); void destroy(BuilderData builder, asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); }; No newline at end of file BuilderQueue/include/ReservationRequest.h +2 −3 Original line number Diff line number Diff line Loading @@ -11,8 +11,7 @@ class ReservationRequest { public: explicit ReservationRequest(BuilderQueue &queue) : queue(queue), reservation(queue.enter()) {} reservation(queue.enter()) {} ~ReservationRequest() { reservation.set_request_complete(); Loading Loading
Builder/include/Builder.h +2 −3 Original line number Diff line number Diff line #pragma once #include <boost/asio.hpp> #include <boost/asio/io_context.hpp> namespace asio = boost::asio; Loading @@ -8,9 +8,8 @@ class Builder { public: explicit Builder(); // Start the IO service void run(); private: asio::io_service io_service; asio::io_context io_context; };
Builder/src/Builder.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -4,10 +4,10 @@ Builder::Builder() { // Full build connection - this will not run until the io_service is started asio::spawn(io_service, asio::spawn(io_context, [&](asio::yield_context yield) { boost::system::error_code error; Messenger client(io_service, "8080", yield, error); Messenger client(io_context, "8080", yield, error); if (error) { throw std::runtime_error("Error connecting to client: " + error.message()); } Loading Loading @@ -38,7 +38,7 @@ Builder::Builder() { } // Create a pipe to communicate with our build subprocess bp::async_pipe std_pipe(io_service); bp::async_pipe std_pipe(io_context); // Launch our build as a subprocess // We use "unbuffer" to fake the build into thinking it has a real TTY, which the command output eventually will Loading Loading @@ -83,5 +83,5 @@ Builder::Builder() { } void Builder::run() { io_service.run(); io_context.run(); }
BuilderQueue/include/Connection.h +3 −27 Original line number Diff line number Diff line Loading @@ -3,9 +3,9 @@ #include "BuilderQueue.h" #include "Logger.h" #include "Messenger.h" #include <boost/asio/spawn.hpp> namespace asio = boost::asio; using asio::ip::tcp; class Connection : public std::enable_shared_from_this<Connection> { public: Loading @@ -16,31 +16,7 @@ public: logger::write("Ending connection"); } void start(asio::io_context& io_context) { try { auto self(shared_from_this()); logger::write("Established connection"); asio::spawn(io_context, [this, self](asio::yield_context yield) { boost::system::error_code error; auto request = messenger.async_read_string(yield, error); if (error) { logger::write("Request failure" + error.message()); } else if (request == "checkout_builder_request") { checkout_builder(yield, error); } else { logger::write("Invalid request message received: " + request); } }); } catch (std::exception& ex) { logger::write(std::string() + "Connection exception: " + ex.what()); } catch(...) { logger::write("Unknown connection exception caught!"); } } void start(asio::io_context &io_context); private: BuilderQueue &queue; Loading
BuilderQueue/include/OpenStackBuilder.h +7 −3 Original line number Diff line number Diff line Loading @@ -8,7 +8,11 @@ namespace asio = boost::asio; namespace OpenStackBuilder { std::set<BuilderData> get_builders(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); std::set<BuilderData> get_builders(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); void request_create(asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); void destroy(BuilderData builder, asio::io_context& io_context, asio::yield_context yield, boost::system::error_code &error); void destroy(BuilderData builder, asio::io_context &io_context, asio::yield_context yield, boost::system::error_code &error); }; No newline at end of file
BuilderQueue/include/ReservationRequest.h +2 −3 Original line number Diff line number Diff line Loading @@ -11,8 +11,7 @@ class ReservationRequest { public: explicit ReservationRequest(BuilderQueue &queue) : queue(queue), reservation(queue.enter()) {} reservation(queue.enter()) {} ~ReservationRequest() { reservation.set_request_complete(); Loading