16using namespace sysrepo;
31 if ((
model_ == KEA_DHCP4_SERVER) ||
32 (
model_ == KEA_DHCP6_SERVER) ||
33 (
model_ == KEA_DHCP_DDNS) ||
34 (
model_ == KEA_CTRL_AGENT)) {
37 }
catch (
const sysrepo_exception& ex) {
39 "sysrepo error getting logger at '" << xpath
40 <<
"': " << ex.
what());
43 "getLogger not implemented for the model: " <<
model_);
54 result->set(
"name", name);
56 if (options && (options->size() > 0)) {
57 result->set(
"output_options", options);
61 result->set(
"severity", severity);
65 result->set(
"debuglevel", debuglevel);
69 result->set(
"user-context", Element::fromJSON(context->stringValue()));
82 result->set(
"output", output);
85 result->set(
"maxver", maxver);
89 result->set(
"maxsize", maxsize);
93 result->set(
"flush", flush);
97 result->set(
"pattern", pattern);
104 return getList(xpath +
"/output-option", *
this,
111 if ((
model_ == KEA_DHCP4_SERVER) ||
112 (
model_ == KEA_DHCP6_SERVER) ||
113 (
model_ == KEA_DHCP_DDNS) ||
114 (
model_ == KEA_CTRL_AGENT)) {
118 "setLogger not implemented for the model: " <<
model_);
120 }
catch (
const sysrepo_exception& ex) {
122 "sysrepo error setting logger '" << elem->str()
123 <<
"' at '" << xpath <<
"': " << ex.
what());
131 if (options && (options->size() > 0)) {
136 setItem(xpath +
"/debuglevel", debuglevel, SR_UINT8_T);
140 setItem(xpath +
"/severity", severity, SR_ENUM_T);
144 setItem(xpath +
"/user-context", Element::create(context->str()),
151 bool created =
false;
155 setItem(xpath +
"/maxver", maxver, SR_UINT32_T);
160 setItem(xpath +
"/maxsize", maxsize, SR_UINT32_T);
165 setItem(xpath +
"/flush", flush, SR_BOOL_T);
170 setItem(xpath +
"/pattern", pattern, SR_STRING_T);
176 setItem(xpath, list, SR_LIST_T);
182 for (
size_t i = 0; i < elem->size(); ++i) {
184 if (!option->contains(
"output")) {
188 string output = option->get(
"output")->stringValue();
190 key << xpath <<
"/output-option[output='" << output <<
"']";
206 if ((
model_ == KEA_DHCP4_SERVER) ||
207 (
model_ == KEA_DHCP6_SERVER) ||
208 (
model_ == KEA_DHCP_DDNS) ||
209 (
model_ == KEA_CTRL_AGENT)) {
212 }
catch (
const sysrepo_exception& ex) {
214 "sysrepo error getting loggeres at '" << xpath
215 <<
"': " << ex.
what());
218 "getLoggers not implemented for the model: " <<
model_);
223 return getList<TranslatorLogger>(xpath +
"/logger", *
this,
230 if ((
model_ == KEA_DHCP4_SERVER) ||
231 (
model_ == KEA_DHCP6_SERVER) ||
232 (
model_ == KEA_DHCP_DDNS) ||
233 (
model_ == KEA_CTRL_AGENT)) {
237 "setLoggers not implemented for the model: " <<
model_);
239 }
catch (
const sysrepo_exception& ex) {
241 "sysrepo error setting loggeres '" << elem->str()
242 <<
"' at '" << xpath <<
"': " << ex.
what());
248 for (
size_t i = 0; i < elem->size(); ++i) {
250 if (!
logger->contains(
"name")) {
253 string name =
logger->get(
"name")->stringValue();
255 key << xpath <<
"/logger[name='" << name <<
"']";
A generic exception that is thrown if a parameter given to a method is considered invalid in that con...
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
A generic exception that is thrown when a function is not implemented.
A generic exception that is thrown when an unexpected error condition occurs.
static isc::data::ConstElementPtr getContext(isc::data::ConstElementPtr parent)
Get user context.
Between YANG and JSON translator class for basic values.
isc::data::ElementPtr getItem(const std::string &xpath)
Get and translate basic value from YANG to JSON.
std::string model_
The model.
isc::data::ElementPtr getList(std::string const &xpath, T &t, isc::data::ElementPtr(T::*f)(std::string const &xpath))
Retrieve a list as ElementPtr from sysrepo from a certain xpath.
void setItem(const std::string &xpath, isc::data::ConstElementPtr elem, sr_type_t type)
Translate and set basic value from JSON to YANG.
Logger translation between YANG and JSON.
void setLogger(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set logger from JSON to YANG.
void setOutputOption(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set an output option from JSON to YANG.
TranslatorLogger(sysrepo::S_Session session, const std::string &model)
Constructor.
void setLoggerKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setLogger for loggers.
isc::data::ElementPtr getOutputOptions(const std::string &xpath)
Get and translate output options from YANG to JSON.
isc::data::ElementPtr getLoggerKea(const std::string &xpath)
getLogger JSON for loggers.
void setOutputOptions(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set output options from JSON to YANG.
isc::data::ElementPtr getLogger(const std::string &xpath)
Get and translate a logger from YANG to JSON.
isc::data::ElementPtr getOutputOption(const std::string &xpath)
Get and translate an output option from YANG to JSON.
virtual ~TranslatorLogger()
Destructor.
virtual ~TranslatorLoggers()
Destructor.
void setLoggers(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set loggeres from JSON to YANG.
TranslatorLoggers(sysrepo::S_Session session, const std::string &model)
Constructor.
isc::data::ElementPtr getLoggersKea(const std::string &xpath)
getLoggers JSON for loggers.
void setLoggersKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setLoggers for loggers.
isc::data::ConstElementPtr getLoggers(const std::string &xpath)
Get and translate loggeres from YANG to JSON.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
isc::log::Logger logger("asiodns")
Use the ASIO logger.
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.