diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp index 8fac1605b1ae9bd4bb0b38977339ca90e275b0e6..30b8b780a1a5e1654b38f1ec570a8d5dda80ccaf 100644 --- a/cmdline/CtaAdminCmd.cpp +++ b/cmdline/CtaAdminCmd.cpp @@ -141,7 +141,6 @@ CtaAdminCmd::CtaAdminCmd(int argc, const char *const *const argv) : void CtaAdminCmd::send() const { // Validate the Protocol Buffer - try { validateCmd(m_request.admincmd()); } catch(std::runtime_error &ex) { @@ -149,22 +148,23 @@ void CtaAdminCmd::send() const } // Get socket address of CTA Frontend endpoint - cta::cmdline::Configuration cliConf("/etc/cta/cta-cli.conf"); std::string endpoint = cliConf.getFrontendHostAndPort(); - // Obtain a Service Provider + // Set configuration options + XrdSsiPb::Config config; + config.set("response_bufsize", StreamBufferSize); + config.set("request_timeout", DefaultRequestTimeout); + config.getEnv("request_timeout", "XRD_REQUESTTIMEOUT"); - XrdSsiPbServiceType cta_service(endpoint, Resource, StreamBufferSize, GetRequestTimeout()); + // Obtain a Service Provider + XrdSsiPbServiceType cta_service(endpoint, Resource, config); // Send the Request to the Service and get a Response - cta::xrd::Response response; - auto stream_future = cta_service.Send(m_request, response); // Handle responses - switch(response.type()) { using namespace cta::xrd; @@ -288,20 +288,6 @@ void CtaAdminCmd::throwUsage(const std::string &error_txt) const throw std::runtime_error(help.str()); } - - -int CtaAdminCmd::GetRequestTimeout() const -{ - const char *request_timeout_str = ::getenv("XRD_REQUESTTIMEOUT"); - - int request_timeout = request_timeout_str == nullptr ? DefaultRequestTimeout : atoi(request_timeout_str); - - // Use default if XRD_REQUESTTIMEOUT is not a valid positive integer - if(request_timeout <= 0) request_timeout = DefaultRequestTimeout; - - return request_timeout; -} - }} // namespace cta::admin diff --git a/cmdline/CtaAdminCmd.hpp b/cmdline/CtaAdminCmd.hpp index 24c5285c557ffb47a7b64d20b8ca90c3f47332e7..d3e331bfdf4058e6982e8454492eb5af5a7dabfb 100644 --- a/cmdline/CtaAdminCmd.hpp +++ b/cmdline/CtaAdminCmd.hpp @@ -58,13 +58,13 @@ private: /* * Member variables */ - const std::string Resource = "/ctafrontend"; //!< XRootD SSI Resource name - const int StreamBufferSize = 1024; //!< Buffer size for Data/Stream Responses - const int DefaultRequestTimeout = 10; //!< Default Request Timeout. Can be overridden by - //!< XRD_REQUESTTIMEOUT environment variable. + const std::string Resource = "/ctafrontend"; //!< XRootD SSI Resource name + const std::string StreamBufferSize = "1024"; //!< Buffer size for Data/Stream Responses + const std::string DefaultRequestTimeout = "10"; //!< Default Request Timeout. Can be overridden by + //!< XRD_REQUESTTIMEOUT environment variable. - std::string m_execname; //!< Executable name of this program - cta::xrd::Request m_request; //!< Protocol Buffer for the command and parameters + std::string m_execname; //!< Executable name of this program + cta::xrd::Request m_request; //!< Protocol Buffer for the command and parameters static constexpr const char* const LOG_SUFFIX = "CtaAdminCmd"; //!< Identifier for log messages }; diff --git a/xrootd-ssi-protobuf-interface b/xrootd-ssi-protobuf-interface index bb95ae8b5acfc8424b6a5537a5738bd92b4dfb2a..abdb133901fb9451a27e941910a5a2228117ce99 160000 --- a/xrootd-ssi-protobuf-interface +++ b/xrootd-ssi-protobuf-interface @@ -1 +1 @@ -Subproject commit bb95ae8b5acfc8424b6a5537a5738bd92b4dfb2a +Subproject commit abdb133901fb9451a27e941910a5a2228117ce99