24 :http_host_(
""), http_port_(0) {
28 :
ConfigBase(), ctrl_sockets_(orig.ctrl_sockets_),
29 http_host_(orig.http_host_), http_port_(orig.http_port_),
30 hooks_config_(orig.hooks_config_) {
47 s <<
"listening on " << ctx->getHttpHost() <<
", port "
48 << ctx->getHttpPort() <<
", control sockets: ";
51 s << ctx->getControlSocketInfoSummary();
55 s <<
", " << libs.size() <<
" lib(s):";
56 for (
auto lib = libs.begin(); lib != libs.end(); ++lib) {
57 s << lib->first <<
" ";
78 ElementPtr cfg = boost::const_pointer_cast<Element>(config_set);
87 parser.
parse(ctx, cfg, check_only);
92 excuse =
"undefined configuration parsing error";
108 "Configuration check successful");
111 "Configuration applied successfully.");
119 auto si = ctrl_sockets_.find(service);
125 const std::string& service) {
126 ctrl_sockets_[service] = control_socket;
131 std::ostringstream s;
132 for (
auto si = ctrl_sockets_.cbegin(); si != ctrl_sockets_.end(); ++si) {
133 if (s.tellp() != 0) {
139 if (s.tellp() == 0) {
154 ca->set(
"http-port",
Element::create(
static_cast<int64_t
>(http_port_)));
156 ca->set(
"hooks-libraries", hooks_config_.
toElement());
159 for (
auto si = ctrl_sockets_.cbegin(); si != ctrl_sockets_.cend(); ++si) {
161 control_sockets->set(si->first, socket);
163 ca->set(
"control-sockets", control_sockets);
166 result->set(
"Control-agent", ca);
This is a base class for exceptions thrown from the DNS library module.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
void parse(const CtrlAgentCfgContextPtr &ctx, const isc::data::ConstElementPtr &config, bool check_only)
Parses the control agent configuration.
static size_t setAllDefaults(const isc::data::ElementPtr &global)
Sets all defaults for Control Agent configuration.
Control Agent Configuration Context.
void setControlSocketInfo(const isc::data::ConstElementPtr &control_socket, const std::string &service)
Sets information about the control socket.
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
CtrlAgentCfgContext()
Default constructor.
isc::data::ConstElementPtr getControlSocketInfo(const std::string &service) const
Returns information about control socket.
std::string getControlSocketInfoSummary() const
Returns socket configuration summary in a textual format.
CtrlAgentCfgMgr()
Constructor.
virtual std::string getConfigSummary(const uint32_t selection)
Returns configuration summary in the textual format.
CtrlAgentCfgContextPtr getCtrlAgentCfgContext()
Convenience method that returns the Control Agent configuration context.
virtual process::ConfigPtr createNewContext()
Creates a new, blank CtrlAgentCfgContext context.
virtual isc::data::ConstElementPtr parse(isc::data::ConstElementPtr config, bool check_only)
Parses configuration of the Control Agent.
virtual ~CtrlAgentCfgMgr()
Destructor.
static ElementPtr create(const Position &pos=ZERO_POSITION())
static ElementPtr createMap(const Position &pos=ZERO_POSITION())
Creates an empty MapElement type ElementPtr.
To be removed. Please use ConfigError instead.
isc::data::ElementPtr toElement() const
Unparse a configuration object.
Base class for all configurations.
This file contains several functions and constants that are used for handling commands and responses ...
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
#define LOG_ERROR(LOGGER, MESSAGE)
Macro to conveniently test error output and log it.
boost::shared_ptr< CtrlAgentCfgContext > CtrlAgentCfgContextPtr
Pointer to a configuration context.
isc::log::Logger agent_logger("ctrl-agent")
Control Agent logger.
const int CONTROL_RESULT_ERROR
Status code indicating a general failure.
ConstElementPtr createAnswer()
Creates a standard config/command level success answer message (i.e.
const int CONTROL_RESULT_SUCCESS
Status code indicating a successful operation.
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
std::vector< HookLibInfo > HookLibsCollection
A storage for information about hook libraries.
boost::shared_ptr< ConfigBase > ConfigPtr
Non-const pointer to the SrvConfig.
Defines the logger used by the top-level component of kea-dhcp-ddns.
void contextToElement(data::ElementPtr map) const
Merge unparse a user_context object.
static data::ElementPtr toElement(data::ConstElementPtr map)
Copy extracting comments an Element map.