Kea 2.7.0
isc::netconf::NetconfSimpleParser Class Reference

#include <simple_parser.h>

+ Inheritance diagram for isc::netconf::NetconfSimpleParser:

Public Member Functions

void parse (const NetconfConfigPtr &ctx, const isc::data::ElementPtr &config, bool check_only)
 Parses the netconf configuration.
 
- Public Member Functions inherited from isc::data::SimpleParser
uint16_t getUint16 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint16_t.
 
uint32_t getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint32_t.
 
uint8_t getUint8 (ConstElementPtr scope, const std::string &name)
 Get an uint8_t value.
 
const isc::util::Triplet< uint32_t > parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
 Parses an integer triplet.
 

Static Public Member Functions

static size_t deriveParameters (isc::data::ElementPtr global)
 Derives (inherits) all parameters from global to more specific scopes.
 
static size_t setAllDefaults (const isc::data::ElementPtr &global)
 Sets all defaults for Netconf configuration.
 
static size_t setServerDefaults (const std::string name, isc::data::ElementPtr server)
 Adds default values to a Managed server entry.
 
- Static Public Member Functions inherited from isc::data::SimpleParser
static void checkKeywords (const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
 Checks acceptable keywords with their expected type.
 
static void checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
 Checks that all required keywords are present.
 
static size_t deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
 Derives (inherits) parameters from parent scope to a child.
 
static isc::asiolink::IOAddress getAddress (const ConstElementPtr &scope, const std::string &name)
 Returns a IOAddress parameter from a scope.
 
static bool getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a boolean parameter from a scope.
 
static double getDouble (const ConstElementPtr &scope, const std::string &name)
 Returns a floating point parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max)
 Returns an integer parameter from a scope and checks its range.
 
static const data::Element::PositiongetPosition (const std::string &name, const data::ConstElementPtr parent)
 Utility method that returns position of an element.
 
static std::string getString (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a string parameter from a scope.
 
static size_t setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
 Sets the default values.
 
static size_t setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
 Sets the default values for all entries in a list.
 

Static Public Attributes

static const isc::data::SimpleDefaults NETCONF_DEFAULTS
 This table defines default values for global options.
 
static const isc::data::SimpleDefaults CTRL_SOCK_DEFAULTS
 Supplies defaults for control-socket elements.
 
static const isc::data::SimpleDefaults DHCP4_DEFAULTS
 Supplies defaults for dhcp4 managed server.
 
static const isc::data::SimpleDefaults DHCP6_DEFAULTS
 Supplies defaults for dhcp6 managed server.
 
static const isc::data::SimpleDefaults D2_DEFAULTS
 Supplies defaults for d2 managed server.
 
static const isc::data::SimpleDefaults CA_DEFAULTS
 Supplies defaults for ca managed server.
 
static const isc::data::ParamsList INHERIT_TO_SERVERS
 List of parameters that can be inherited to managed-servers scope.
 

Additional Inherited Members

- Protected Member Functions inherited from isc::data::SimpleParser
template<typename target_type , target_type convert>
target_type getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
 Returns a converted value from a scope.
 
template<typename int_type >
int_type getIntType (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer value with range checking from a scope.
 

Detailed Description

Definition at line 23 of file bin/netconf/simple_parser.h.

Member Function Documentation

◆ deriveParameters()

size_t isc::netconf::NetconfSimpleParser::deriveParameters ( isc::data::ElementPtr global)
static

Derives (inherits) all parameters from global to more specific scopes.

This method currently does the following:

  • derives global parameters to managed servers (flags for now)
    Parameters
    globalscope to be modified if needed
    Returns
    number of default values derived

Definition at line 111 of file bin/netconf/simple_parser.cc.

References isc::data::copy(), isc::data::SimpleParser::deriveParams(), and INHERIT_TO_SERVERS.

Referenced by isc::netconf::NetconfCfgMgr::parse().

+ Here is the call graph for this function:

◆ parse()

void isc::netconf::NetconfSimpleParser::parse ( const NetconfConfigPtr & ctx,
const isc::data::ElementPtr & config,
bool check_only )

Parses the netconf configuration.

Parameters
ctx- parsed information will be stored here
config- Element tree structure that holds configuration
check_only- if true the configuration is verified only, not applied
Exceptions
ConfigErrorif any issues are encountered.

Definition at line 158 of file bin/netconf/simple_parser.cc.

References isc::hooks::HooksConfig::get(), isc::asiolink::IOServiceMgr::instance(), isc::netconf::ServerConfigParser::parse(), and isc::hooks::HooksLibrariesParser::parse().

Referenced by isc::netconf::NetconfCfgMgr::parse().

+ Here is the call graph for this function:

◆ setAllDefaults()

size_t isc::netconf::NetconfSimpleParser::setAllDefaults ( const isc::data::ElementPtr & global)
static

Sets all defaults for Netconf configuration.

This method sets global, option data and option definitions defaults.

Parameters
globalscope to be filled in with defaults.
Returns
number of default values added

— end of default values ----------------------------------------------—

Definition at line 91 of file bin/netconf/simple_parser.cc.

References isc::data::copy(), NETCONF_DEFAULTS, isc::data::SimpleParser::setDefaults(), and setServerDefaults().

Referenced by isc::netconf::NetconfCfgMgr::parse().

+ Here is the call graph for this function:

◆ setServerDefaults()

size_t isc::netconf::NetconfSimpleParser::setServerDefaults ( const std::string name,
isc::data::ElementPtr server )
static

Adds default values to a Managed server entry.

Adds server specific defaults, e.g. the default model.

Parameters
nameserver name / entry key
serverserver element / entry value
Returns
returns the number of default values added

Definition at line 132 of file bin/netconf/simple_parser.cc.

References CA_DEFAULTS, isc::data::copy(), CTRL_SOCK_DEFAULTS, D2_DEFAULTS, DHCP4_DEFAULTS, DHCP6_DEFAULTS, and isc::data::SimpleParser::setDefaults().

Referenced by setAllDefaults().

+ Here is the call graph for this function:

Member Data Documentation

◆ CA_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::CA_DEFAULTS
static
Initial value:
= {
{ "model", Element::string, "kea-ctrl-agent" }
}

Supplies defaults for ca managed server.

Definition at line 68 of file bin/netconf/simple_parser.h.

Referenced by setServerDefaults().

◆ CTRL_SOCK_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::CTRL_SOCK_DEFAULTS
static
Initial value:
= {
{ "socket-type", Element::string, "stdout" },
{ "socket-name", Element::string, "" },
{ "socket-url" , Element::string, "http://127.0.0.1:8000/" }
}

Supplies defaults for control-socket elements.

Definition at line 64 of file bin/netconf/simple_parser.h.

Referenced by setServerDefaults().

◆ D2_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::D2_DEFAULTS
static
Initial value:
= {
{ "model", Element::string, "kea-dhcp-ddns" }
}

Supplies defaults for d2 managed server.

Definition at line 67 of file bin/netconf/simple_parser.h.

Referenced by setServerDefaults().

◆ DHCP4_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::DHCP4_DEFAULTS
static
Initial value:
= {
{ "model", Element::string, "kea-dhcp4-server" }
}

Supplies defaults for dhcp4 managed server.

Definition at line 65 of file bin/netconf/simple_parser.h.

Referenced by setServerDefaults().

◆ DHCP6_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::DHCP6_DEFAULTS
static
Initial value:
= {
{ "model", Element::string, "kea-dhcp6-server" }
}

Supplies defaults for dhcp6 managed server.

Definition at line 66 of file bin/netconf/simple_parser.h.

Referenced by setServerDefaults().

◆ INHERIT_TO_SERVERS

const ParamsList isc::netconf::NetconfSimpleParser::INHERIT_TO_SERVERS
static
Initial value:
= {
"boot-update",
"subscribe-changes",
"validate-changes"
}

List of parameters that can be inherited to managed-servers scope.

Some parameters may be defined on both global (directly in Netconf) and servers (Netconf/managed-servers/...) scope. If not defined in the managed-servers scope, the value is being inherited (derived) from the global scope. This array lists all of such parameters.

Definition at line 69 of file bin/netconf/simple_parser.h.

Referenced by deriveParameters().

◆ NETCONF_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::NETCONF_DEFAULTS
static
Initial value:
= {
{ "boot-update", Element::boolean, "true" },
{ "subscribe-changes", Element::boolean, "true" },
{ "validate-changes", Element::boolean, "true" }
}

This table defines default values for global options.

These are global Netconf parameters.

Definition at line 63 of file bin/netconf/simple_parser.h.

Referenced by setAllDefaults().


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