Kea  1.9.9-git
isc::yang::TranslatorLogger Class Reference

Logger translation between YANG and JSON. More...

#include <translator_logger.h>

+ Inheritance diagram for isc::yang::TranslatorLogger:

Public Member Functions

 TranslatorLogger (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorLogger ()
 Destructor. More...
 
isc::data::ElementPtr getLogger (const std::string &xpath)
 Get and translate a logger from YANG to JSON. More...
 
void setLogger (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set logger from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorBasic
 TranslatorBasic (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorBasic ()
 Destructor. More...
 
void delItem (const std::string &xpath)
 Delete basic value from YANG. More...
 
isc::data::ElementPtr getItem (const std::string &xpath)
 Get and translate basic value from YANG to JSON. More...
 
isc::data::ElementPtr getItems (const std::string &xpath)
 Get and translate a list of basic values from YANG to JSON. More...
 
sysrepo::S_Iter_Value getIter (const std::string &xpath)
 List iterator methods keeping the session private. More...
 
std::string getNext (sysrepo::S_Iter_Value iter)
 Get xpath of the next YANG list item. More...
 
void setItem (const std::string &xpath, isc::data::ConstElementPtr elem, sr_type_t type)
 Translate and set basic value from JSON to YANG. More...
 

Protected Member Functions

isc::data::ElementPtr getLoggerKea (const std::string &xpath)
 getLogger JSON for loggers. More...
 
isc::data::ElementPtr getOutputOption (const std::string &xpath)
 Get and translate an output option from YANG to JSON. More...
 
isc::data::ElementPtr getOutputOptions (const std::string &xpath)
 Get and translate output options from YANG to JSON. More...
 
void setLoggerKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setLogger for loggers. More...
 
void setOutputOption (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set an output option from JSON to YANG. More...
 
void setOutputOptions (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set output options from JSON to YANG. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::yang::TranslatorBasic
static isc::data::ElementPtr value (sysrepo::S_Val s_val)
 Translate basic value from YANG to JSON. More...
 
static sysrepo::S_Val value (isc::data::ConstElementPtr elem, sr_type_t type)
 Translate basic value from JSON to YANG. More...
 
- Protected Attributes inherited from isc::yang::TranslatorBasic
std::string model_
 The model. More...
 
sysrepo::S_Session session_
 The sysrepo session. More...
 

Detailed Description

Logger translation between YANG and JSON.

JSON syntax for all Kea servers with loggers is:

{
"name": <name>,
"output_options": [ <output options> ],
"severity": <severity>,
"debuglevel": <debug level>,
"user-context": { <json map> },
"comment": <comment>
}

JSON syntax for all Kea server for output options is:

{
"output": <output, e.g. log file name>,
"maxver": <maximum file version>,
"maxsize": <maximum file size>,
"flush": <flush flag>,
"pattern": <custom layout>
}

YANG syntax for loggers is:

+--rw logger (list)
|
+--rw name? string
+--rw output-option*
| +--rw output string
| +--rw maxver? uint32
| +--rw maxsize? uint32
| +--rw flush? boolean
| +--rw pattern? string
+--rw debuglevel? uint8
+--rw severity? enumeration
+--rw user-context? string

An example in JSON and YANG formats:

[
{
"name": "foo",
"severity": "WARN",
"output_options":
[
{
"output": "/bar",
"maxver": 10
}
]
}
]
/kea-dhcp4-server:config (container)
/kea-dhcp4-server:config/...
/kea-dhcp4-server:config/logger[name='foo'] (list instance)
/kea-dhcp4-server:config/logger[name='foo']/name = foo
/kea-dhcp4-server:config/logger[name='foo']/
option[output='/bar'] (list instance)
/kea-dhcp4-server:config/logger[name='foo']/
option[output='/bar']/option = /bar
/kea-dhcp4-server:config/logger[name='foo']/
option[output='/bar']/maxver = 10
/kea-dhcp4-server:config/logger[name='foo']/severity = WARN

A translator class for converting a logger between YANG and JSON.

Currently supports all kea models:

  • kea-dhcp4-server
  • kea-dhcp6-server
  • kea-dhcp-ddns
  • kea-ctrl-agent

Definition at line 95 of file translator_logger.h.

Constructor & Destructor Documentation

isc::yang::TranslatorLogger::TranslatorLogger ( sysrepo::S_Session  session,
const std::string &  model 
)

Constructor.

Parameters
sessionSysrepo session.
modelModel name.

Definition at line 23 of file translator_logger.cc.

isc::yang::TranslatorLogger::~TranslatorLogger ( )
virtual

Destructor.

Definition at line 27 of file translator_logger.cc.

Member Function Documentation

ElementPtr isc::yang::TranslatorLogger::getLogger ( const std::string &  xpath)

Get and translate a logger from YANG to JSON.

Parameters
xpathThe xpath of the logger.
Returns
JSON representation of the logger.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 31 of file translator_logger.cc.

References getLoggerKea(), isc_throw, isc::yang::TranslatorBasic::model_, and isc::Exception::what().

Referenced by isc::yang::TranslatorLoggers::getLoggersKea().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorLogger::getLoggerKea ( const std::string &  xpath)
protected

getLogger JSON for loggers.

Parameters
xpathThe xpath of the logger.
Returns
JSON representation of the logger.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 49 of file translator_logger.cc.

References isc::yang::TranslatorBasic::getItem(), getOutputOptions(), and isc_throw.

Referenced by getLogger().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorLogger::getOutputOption ( const std::string &  xpath)
protected

Get and translate an output option from YANG to JSON.

Parameters
xpathThe xpath of the output option.
Returns
JSON representation of the output option.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 77 of file translator_logger.cc.

References isc::yang::TranslatorBasic::getItem(), and isc_throw.

Referenced by getOutputOptions().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorLogger::getOutputOptions ( const std::string &  xpath)
protected

Get and translate output options from YANG to JSON.

Parameters
xpathThe xpath of output options.
Returns
JSON representation of output options.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 105 of file translator_logger.cc.

References isc::yang::TranslatorBasic::getIter(), isc::yang::TranslatorBasic::getNext(), getOutputOption(), and isc_throw.

Referenced by getLoggerKea().

+ Here is the call graph for this function:

void isc::yang::TranslatorLogger::setLogger ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)

Translate and set logger from JSON to YANG.

Parameters
xpathThe xpath of the logger.
elemThe JSON element.

Definition at line 124 of file translator_logger.cc.

References isc_throw, isc::yang::TranslatorBasic::model_, setLoggerKea(), and isc::Exception::what().

Referenced by isc::yang::TranslatorLoggers::setLoggersKea().

+ Here is the call graph for this function:

void isc::yang::TranslatorLogger::setLoggerKea ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)
protected

setLogger for loggers.

Parameters
xpathThe xpath of the logger.
elemThe JSON element.

Definition at line 143 of file translator_logger.cc.

References isc::yang::Adaptor::getContext(), isc::yang::TranslatorBasic::setItem(), and setOutputOptions().

Referenced by setLogger().

+ Here is the call graph for this function:

void isc::yang::TranslatorLogger::setOutputOption ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)
protected

Translate and set an output option from JSON to YANG.

Parameters
xpathThe xpath of the output option.
elemThe JSON element.

Definition at line 165 of file translator_logger.cc.

References isc::yang::TranslatorBasic::setItem().

Referenced by setOutputOptions().

+ Here is the call graph for this function:

void isc::yang::TranslatorLogger::setOutputOptions ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)
protected

Translate and set output options from JSON to YANG.

Parameters
xpathThe xpath of the output options.
elemThe JSON element.
Exceptions
BadValueon an output option without output.

Definition at line 196 of file translator_logger.cc.

References isc_throw, and setOutputOption().

Referenced by setLoggerKea().

+ Here is the call graph for this function:


The documentation for this class was generated from the following files: