Kea: isc::netconf::NetconfSimpleParser Class Reference

| Kea 3.2.0-git

isc::netconf::NetconfSimpleParser Class Reference

`#include <simple_parser.h>`

Inheritance diagram for isc::netconf::NetconfSimpleParser:
[legend]

## 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::Position & | getPosition (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.
template<typename T>
static void | rangeCheckedInteger (isc::data::ConstElementPtr scope, const std::string &name, T &output_value)
| Fetches a range-checked integer 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::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

    global | scope to be modified if needed

  Returns
    number of default values derived

Definition at line 106 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

  ConfigError | if any issues are encountered.

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

References isc::asiolink::IOServiceMgr::clearIOServices(), isc::asiolink::IOServiceMgr::instance(), isc::hooks::HooksConfig::loadLibraries(), isc::hooks::HooksLibrariesParser::parse(), isc::netconf::ServerConfigParser::parse(), isc::hooks::HooksManager::prepareUnloadLibraries(), isc::hooks::HooksManager::unloadLibraries(), and isc::hooks::HooksConfig::verifyLibraries().

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

  global | scope to be filled in with defaults.

Returns
  number of default values added

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

Definition at line 86 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

  name | server name / entry key
  server | server element / entry value

Returns
  returns the number of default values added

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

References 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

## ◆ CTRL_SOCK_DEFAULTS

const SimpleDefaults isc::netconf::NetconfSimpleParser::CTRL_SOCK_DEFAULTS
| static

Initial value:
= {
{ "socket-type", Element::string, "" },
{ "socket-name", Element::string, "" },
{ "socket-url" , Element::string, "http://127.0.0.1:8000/" }
}
Element::string
@ string
Definition data.h:157

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 68 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" }
}
Element::boolean
@ boolean
Definition data.h:155

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:

- bin/netconf/simple_parser.h
- bin/netconf/simple_parser.cc