21 TranslatorOptionData::TranslatorOptionData(S_Session session,
32 if ((
model_ == KEA_DHCP4_SERVER) ||
33 (
model_ == KEA_DHCP6_SERVER)) {
36 }
catch (
const sysrepo_exception& ex) {
38 "sysrepo error getting option data at '" << xpath
39 <<
"': " << ex.
what());
42 "getOptionData not implemented for the model: " <<
model_);
49 if (!code || !space) {
55 result->set(
"code", code);
56 result->set(
"space", space);
59 result->set(
"name", name);
63 result->set(
"data", data);
67 result->set(
"csv-format", format);
71 result->set(
"always-send", send);
75 result->set(
"user-context", Element::fromJSON(context->stringValue()));
84 if ((
model_ == KEA_DHCP4_SERVER) ||
85 (
model_ == KEA_DHCP6_SERVER)) {
89 "setOptionData not implemented for the model: " 92 }
catch (
const sysrepo_exception& ex) {
94 "sysrepo error setting option data '" << elem->str()
95 <<
"' at '" << xpath <<
"': " << ex.
what());
105 setItem(xpath +
"/name", name, SR_STRING_T);
109 setItem(xpath +
"/data", data, SR_STRING_T);
113 setItem(xpath +
"/csv-format", format, SR_BOOL_T);
117 setItem(xpath +
"/always-send", send, SR_BOOL_T);
121 setItem(xpath +
"/user-context", Element::create(context->str()),
138 if ((
model_ == KEA_DHCP4_SERVER) ||
139 (
model_ == KEA_DHCP6_SERVER)) {
142 }
catch (
const sysrepo_exception& ex) {
144 "sysrepo error getting option data list at '" << xpath
145 <<
"': " << ex.
what());
148 "getOptionDataList not implemented for the model: " <<
model_);
153 return getList<TranslatorOptionData>(xpath +
"/option-data", *
this,
161 if ((
model_ == KEA_DHCP4_SERVER) ||
162 (
model_ == KEA_DHCP6_SERVER)) {
166 "setOptionDataList not implemented for the model: " 169 }
catch (
const sysrepo_exception& ex) {
171 "sysrepo error setting option data list '" << elem->str()
172 <<
"' at '" << xpath <<
"': " << ex.
what());
179 for (
size_t i = 0; i < elem->size(); ++i) {
181 if (!option->contains(
"code")) {
184 unsigned code =
static_cast<unsigned>(option->get(
"code")->intValue());
185 if (!option->contains(
"space")) {
188 string space = option->get(
"space")->stringValue();
190 keys << xpath <<
"/option-data[code='" << code
191 <<
"'][space='" << space <<
"']";
isc::data::ElementPtr getOptionData(const std::string &xpath)
Get and translate an option data from YANG to JSON.
A generic exception that is thrown when a function is not implemented.
Between YANG and JSON translator class for basic values.
virtual ~TranslatorOptionDataList()
Destructor.
boost::shared_ptr< Element > ElementPtr
void setOptionDataKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setOptionData for kea-dhcp[46].
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
isc::data::ConstElementPtr getOptionDataListKea(const std::string &xpath)
getOptionDataList for kea-dhcp[46].
TranslatorOptionDataList(sysrepo::S_Session session, const std::string &model)
Constructor.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
A generic exception that is thrown if a parameter given to a method is considered invalid in that con...
void setItem(const std::string &xpath, isc::data::ConstElementPtr elem, sr_type_t type)
Translate and set basic value from JSON to YANG.
void setOptionDataListKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setOptionDataList for kea-dhcp[46].
virtual ~TranslatorOptionData()
Destructor.
void setOptionData(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set option data from JSON to YANG.
A generic exception that is thrown when an unexpected error condition occurs.
std::string model_
The model.
boost::shared_ptr< const Element > ConstElementPtr
static isc::data::ConstElementPtr getContext(isc::data::ConstElementPtr parent)
Get user context.
Defines the logger used by the top-level component of kea-lfc.
isc::data::ConstElementPtr getOptionDataList(const std::string &xpath)
Get and translate option data list from YANG to JSON.
isc::data::ElementPtr getItem(const std::string &xpath)
Get and translate basic value from YANG to JSON.
isc::data::ElementPtr getOptionDataKea(const std::string &xpath)
getOptionData JSON for kea-dhcp[46].
Option data translation between YANG and JSON.
void setOptionDataList(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set option data list from JSON to YANG.
std::string format(const std::string &format, const std::vector< std::string > &args)
Apply Formatting.