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

Control socket translation between YANG and JSON. More...

#include <translator_control_socket.h>

+ Inheritance diagram for isc::yang::TranslatorControlSocket:

Public Member Functions

 TranslatorControlSocket (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorControlSocket ()
 Destructor. More...
 
isc::data::ConstElementPtr getControlSocket (const std::string &xpath)
 Get and translate a control socket from YANG to JSON. More...
 
void setControlSocket (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set control socket 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 getControlSocketKea (const std::string &xpath)
 getControlSocket JSON for kea models. More...
 
void setControlSocketKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setControlSocket for kea models. 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

Control socket translation between YANG and JSON.

JSON syntax for all Kea servers with command channel is:

"control-socket": {
"socket-type": "<socket type>",
"socket-name": "<socket name>",
"user-context": { <json map> },
"comment": "<comment>"
}

YANG syntax is:

+--rw control-socket container
|
+--rw socket-name string
+--rw socket-type enumeration
+--rw user-context? string

An example in JSON and YANG formats:

{
"socket-name": "/tmp/kea.sock",
"socket-type": "unix",
"user-context": { "foo": 1 }
}
/kea-ctrl-agent:config (container)
/kea-ctrl-agent:config/control-sockets (container)
/kea-ctrl-agent:config/control-sockets/
socket[server-type='dhcp4'] (list instance)
/kea-ctrl-agent:config/control-sockets/socket[server-type='dhcp4']/
server-type = dhcp4
/kea-ctrl-agent:config/control-sockets/socket[server-type='dhcp4']/
control-socket (container)
/kea-ctrl-agent:config/control-sockets/socket[server-type='dhcp4']/
control-socket/socket-name = /tmp/kea.sock
/kea-ctrl-agent:config/control-sockets/socket[server-type='dhcp4']/
control-socket/socket-type = unix
/kea-ctrl-agent:config/control-sockets/socket[server-type='dhcp4']/
control-socket/user-context = { \"foo\": 1 }

A translator class for converting a control socket between YANG and JSON.

Supports the following models:

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

Definition at line 70 of file translator_control_socket.h.

Constructor & Destructor Documentation

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

Constructor.

Parameters
sessionSysrepo session.
modelModel name.

Definition at line 23 of file translator_control_socket.cc.

isc::yang::TranslatorControlSocket::~TranslatorControlSocket ( )
virtual

Destructor.

Definition at line 28 of file translator_control_socket.cc.

Member Function Documentation

ConstElementPtr isc::yang::TranslatorControlSocket::getControlSocket ( const std::string &  xpath)

Get and translate a control socket from YANG to JSON.

Parameters
xpathThe xpath of the control socket.
Returns
JSON representation of the control socket or null.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 32 of file translator_control_socket.cc.

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

Referenced by isc::yang::TranslatorConfig::getServerKeaDhcpCommon().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorControlSocket::getControlSocketKea ( const std::string &  xpath)
protected

getControlSocket JSON for kea models.

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

Definition at line 50 of file translator_control_socket.cc.

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

Referenced by getControlSocket().

+ Here is the call graph for this function:

void isc::yang::TranslatorControlSocket::setControlSocket ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)

Translate and set control socket from JSON to YANG.

Parameters
xpathThe xpath of the control socket.
elemThe JSON element.

Definition at line 68 of file translator_control_socket.cc.

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

Referenced by isc::yang::TranslatorConfig::setServerKeaDhcpCommon().

+ Here is the call graph for this function:

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

setControlSocket for kea models.

Null elem argument removes the container. Required parameters passed in elem are: socket-name, socket-type. Optional parameters are: user-context.

Parameters
xpathThe xpath of the control socket.
elemThe JSON element.
Exceptions
BadValueon control socket without socket type or name.

Definition at line 89 of file translator_control_socket.cc.

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

Referenced by setControlSocket().

+ Here is the call graph for this function:


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