2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-01 14:35:29 +00:00

[4202] Replaced underscore with hypen in src/bin/d2 for kea-ddns parameters

Updated D2 server code, spec file, and tests with hypenated
    configuration elements names
This commit is contained in:
Thomas Markwalder
2015-11-20 09:36:37 -05:00
parent 2e47244a98
commit baa0e92ef3
10 changed files with 809 additions and 808 deletions

View File

@@ -33,8 +33,8 @@ typedef std::vector<uint8_t> ByteAddress;
D2CfgContext::D2CfgContext() D2CfgContext::D2CfgContext()
: d2_params_(new D2Params()), : d2_params_(new D2Params()),
forward_mgr_(new DdnsDomainListMgr("forward_mgr")), forward_mgr_(new DdnsDomainListMgr("forward-ddns")),
reverse_mgr_(new DdnsDomainListMgr("reverse_mgr")), reverse_mgr_(new DdnsDomainListMgr("reverse-ddns")),
keys_(new TSIGKeyInfoMap()) { keys_(new TSIGKeyInfoMap()) {
} }
@@ -65,9 +65,9 @@ const char* D2CfgMgr::IPV6_REV_ZONE_SUFFIX = "ip6.arpa.";
D2CfgMgr::D2CfgMgr() : DCfgMgrBase(DCfgContextBasePtr(new D2CfgContext())) { D2CfgMgr::D2CfgMgr() : DCfgMgrBase(DCfgContextBasePtr(new D2CfgContext())) {
// TSIG keys need to parse before the Domains, so we can catch Domains // TSIG keys need to parse before the Domains, so we can catch Domains
// that specify undefined keys. Create the necessary parsing order now. // that specify undefined keys. Create the necessary parsing order now.
addToParseOrder("tsig_keys"); addToParseOrder("tsig-keys");
addToParseOrder("forward_ddns"); addToParseOrder("forward-ddns");
addToParseOrder("reverse_ddns"); addToParseOrder("reverse-ddns");
} }
D2CfgMgr::~D2CfgMgr() { D2CfgMgr::~D2CfgMgr() {
@@ -218,7 +218,7 @@ D2CfgMgr::buildParams(isc::data::ConstElementPtr params_config) {
isc::dhcp::StringStoragePtr strings = context->getStringStorage(); isc::dhcp::StringStoragePtr strings = context->getStringStorage();
asiolink::IOAddress ip_address(D2Params::DFT_IP_ADDRESS); asiolink::IOAddress ip_address(D2Params::DFT_IP_ADDRESS);
std::string ip_address_str = strings->getOptionalParam("ip_address", std::string ip_address_str = strings->getOptionalParam("ip-address",
D2Params:: D2Params::
DFT_IP_ADDRESS); DFT_IP_ADDRESS);
try { try {
@@ -226,12 +226,12 @@ D2CfgMgr::buildParams(isc::data::ConstElementPtr params_config) {
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
isc_throw(D2CfgError, "IP address invalid : \"" isc_throw(D2CfgError, "IP address invalid : \""
<< ip_address_str << "\" (" << ip_address_str << "\" ("
<< strings->getPosition("ip_address") << ")"); << strings->getPosition("ip-address") << ")");
} }
if ((ip_address.toText() == "0.0.0.0") || (ip_address.toText() == "::")) { if ((ip_address.toText() == "0.0.0.0") || (ip_address.toText() == "::")) {
isc_throw(D2CfgError, "IP address cannot be \"" << ip_address << "\" (" isc_throw(D2CfgError, "IP address cannot be \"" << ip_address << "\" ("
<< strings->getPosition("ip_address") << ")"); << strings->getPosition("ip-address") << ")");
} }
// Fetch and validate port. // Fetch and validate port.
@@ -245,12 +245,12 @@ D2CfgMgr::buildParams(isc::data::ConstElementPtr params_config) {
// Fetch and validate dns_server_timeout. // Fetch and validate dns_server_timeout.
uint32_t dns_server_timeout uint32_t dns_server_timeout
= ints->getOptionalParam("dns_server_timeout", = ints->getOptionalParam("dns-server-timeout",
D2Params::DFT_DNS_SERVER_TIMEOUT); D2Params::DFT_DNS_SERVER_TIMEOUT);
if (dns_server_timeout < 1) { if (dns_server_timeout < 1) {
isc_throw(D2CfgError, "DNS server timeout must be larger than 0 (" isc_throw(D2CfgError, "DNS server timeout must be larger than 0 ("
<< ints->getPosition("dns_server_timeout") << ")"); << ints->getPosition("dns-server-timeout") << ")");
} }
// Fetch and validate ncr_protocol. // Fetch and validate ncr_protocol.
@@ -258,20 +258,20 @@ D2CfgMgr::buildParams(isc::data::ConstElementPtr params_config) {
try { try {
ncr_protocol = dhcp_ddns:: ncr_protocol = dhcp_ddns::
stringToNcrProtocol(strings-> stringToNcrProtocol(strings->
getOptionalParam("ncr_protocol", getOptionalParam("ncr-protocol",
D2Params:: D2Params::
DFT_NCR_PROTOCOL)); DFT_NCR_PROTOCOL));
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
isc_throw(D2CfgError, "ncr_protocol : " isc_throw(D2CfgError, "ncr-protocol : "
<< ex.what() << " (" << ex.what() << " ("
<< strings->getPosition("ncr_protocol") << ")"); << strings->getPosition("ncr-protocol") << ")");
} }
if (ncr_protocol != dhcp_ddns::NCR_UDP) { if (ncr_protocol != dhcp_ddns::NCR_UDP) {
isc_throw(D2CfgError, "ncr_protocol : " isc_throw(D2CfgError, "ncr-protocol : "
<< dhcp_ddns::ncrProtocolToString(ncr_protocol) << dhcp_ddns::ncrProtocolToString(ncr_protocol)
<< " is not yet supported (" << " is not yet supported ("
<< strings->getPosition("ncr_protocol") << ")"); << strings->getPosition("ncr-protocol") << ")");
} }
// Fetch and validate ncr_format. // Fetch and validate ncr_format.
@@ -279,20 +279,20 @@ D2CfgMgr::buildParams(isc::data::ConstElementPtr params_config) {
try { try {
ncr_format = dhcp_ddns:: ncr_format = dhcp_ddns::
stringToNcrFormat(strings-> stringToNcrFormat(strings->
getOptionalParam("ncr_format", getOptionalParam("ncr-format",
D2Params:: D2Params::
DFT_NCR_FORMAT)); DFT_NCR_FORMAT));
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
isc_throw(D2CfgError, "ncr_format : " isc_throw(D2CfgError, "ncr-format : "
<< ex.what() << " (" << ex.what() << " ("
<< strings->getPosition("ncr_format") << ")"); << strings->getPosition("ncr-format") << ")");
} }
if (ncr_format != dhcp_ddns::FMT_JSON) { if (ncr_format != dhcp_ddns::FMT_JSON) {
isc_throw(D2CfgError, "NCR Format:" isc_throw(D2CfgError, "NCR Format:"
<< dhcp_ddns::ncrFormatToString(ncr_format) << dhcp_ddns::ncrFormatToString(ncr_format)
<< " is not yet supported (" << " is not yet supported ("
<< strings->getPosition("ncr_format") << ")"); << strings->getPosition("ncr-format") << ")");
} }
// Attempt to create the new client config. This ought to fly as // Attempt to create the new client config. This ought to fly as
@@ -312,24 +312,24 @@ D2CfgMgr::createConfigParser(const std::string& config_id,
// Create parser instance based on element_id. // Create parser instance based on element_id.
isc::dhcp::ParserPtr parser; isc::dhcp::ParserPtr parser;
if ((config_id.compare("port") == 0) || if ((config_id.compare("port") == 0) ||
(config_id.compare("dns_server_timeout") == 0)) { (config_id.compare("dns-server-timeout") == 0)) {
parser.reset(new isc::dhcp::Uint32Parser(config_id, parser.reset(new isc::dhcp::Uint32Parser(config_id,
context->getUint32Storage())); context->getUint32Storage()));
} else if ((config_id.compare("ip_address") == 0) || } else if ((config_id.compare("ip-address") == 0) ||
(config_id.compare("ncr_protocol") == 0) || (config_id.compare("ncr-protocol") == 0) ||
(config_id.compare("ncr_format") == 0)) { (config_id.compare("ncr-format") == 0)) {
parser.reset(new isc::dhcp::StringParser(config_id, parser.reset(new isc::dhcp::StringParser(config_id,
context->getStringStorage())); context->getStringStorage()));
} else if (config_id == "forward_ddns") { } else if (config_id == "forward-ddns") {
parser.reset(new DdnsDomainListMgrParser("forward_mgr", parser.reset(new DdnsDomainListMgrParser("forward-ddns",
context->getForwardMgr(), context->getForwardMgr(),
context->getKeys())); context->getKeys()));
} else if (config_id == "reverse_ddns") { } else if (config_id == "reverse-ddns") {
parser.reset(new DdnsDomainListMgrParser("reverse_mgr", parser.reset(new DdnsDomainListMgrParser("reverse-ddns",
context->getReverseMgr(), context->getReverseMgr(),
context->getKeys())); context->getKeys()));
} else if (config_id == "tsig_keys") { } else if (config_id == "tsig-keys") {
parser.reset(new TSIGKeyInfoListParser("tsig_key_list", parser.reset(new TSIGKeyInfoListParser("tsig-key-list",
context->getKeys())); context->getKeys()));
} else { } else {
isc_throw(NotImplemented, isc_throw(NotImplemented,

View File

@@ -118,12 +118,12 @@ std::string
D2Params::toText() const { D2Params::toText() const {
std::ostringstream stream; std::ostringstream stream;
stream << ", ip_address: " << ip_address_.toText() stream << ", ip-address: " << ip_address_.toText()
<< ", port: " << port_ << ", port: " << port_
<< ", dns_server_timeout_: " << dns_server_timeout_ << ", dns-server-timeout_: " << dns_server_timeout_
<< ", ncr_protocol: " << ", ncr-protocol: "
<< dhcp_ddns::ncrProtocolToString(ncr_protocol_) << dhcp_ddns::ncrProtocolToString(ncr_protocol_)
<< ", ncr_format: " << ncr_format_ << ", ncr-format: " << ncr_format_
<< dhcp_ddns::ncrFormatToString(ncr_format_); << dhcp_ddns::ncrFormatToString(ncr_format_);
return (stream.str()); return (stream.str());
@@ -382,7 +382,7 @@ TSIGKeyInfoParser::build(isc::data::ConstElementPtr key_config) {
try { try {
pos["name"] = local_scalars_.getParam("name", name); pos["name"] = local_scalars_.getParam("name", name);
pos["algorithm"] = local_scalars_.getParam("algorithm", algorithm); pos["algorithm"] = local_scalars_.getParam("algorithm", algorithm);
pos["digest_bits"] = local_scalars_.getParam("digest_bits", digestbits, pos["digest-bits"] = local_scalars_.getParam("digest-bits", digestbits,
DCfgContextBase::OPTIONAL); DCfgContextBase::OPTIONAL);
pos["secret"] = local_scalars_.getParam("secret", secret); pos["secret"] = local_scalars_.getParam("secret", secret);
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
@@ -415,34 +415,34 @@ TSIGKeyInfoParser::build(isc::data::ConstElementPtr key_config) {
if (digestbits > 0) { if (digestbits > 0) {
if ((digestbits % 8) != 0) { if ((digestbits % 8) != 0) {
isc_throw(D2CfgError, "Invalid TSIG key digest_bits specified : " << isc_throw(D2CfgError, "Invalid TSIG key digest_bits specified : " <<
digestbits << " (" << pos["digest_bits"] << ")"); digestbits << " (" << pos["digest-bits"] << ")");
} }
if (digestbits < 80) { if (digestbits < 80) {
isc_throw(D2CfgError, "TSIG key digest_bits too small : " << isc_throw(D2CfgError, "TSIG key digest_bits too small : " <<
digestbits << " (" << pos["digest_bits"] << ")"); digestbits << " (" << pos["digest-bits"] << ")");
} }
if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA224_STR)) { if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA224_STR)) {
if (digestbits < 112) { if (digestbits < 112) {
isc_throw(D2CfgError, "TSIG key digest_bits too small : " << isc_throw(D2CfgError, "TSIG key digest_bits too small : " <<
digestbits << " (" << pos["digest_bits"] digestbits << " (" << pos["digest-bits"]
<< ")"); << ")");
} }
} else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA256_STR)) { } else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA256_STR)) {
if (digestbits < 128) { if (digestbits < 128) {
isc_throw(D2CfgError, "TSIG key digest_bits too small : " << isc_throw(D2CfgError, "TSIG key digest_bits too small : " <<
digestbits << " (" << pos["digest_bits"] digestbits << " (" << pos["digest-bits"]
<< ")"); << ")");
} }
} else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA384_STR)) { } else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA384_STR)) {
if (digestbits < 192) { if (digestbits < 192) {
isc_throw(D2CfgError, "TSIG key digest_bits too small : " << isc_throw(D2CfgError, "TSIG key digest_bits too small : " <<
digestbits << " (" << pos["digest_bits"] digestbits << " (" << pos["digest-bits"]
<< ")"); << ")");
} }
} else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA512_STR)) { } else if (boost::iequals(algorithm, TSIGKeyInfo::HMAC_SHA512_STR)) {
if (digestbits < 256) { if (digestbits < 256) {
isc_throw(D2CfgError, "TSIG key digest_bits too small : " << isc_throw(D2CfgError, "TSIG key digest_bits too small : " <<
digestbits << " (" << pos["digest_bits"] digestbits << " (" << pos["digest-bits"]
<< ")"); << ")");
} }
} }
@@ -483,7 +483,7 @@ TSIGKeyInfoParser::createConfigParser(const std::string& config_id,
(config_id == "secret")) { (config_id == "secret")) {
parser = new isc::dhcp::StringParser(config_id, parser = new isc::dhcp::StringParser(config_id,
local_scalars_.getStringStorage()); local_scalars_.getStringStorage());
} else if (config_id == "digest_bits") { } else if (config_id == "digest-bits") {
parser = new isc::dhcp::Uint32Parser(config_id, parser = new isc::dhcp::Uint32Parser(config_id,
local_scalars_.getUint32Storage()); local_scalars_.getUint32Storage());
} else { } else {
@@ -588,7 +588,7 @@ DnsServerInfoParser::build(isc::data::ConstElementPtr server_config) {
// local storage. They're all optional, so no try-catch here. // local storage. They're all optional, so no try-catch here.
pos["hostname"] = local_scalars_.getParam("hostname", hostname, pos["hostname"] = local_scalars_.getParam("hostname", hostname,
DCfgContextBase::OPTIONAL); DCfgContextBase::OPTIONAL);
pos["ip_address"] = local_scalars_.getParam("ip_address", ip_address, pos["ip-address"] = local_scalars_.getParam("ip-address", ip_address,
DCfgContextBase::OPTIONAL); DCfgContextBase::OPTIONAL);
pos["port"] = local_scalars_.getParam("port", port, pos["port"] = local_scalars_.getParam("port", port,
DCfgContextBase::OPTIONAL); DCfgContextBase::OPTIONAL);
@@ -632,7 +632,7 @@ DnsServerInfoParser::build(isc::data::ConstElementPtr server_config) {
serverInfo.reset(new DnsServerInfo(hostname, io_addr, port)); serverInfo.reset(new DnsServerInfo(hostname, io_addr, port));
} catch (const isc::asiolink::IOError& ex) { } catch (const isc::asiolink::IOError& ex) {
isc_throw(D2CfgError, "Dns Server : invalid IP address : " isc_throw(D2CfgError, "Dns Server : invalid IP address : "
<< ip_address << " (" << pos["ip_address"] << ")"); << ip_address << " (" << pos["ip-address"] << ")");
} }
} }
@@ -648,7 +648,7 @@ DnsServerInfoParser::createConfigParser(const std::string& config_id,
// Based on the configuration id of the element, create the appropriate // Based on the configuration id of the element, create the appropriate
// parser. Scalars are set to use the parser's local scalar storage. // parser. Scalars are set to use the parser's local scalar storage.
if ((config_id == "hostname") || if ((config_id == "hostname") ||
(config_id == "ip_address")) { (config_id == "ip-address")) {
parser = new isc::dhcp::StringParser(config_id, parser = new isc::dhcp::StringParser(config_id,
local_scalars_.getStringStorage()); local_scalars_.getStringStorage());
} else if (config_id == "port") { } else if (config_id == "port") {
@@ -760,7 +760,7 @@ DdnsDomainParser::build(isc::data::ConstElementPtr domain_config) {
// Any required that are missing will throw. // Any required that are missing will throw.
try { try {
pos["name"] = local_scalars_.getParam("name", name); pos["name"] = local_scalars_.getParam("name", name);
pos["key_name"] = local_scalars_.getParam("key_name", key_name, pos["key-name"] = local_scalars_.getParam("key-name", key_name,
DCfgContextBase::OPTIONAL); DCfgContextBase::OPTIONAL);
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
isc_throw(D2CfgError, "DdnsDomain incomplete : " << ex.what() isc_throw(D2CfgError, "DdnsDomain incomplete : " << ex.what()
@@ -796,7 +796,7 @@ DdnsDomainParser::build(isc::data::ConstElementPtr domain_config) {
if (!tsig_key_info) { if (!tsig_key_info) {
isc_throw(D2CfgError, "DdnsDomain : " << name isc_throw(D2CfgError, "DdnsDomain : " << name
<< " specifies an undefined key: " << key_name << " specifies an undefined key: " << key_name
<< " (" << pos["key_name"] << ")"); << " (" << pos["key-name"] << ")");
} }
} }
@@ -814,10 +814,10 @@ DdnsDomainParser::createConfigParser(const std::string& config_id,
// Based on the configuration id of the element, create the appropriate // Based on the configuration id of the element, create the appropriate
// parser. Scalars are set to use the parser's local scalar storage. // parser. Scalars are set to use the parser's local scalar storage.
if ((config_id == "name") || if ((config_id == "name") ||
(config_id == "key_name")) { (config_id == "key-name")) {
parser = new isc::dhcp::StringParser(config_id, parser = new isc::dhcp::StringParser(config_id,
local_scalars_.getStringStorage()); local_scalars_.getStringStorage());
} else if (config_id == "dns_servers") { } else if (config_id == "dns-servers") {
// Server list parser is given in our local server storage. It will pass // Server list parser is given in our local server storage. It will pass
// this down to its server parsers and is where they will write their // this down to its server parsers and is where they will write their
// server instances upon commit. // server instances upon commit.
@@ -918,7 +918,7 @@ DdnsDomainListMgrParser::createConfigParser(const std::string& config_id,
const isc::data::Element:: const isc::data::Element::
Position& pos) { Position& pos) {
DhcpConfigParser* parser = NULL; DhcpConfigParser* parser = NULL;
if (config_id == "ddns_domains") { if (config_id == "ddns-domains") {
// Domain list parser is given our local domain storage. It will pass // Domain list parser is given our local domain storage. It will pass
// this down to its domain parsers and is where they will write their // this down to its domain parsers and is where they will write their
// domain instances upon commit. // domain instances upon commit.

View File

@@ -87,9 +87,9 @@ namespace d2 {
/// @code /// @code
/// { /// {
/// "interface" : "eth1" , /// "interface" : "eth1" ,
/// "ip_address" : "192.168.1.33" , /// "ip-address" : "192.168.1.33" ,
/// "port" : 88 , /// "port" : 88 ,
/// "tsig_keys": /// "tsig-keys":
//// [ //// [
/// { /// {
/// "name": "d2_key.tmark.org" , /// "name": "d2_key.tmark.org" ,
@@ -97,14 +97,14 @@ namespace d2 {
/// "secret": "0123456989" /// "secret": "0123456989"
/// } /// }
/// ], /// ],
/// "forward_ddns" : /// "forward-ddns" :
/// { /// {
/// "ddns_domains": /// "ddns-domains":
/// [ /// [
/// { /// {
/// "name": "tmark.org." , /// "name": "tmark.org." ,
/// "key_name": "d2_key.tmark.org" , /// "key-name": "d2_key.tmark.org" ,
/// "dns_servers" : /// "dns-servers" :
/// [ /// [
/// { "hostname": "fserver.tmark.org" }, /// { "hostname": "fserver.tmark.org" },
/// { "hostname": "f2server.tmark.org" } /// { "hostname": "f2server.tmark.org" }
@@ -112,24 +112,24 @@ namespace d2 {
/// }, /// },
/// { /// {
/// "name": "pub.tmark.org." , /// "name": "pub.tmark.org." ,
/// "key_name": "d2_key.tmark.org" , /// "key-name": "d2_key.tmark.org" ,
/// "dns_servers" : /// "dns-servers" :
/// [ /// [
/// { "hostname": "f3server.tmark.org" } /// { "hostname": "f3server.tmark.org" }
/// ] /// ]
/// } /// }
/// ] /// ]
/// }, /// },
/// "reverse_ddns" : /// "reverse-ddns" :
/// { /// {
/// "ddns_domains": /// "ddns-domains":
/// [ /// [
/// { /// {
/// "name": " 0.168.192.in.addr.arpa." , /// "name": " 0.168.192.in.addr.arpa." ,
/// "key_name": "d2_key.tmark.org" , /// "key-name": "d2_key.tmark.org" ,
/// "dns_servers" : /// "dns-servers" :
/// [ /// [
/// { "ip_address": "127.0.0.101" , "port": 100 } /// { "ip-address": "127.0.0.101" , "port": 100 }
/// ] /// ]
/// } /// }
/// ] /// ]
@@ -742,7 +742,7 @@ typedef boost::shared_ptr<DScalarContext> DScalarContextPtr;
/// @brief Parser for TSIGKeyInfo /// @brief Parser for TSIGKeyInfo
/// ///
/// This class parses the configuration element "tsig_key" defined in /// This class parses the configuration element "tsig-key" defined in
/// src/bin/d2/dhcp-ddns.spec and creates an instance of a TSIGKeyInfo. /// src/bin/d2/dhcp-ddns.spec and creates an instance of a TSIGKeyInfo.
class TSIGKeyInfoParser : public isc::dhcp::DhcpConfigParser { class TSIGKeyInfoParser : public isc::dhcp::DhcpConfigParser {
public: public:
@@ -758,16 +758,16 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~TSIGKeyInfoParser(); virtual ~TSIGKeyInfoParser();
/// @brief Performs the actual parsing of the given "tsig_key" element. /// @brief Performs the actual parsing of the given "tsig-key" element.
/// ///
/// Parses a configuration for the elements needed to instantiate a /// Parses a configuration for the elements needed to instantiate a
/// TSIGKeyInfo, validates those entries, creates a TSIGKeyInfo instance /// TSIGKeyInfo, validates those entries, creates a TSIGKeyInfo instance
/// then attempts to add to a list of keys /// then attempts to add to a list of keys
/// ///
/// @param key_config is the "tsig_key" configuration to parse /// @param key_config is the "tsig-key" configuration to parse
virtual void build(isc::data::ConstElementPtr key_config); virtual void build(isc::data::ConstElementPtr key_config);
/// @brief Creates a parser for the given "tsig_key" member element id. /// @brief Creates a parser for the given "tsig-key" member element id.
/// ///
/// The key elements currently supported are(see dhcp-ddns.spec): /// The key elements currently supported are(see dhcp-ddns.spec):
/// 1. name /// 1. name
@@ -776,7 +776,7 @@ public:
/// 4. secret /// 4. secret
/// ///
/// @param config_id is the "item_name" for a specific member element of /// @param config_id is the "item_name" for a specific member element of
/// the "tsig_key" specification. /// the "tsig-key" specification.
/// @param pos position within the configuration text (or file) of element /// @param pos position within the configuration text (or file) of element
/// to be parsed. This is passed for error messaging. /// to be parsed. This is passed for error messaging.
/// ///
@@ -811,7 +811,7 @@ private:
/// @brief Parser for a list of TSIGKeyInfos /// @brief Parser for a list of TSIGKeyInfos
/// ///
/// This class parses a list of "tsig_key" configuration elements. /// This class parses a list of "tsig-key" configuration elements.
/// (see src/bin/d2/dhcp-ddns.spec). The TSIGKeyInfo instances are added /// (see src/bin/d2/dhcp-ddns.spec). The TSIGKeyInfo instances are added
/// to the given storage upon commit. /// to the given storage upon commit.
class TSIGKeyInfoListParser : public isc::dhcp::DhcpConfigParser { class TSIGKeyInfoListParser : public isc::dhcp::DhcpConfigParser {
@@ -827,7 +827,7 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~TSIGKeyInfoListParser(); virtual ~TSIGKeyInfoListParser();
/// @brief Performs the parsing of the given list "tsig_key" elements. /// @brief Performs the parsing of the given list "tsig-key" elements.
/// ///
/// It iterates over each key entry in the list: /// It iterates over each key entry in the list:
/// 1. Instantiate a TSIGKeyInfoParser for the entry /// 1. Instantiate a TSIGKeyInfoParser for the entry
@@ -865,7 +865,7 @@ private:
/// @brief Parser for DnsServerInfo /// @brief Parser for DnsServerInfo
/// ///
/// This class parses the configuration element "dns_server" defined in /// This class parses the configuration element "dns-server" defined in
/// src/bin/d2/dhcp-ddns.spec and creates an instance of a DnsServerInfo. /// src/bin/d2/dhcp-ddns.spec and creates an instance of a DnsServerInfo.
class DnsServerInfoParser : public isc::dhcp::DhcpConfigParser { class DnsServerInfoParser : public isc::dhcp::DhcpConfigParser {
public: public:
@@ -882,13 +882,13 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~DnsServerInfoParser(); virtual ~DnsServerInfoParser();
/// @brief Performs the actual parsing of the given "dns_server" element. /// @brief Performs the actual parsing of the given "dns-server" element.
/// ///
/// Parses a configuration for the elements needed to instantiate a /// Parses a configuration for the elements needed to instantiate a
/// DnsServerInfo, validates those entries, creates a DnsServerInfo instance /// DnsServerInfo, validates those entries, creates a DnsServerInfo instance
/// then attempts to add to a list of servers. /// then attempts to add to a list of servers.
/// ///
/// @param server_config is the "dns_server" configuration to parse /// @param server_config is the "dns-server" configuration to parse
/// ///
/// @throw D2CfgError if: /// @throw D2CfgError if:
/// -# hostname is not blank, hostname is not yet supported /// -# hostname is not blank, hostname is not yet supported
@@ -896,7 +896,7 @@ public:
/// -# port is 0 /// -# port is 0
virtual void build(isc::data::ConstElementPtr server_config); virtual void build(isc::data::ConstElementPtr server_config);
/// @brief Creates a parser for the given "dns_server" member element id. /// @brief Creates a parser for the given "dns-server" member element id.
/// ///
/// The server elements currently supported are(see dhcp-ddns.spec): /// The server elements currently supported are(see dhcp-ddns.spec):
/// 1. hostname /// 1. hostname
@@ -904,7 +904,7 @@ public:
/// 3. port /// 3. port
/// ///
/// @param config_id is the "item_name" for a specific member element of /// @param config_id is the "item_name" for a specific member element of
/// the "dns_server" specification. /// the "dns-server" specification.
/// @param pos position within the configuration text (or file) of element /// @param pos position within the configuration text (or file) of element
/// to be parsed. This is passed for error messaging. /// to be parsed. This is passed for error messaging.
/// ///
@@ -939,7 +939,7 @@ private:
/// @brief Parser for a list of DnsServerInfos /// @brief Parser for a list of DnsServerInfos
/// ///
/// This class parses a list of "dns_server" configuration elements. /// This class parses a list of "dns-server" configuration elements.
/// (see src/bin/d2/dhcp-ddns.spec). The DnsServerInfo instances are added /// (see src/bin/d2/dhcp-ddns.spec). The DnsServerInfo instances are added
/// to the given storage upon commit. /// to the given storage upon commit.
class DnsServerInfoListParser : public isc::dhcp::DhcpConfigParser { class DnsServerInfoListParser : public isc::dhcp::DhcpConfigParser {
@@ -956,7 +956,7 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~DnsServerInfoListParser(); virtual ~DnsServerInfoListParser();
/// @brief Performs the actual parsing of the given list "dns_server" /// @brief Performs the actual parsing of the given list "dns-server"
/// elements. /// elements.
/// It iterates over each server entry in the list: /// It iterates over each server entry in the list:
/// 1. Instantiate a DnsServerInfoParser for the entry /// 1. Instantiate a DnsServerInfoParser for the entry
@@ -966,7 +966,7 @@ public:
/// The net effect is to parse all of the server entries in the list /// The net effect is to parse all of the server entries in the list
/// prepping them for commit. /// prepping them for commit.
/// ///
/// @param server_list_config is the list of "dns_server" elements to parse. /// @param server_list_config is the list of "dns-server" elements to parse.
virtual void build(isc::data::ConstElementPtr server_list_config); virtual void build(isc::data::ConstElementPtr server_list_config);
/// @brief Commits the list of DnsServerInfos /// @brief Commits the list of DnsServerInfos
@@ -990,7 +990,7 @@ private:
/// @brief Parser for DdnsDomain /// @brief Parser for DdnsDomain
/// ///
/// This class parses the configuration element "ddns_domain" defined in /// This class parses the configuration element "ddns-domain" defined in
/// src/bin/d2/dhcp-ddns.spec and creates an instance of a DdnsDomain. /// src/bin/d2/dhcp-ddns.spec and creates an instance of a DdnsDomain.
class DdnsDomainParser : public isc::dhcp::DhcpConfigParser { class DdnsDomainParser : public isc::dhcp::DhcpConfigParser {
public: public:
@@ -998,7 +998,7 @@ public:
/// ///
/// @param entry_name is an arbitrary label assigned to this configuration /// @param entry_name is an arbitrary label assigned to this configuration
/// definition. Since domains are specified in a list this value is likely /// definition. Since domains are specified in a list this value is likely
/// be something akin to "forward_ddns:0", set during parsing. /// be something akin to "forward-ddns:0", set during parsing.
/// @param domains is a pointer to the storage area to which the parser /// @param domains is a pointer to the storage area to which the parser
/// @param keys is a pointer to a map of the defined TSIG keys. /// @param keys is a pointer to a map of the defined TSIG keys.
/// should commit the newly created DdnsDomain instance. /// should commit the newly created DdnsDomain instance.
@@ -1008,16 +1008,16 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~DdnsDomainParser(); virtual ~DdnsDomainParser();
/// @brief Performs the actual parsing of the given "ddns_domain" element. /// @brief Performs the actual parsing of the given "ddns-domain" element.
/// ///
/// Parses a configuration for the elements needed to instantiate a /// Parses a configuration for the elements needed to instantiate a
/// DdnsDomain, validates those entries, creates a DdnsDomain instance /// DdnsDomain, validates those entries, creates a DdnsDomain instance
/// then attempts to add it to a list of domains. /// then attempts to add it to a list of domains.
/// ///
/// @param domain_config is the "ddns_domain" configuration to parse /// @param domain_config is the "ddns-domain" configuration to parse
virtual void build(isc::data::ConstElementPtr domain_config); virtual void build(isc::data::ConstElementPtr domain_config);
/// @brief Creates a parser for the given "ddns_domain" member element id. /// @brief Creates a parser for the given "ddns-domain" member element id.
/// ///
/// The domain elements currently supported are(see dhcp-ddns.spec): /// The domain elements currently supported are(see dhcp-ddns.spec):
/// 1. name /// 1. name
@@ -1025,7 +1025,7 @@ public:
/// 3. dns_servers /// 3. dns_servers
/// ///
/// @param config_id is the "item_name" for a specific member element of /// @param config_id is the "item_name" for a specific member element of
/// the "ddns_domain" specification. /// the "ddns-domain" specification.
/// @param pos position within the configuration text (or file) of element /// @param pos position within the configuration text (or file) of element
/// to be parsed. This is passed for error messaging. /// to be parsed. This is passed for error messaging.
/// ///
@@ -1071,7 +1071,7 @@ private:
/// @brief Parser for a list of DdnsDomains /// @brief Parser for a list of DdnsDomains
/// ///
/// This class parses a list of "ddns_domain" configuration elements. /// This class parses a list of "ddns-domain" configuration elements.
/// (see src/bin/d2/dhcp-ddns.spec). The DdnsDomain instances are added /// (see src/bin/d2/dhcp-ddns.spec). The DdnsDomain instances are added
/// to the given storage upon commit. /// to the given storage upon commit.
class DdnsDomainListParser : public isc::dhcp::DhcpConfigParser { class DdnsDomainListParser : public isc::dhcp::DhcpConfigParser {
@@ -1089,7 +1089,7 @@ public:
/// @brief Destructor /// @brief Destructor
virtual ~DdnsDomainListParser(); virtual ~DdnsDomainListParser();
/// @brief Performs the actual parsing of the given list "ddns_domain" /// @brief Performs the actual parsing of the given list "ddns-domain"
/// elements. /// elements.
/// It iterates over each domain entry in the list: /// It iterates over each domain entry in the list:
/// 1. Instantiate a DdnsDomainParser for the entry /// 1. Instantiate a DdnsDomainParser for the entry
@@ -1099,7 +1099,7 @@ public:
/// The net effect is to parse all of the domain entries in the list /// The net effect is to parse all of the domain entries in the list
/// prepping them for commit. /// prepping them for commit.
/// ///
/// @param domain_list_config is the list of "ddns_domain" elements to /// @param domain_list_config is the list of "ddns-domain" elements to
/// parse. /// parse.
virtual void build(isc::data::ConstElementPtr domain_list_config); virtual void build(isc::data::ConstElementPtr domain_list_config);
@@ -1130,8 +1130,8 @@ private:
/// @brief Parser for DdnsDomainListMgr /// @brief Parser for DdnsDomainListMgr
/// ///
/// This class parses the configuration elements "forward_ddns" and /// This class parses the configuration elements "forward-ddns" and
/// "reverse_ddns" as defined in src/bin/d2/dhcp-ddns.spec. It populates the /// "reverse-ddns" as defined in src/bin/d2/dhcp-ddns.spec. It populates the
/// given DdnsDomainListMgr with parsed information upon commit. Note that /// given DdnsDomainListMgr with parsed information upon commit. Note that
/// unlike other parsers, this parser does NOT instantiate the final object /// unlike other parsers, this parser does NOT instantiate the final object
/// during the commit phase, it populates it. It must pre-exist. /// during the commit phase, it populates it. It must pre-exist.

View File

@@ -5,7 +5,7 @@
"module_description": "DHPC-DDNS Service", "module_description": "DHPC-DDNS Service",
"config_data": [ "config_data": [
{ {
"item_name": "ip_address", "item_name": "ip-address",
"item_type": "string", "item_type": "string",
"item_optional": false, "item_optional": false,
"item_default": "127.0.0.1" "item_default": "127.0.0.1"
@@ -17,31 +17,31 @@
"item_default": 53001 "item_default": 53001
}, },
{ {
"item_name": "dns_server_timeout", "item_name": "dns-server-timeout",
"item_type": "integer", "item_type": "integer",
"item_optional": true, "item_optional": true,
"item_default": 100 "item_default": 100
}, },
{ {
"item_name": "ncr_protocol", "item_name": "ncr-protocol",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "UDP" "item_default": "UDP"
}, },
{ {
"item_name": "ncr_format", "item_name": "ncr-format",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "JSON" "item_default": "JSON"
}, },
{ {
"item_name": "tsig_keys", "item_name": "tsig-keys",
"item_type": "list", "item_type": "list",
"item_optional": true, "item_optional": true,
"item_default": [], "item_default": [],
"list_item_spec": "list_item_spec":
{ {
"item_name": "tsig_key", "item_name": "tsig-key",
"item_type": "map", "item_type": "map",
"item_optional": false, "item_optional": false,
"item_default": {"algorithm" : "HMAC-MD5"}, "item_default": {"algorithm" : "HMAC-MD5"},
@@ -59,7 +59,7 @@
"item_default": "" "item_default": ""
}, },
{ {
"item_name": "digest_bits", "item_name": "digest-bits",
"item_type": "integer", "item_type": "integer",
"item_optional": true, "item_optional": true,
"item_default": 0 "item_default": 0
@@ -73,19 +73,19 @@
} }
}, },
{ {
"item_name": "forward_ddns", "item_name": "forward-ddns",
"item_type": "map", "item_type": "map",
"item_optional": true, "item_optional": true,
"item_default": {}, "item_default": {},
"map_item_spec": [ "map_item_spec": [
{ {
"item_name": "ddns_domains", "item_name": "ddns-domains",
"item_type": "list", "item_type": "list",
"item_optional": false, "item_optional": false,
"item_default": [], "item_default": [],
"list_item_spec": "list_item_spec":
{ {
"item_name": "ddns_domain", "item_name": "ddns-domain",
"item_type": "map", "item_type": "map",
"item_optional": false, "item_optional": false,
"item_default": {}, "item_default": {},
@@ -98,20 +98,20 @@
}, },
{ {
"item_name": "key_name", "item_name": "key-name",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "" "item_default": ""
}, },
{ {
"item_name": "dns_servers", "item_name": "dns-servers",
"item_type": "list", "item_type": "list",
"item_optional": false, "item_optional": false,
"item_default": [], "item_default": [],
"list_item_spec": "list_item_spec":
{ {
"item_name": "dns_server", "item_name": "dns-server",
"item_type": "map", "item_type": "map",
"item_optional": false, "item_optional": false,
"item_default": {}, "item_default": {},
@@ -123,7 +123,7 @@
"item_default": "" "item_default": ""
}, },
{ {
"item_name": "ip_address", "item_name": "ip-address",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "" "item_default": ""
@@ -141,19 +141,19 @@
}, },
{ {
"item_name": "reverse_ddns", "item_name": "reverse-ddns",
"item_type": "map", "item_type": "map",
"item_optional": true, "item_optional": true,
"item_default": {}, "item_default": {},
"map_item_spec": [ "map_item_spec": [
{ {
"item_name": "ddns_domains", "item_name": "ddns-domains",
"item_type": "list", "item_type": "list",
"item_optional": false, "item_optional": false,
"item_default": [], "item_default": [],
"list_item_spec": "list_item_spec":
{ {
"item_name": "ddns_domain", "item_name": "ddns-domain",
"item_type": "map", "item_type": "map",
"item_optional": false, "item_optional": false,
"item_default": {}, "item_default": {},
@@ -166,20 +166,20 @@
}, },
{ {
"item_name": "key_name", "item_name": "key-name",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "" "item_default": ""
}, },
{ {
"item_name": "dns_servers", "item_name": "dns-servers",
"item_type": "list", "item_type": "list",
"item_optional": false, "item_optional": false,
"item_default": [], "item_default": [],
"list_item_spec": "list_item_spec":
{ {
"item_name": "dns_server", "item_name": "dns-server",
"item_type": "map", "item_type": "map",
"item_optional": false, "item_optional": false,
"item_default": {}, "item_default": {},
@@ -191,7 +191,7 @@
"item_default": "" "item_default": ""
}, },
{ {
"item_name": "ip_address", "item_name": "ip-address",
"item_type": "string", "item_type": "string",
"item_optional": true, "item_optional": true,
"item_default": "" "item_default": ""

View File

@@ -89,14 +89,14 @@ public:
std::ostringstream config; std::ostringstream config;
config << config <<
"{" "{"
" \"ip_address\": \"" << ip_address << "\" , " " \"ip-address\": \"" << ip_address << "\" , "
" \"port\": " << port << " , " " \"port\": " << port << " , "
" \"dns_server_timeout\": " << dns_server_timeout << " , " " \"dns-server-timeout\": " << dns_server_timeout << " , "
" \"ncr_protocol\": \"" << ncr_protocol << "\" , " " \"ncr-protocol\": \"" << ncr_protocol << "\" , "
" \"ncr_format\": \"" << ncr_format << "\", " " \"ncr-format\": \"" << ncr_format << "\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
return (config.str()); return (config.str());
@@ -396,12 +396,12 @@ TEST_F(D2CfgMgrTest, defaultValues) {
std::string config = std::string config =
"{" "{"
" \"port\": 777 , " " \"port\": 777 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
runConfig(config); runConfig(config);
@@ -411,13 +411,13 @@ TEST_F(D2CfgMgrTest, defaultValues) {
// Check that omitting port gets you its default // Check that omitting port gets you its default
config = config =
"{" "{"
" \"ip_address\": \"192.0.0.1\" , " " \"ip-address\": \"192.0.0.1\" , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
runConfig(config); runConfig(config);
@@ -426,13 +426,13 @@ TEST_F(D2CfgMgrTest, defaultValues) {
// Check that omitting timeout gets you its default // Check that omitting timeout gets you its default
config = config =
"{" "{"
" \"ip_address\": \"192.0.0.1\" , " " \"ip-address\": \"192.0.0.1\" , "
" \"port\": 777 , " " \"port\": 777 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
runConfig(config); runConfig(config);
@@ -442,13 +442,13 @@ TEST_F(D2CfgMgrTest, defaultValues) {
// Check that protocol timeout gets you its default // Check that protocol timeout gets you its default
config = config =
"{" "{"
" \"ip_address\": \"192.0.0.1\" , " " \"ip-address\": \"192.0.0.1\" , "
" \"port\": 777 , " " \"port\": 777 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
runConfig(config); runConfig(config);
@@ -458,13 +458,13 @@ TEST_F(D2CfgMgrTest, defaultValues) {
// Check that format timeout gets you its default // Check that format timeout gets you its default
config = config =
"{" "{"
" \"ip_address\": \"192.0.0.1\" , " " \"ip-address\": \"192.0.0.1\" , "
" \"port\": 777 , " " \"port\": 777 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\", " " \"ncr-protocol\": \"UDP\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
runConfig(config); runConfig(config);
@@ -477,15 +477,15 @@ TEST_F(D2CfgMgrTest, unsupportedTopLevelItems) {
// Check that an unsupported top level parameter fails. // Check that an unsupported top level parameter fails.
std::string config = std::string config =
"{" "{"
" \"ip_address\": \"127.0.0.1\", " " \"ip-address\": \"127.0.0.1\", "
" \"port\": 777 , " " \"port\": 777 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {}, " "\"reverse-ddns\" : {}, "
"\"bogus_param\" : true " "\"bogus-param\" : true "
"}"; "}";
runConfig(config, SHOULD_FAIL); runConfig(config, SHOULD_FAIL);
@@ -494,16 +494,16 @@ TEST_F(D2CfgMgrTest, unsupportedTopLevelItems) {
// D2 these fail as they are not in the parse order. // D2 these fail as they are not in the parse order.
config = config =
"{" "{"
" \"ip_address\": \"127.0.0.1\", " " \"ip-address\": \"127.0.0.1\", "
" \"port\": 777 , " " \"port\": 777 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"bogus_object_one\" : {}, " "\"bogus-object-one\" : {}, "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {}, " "\"reverse-ddns\" : {}, "
"\"bogus_object_two\" : {} " "\"bogus-object-two\" : {} "
"}"; "}";
runConfig(config, SHOULD_FAIL); runConfig(config, SHOULD_FAIL);
@@ -622,7 +622,7 @@ TEST_F(TSIGKeyInfoTest, validEntry) {
std::string config = "{" std::string config = "{"
" \"name\": \"d2_key_one\" , " " \"name\": \"d2_key_one\" , "
" \"algorithm\": \"HMAC-MD5\" , " " \"algorithm\": \"HMAC-MD5\" , "
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
"}"; "}";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -654,13 +654,13 @@ TEST_F(TSIGKeyInfoTest, invalidTSIGKeyList) {
" { \"name\": \"key1\" , " " { \"name\": \"key1\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" " " \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
" }," " },"
// this entry has an invalid algorithm // this entry has an invalid algorithm
" { \"name\": \"key2\" , " " { \"name\": \"key2\" , "
" \"algorithm\": \"\" ," " \"algorithm\": \"\" ,"
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" " " \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
" }," " },"
" { \"name\": \"key3\" , " " { \"name\": \"key3\" , "
@@ -687,12 +687,12 @@ TEST_F(TSIGKeyInfoTest, duplicateTSIGKey) {
" { \"name\": \"key1\" , " " { \"name\": \"key1\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" " " \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
" }," " },"
" { \"name\": \"key2\" , " " { \"name\": \"key2\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" " " \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
" }," " },"
" { \"name\": \"key1\" , " " { \"name\": \"key1\" , "
@@ -719,32 +719,32 @@ TEST_F(TSIGKeyInfoTest, validTSIGKeyList) {
" { \"name\": \"key1\" , " " { \"name\": \"key1\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"digest_bits\": 80 , " " \"digest-bits\": 80 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }," " },"
" { \"name\": \"key2\" , " " { \"name\": \"key2\" , "
" \"algorithm\": \"HMAC-SHA1\" ," " \"algorithm\": \"HMAC-SHA1\" ,"
" \"digest_bits\": 80 , " " \"digest-bits\": 80 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }," " },"
" { \"name\": \"key3\" , " " { \"name\": \"key3\" , "
" \"algorithm\": \"HMAC-SHA256\" ," " \"algorithm\": \"HMAC-SHA256\" ,"
" \"digest_bits\": 128 , " " \"digest-bits\": 128 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }," " },"
" { \"name\": \"key4\" , " " { \"name\": \"key4\" , "
" \"algorithm\": \"HMAC-SHA224\" ," " \"algorithm\": \"HMAC-SHA224\" ,"
" \"digest_bits\": 112 , " " \"digest-bits\": 112 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }," " },"
" { \"name\": \"key5\" , " " { \"name\": \"key5\" , "
" \"algorithm\": \"HMAC-SHA384\" ," " \"algorithm\": \"HMAC-SHA384\" ,"
" \"digest_bits\": 192 , " " \"digest-bits\": 192 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }," " },"
" { \"name\": \"key6\" , " " { \"name\": \"key6\" , "
" \"algorithm\": \"HMAC-SHA512\" ," " \"algorithm\": \"HMAC-SHA512\" ,"
" \"digest_bits\": 256 , " " \"digest-bits\": 256 , "
" \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" " " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
" }" " }"
" ]"; " ]";
@@ -827,20 +827,20 @@ TEST_F(DnsServerInfoTest, invalidEntry) {
// Create a config in which both host and ip address are supplied. // Create a config in which both host and ip address are supplied.
// Verify that build fails. // Verify that build fails.
std::string config = "{ \"hostname\": \"pegasus.tmark\", " std::string config = "{ \"hostname\": \"pegasus.tmark\", "
" \"ip_address\": \"127.0.0.1\" } "; " \"ip-address\": \"127.0.0.1\" } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
EXPECT_THROW(parser_->build(config_set_), D2CfgError); EXPECT_THROW(parser_->build(config_set_), D2CfgError);
// Neither host nor ip address supplied // Neither host nor ip address supplied
// Verify that builds fails. // Verify that builds fails.
config = "{ \"hostname\": \"\", " config = "{ \"hostname\": \"\", "
" \"ip_address\": \"\" } "; " \"ip-address\": \"\" } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
EXPECT_THROW(parser_->build(config_set_), D2CfgError); EXPECT_THROW(parser_->build(config_set_), D2CfgError);
// Create a config with a negative port number. // Create a config with a negative port number.
// Verify that build fails. // Verify that build fails.
config = "{ \"ip_address\": \"192.168.5.6\" ," config = "{ \"ip-address\": \"192.168.5.6\" ,"
" \"port\": -100 }"; " \"port\": -100 }";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
EXPECT_THROW (parser_->build(config_set_), isc::BadValue); EXPECT_THROW (parser_->build(config_set_), isc::BadValue);
@@ -877,7 +877,7 @@ TEST_F(DnsServerInfoTest, validEntry) {
/// reset(); /// reset();
// Valid entries for static ip // Valid entries for static ip
std::string config = " { \"ip_address\": \"127.0.0.1\" , " std::string config = " { \"ip-address\": \"127.0.0.1\" , "
" \"port\": 100 }"; " \"port\": 100 }";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -897,7 +897,7 @@ TEST_F(DnsServerInfoTest, validEntry) {
reset(); reset();
// Valid entries for static ip, no port // Valid entries for static ip, no port
config = " { \"ip_address\": \"192.168.2.5\" }"; config = " { \"ip-address\": \"192.168.2.5\" }";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
// Verify that it builds and commits without throwing. // Verify that it builds and commits without throwing.
@@ -918,9 +918,9 @@ TEST_F(DnsServerInfoTest, validEntry) {
/// entries is detected. /// entries is detected.
TEST_F(ConfigParseTest, invalidServerList) { TEST_F(ConfigParseTest, invalidServerList) {
// Construct a list of servers with an invalid server entry. // Construct a list of servers with an invalid server entry.
std::string config = "[ { \"ip_address\": \"127.0.0.1\" }, " std::string config = "[ { \"ip-address\": \"127.0.0.1\" }, "
"{ \"ip_address\": \"\" }, " "{ \"ip-address\": \"\" }, "
"{ \"ip_address\": \"127.0.0.2\" } ]"; "{ \"ip-address\": \"127.0.0.2\" } ]";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
// Create the server storage and list parser. // Create the server storage and list parser.
@@ -936,9 +936,9 @@ TEST_F(ConfigParseTest, invalidServerList) {
/// a valid configuration. /// a valid configuration.
TEST_F(ConfigParseTest, validServerList) { TEST_F(ConfigParseTest, validServerList) {
// Create a valid list of servers. // Create a valid list of servers.
std::string config = "[ { \"ip_address\": \"127.0.0.1\" }, " std::string config = "[ { \"ip-address\": \"127.0.0.1\" }, "
"{ \"ip_address\": \"127.0.0.2\" }, " "{ \"ip-address\": \"127.0.0.2\" }, "
"{ \"ip_address\": \"127.0.0.3\" } ]"; "{ \"ip-address\": \"127.0.0.3\" } ]";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
// Create the server storage and list parser. // Create the server storage and list parser.
@@ -984,13 +984,13 @@ TEST_F(DdnsDomainTest, invalidDdnsDomainEntry) {
new DdnsDomainParser("test", domains, keys_)), D2CfgError); new DdnsDomainParser("test", domains, keys_)), D2CfgError);
// Create a domain configuration without a name // Create a domain configuration without a name
std::string config = "{ \"key_name\": \"d2_key.tmark.org\" , " std::string config = "{ \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" , " " { \"ip-address\": \"127.0.0.1\" , "
" \"port\": 100 }," " \"port\": 100 },"
" { \"ip_address\": \"127.0.0.2\" , " " { \"ip-address\": \"127.0.0.2\" , "
" \"port\": 200 }," " \"port\": 200 },"
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } "; " \"port\": 300 } ] } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -999,8 +999,8 @@ TEST_F(DdnsDomainTest, invalidDdnsDomainEntry) {
// Create a domain configuration with an empty server list. // Create a domain configuration with an empty server list.
config = "{ \"name\": \"tmark.org\" , " config = "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" ] } "; " ] } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1009,9 +1009,9 @@ TEST_F(DdnsDomainTest, invalidDdnsDomainEntry) {
// Create a domain configuration with a mal-formed server entry. // Create a domain configuration with a mal-formed server entry.
config = "{ \"name\": \"tmark.org\" , " config = "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": -1 } ] } "; " \"port\": -1 } ] } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1020,9 +1020,9 @@ TEST_F(DdnsDomainTest, invalidDdnsDomainEntry) {
// Create a domain configuration without an defined key name // Create a domain configuration without an defined key name
config = "{ \"name\": \"tmark.org\" , " config = "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } "; " \"port\": 300 } ] } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1041,13 +1041,13 @@ TEST_F(DdnsDomainTest, ddnsDomainParsing) {
// servers. // servers.
std::string config = std::string config =
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" , " " { \"ip-address\": \"127.0.0.1\" , "
" \"port\": 100 }," " \"port\": 100 },"
" { \"ip_address\": \"127.0.0.2\" , " " { \"ip-address\": \"127.0.0.2\" , "
" \"port\": 200 }," " \"port\": 200 },"
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } "; " \"port\": 300 } ] } ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1107,23 +1107,23 @@ TEST_F(DdnsDomainTest, DdnsDomainListParsing) {
std::string config = std::string config =
"[ " "[ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" , " " { \"ip-address\": \"127.0.0.1\" , "
" \"port\": 100 }," " \"port\": 100 },"
" { \"ip_address\": \"127.0.0.2\" , " " { \"ip-address\": \"127.0.0.2\" , "
" \"port\": 200 }," " \"port\": 200 },"
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } " " \"port\": 300 } ] } "
", " ", "
"{ \"name\": \"billcat.net\" , " "{ \"name\": \"billcat.net\" , "
" \"key_name\": \"d2_key.billcat.net\" , " " \"key-name\": \"d2_key.billcat.net\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.4\" , " " { \"ip-address\": \"127.0.0.4\" , "
" \"port\": 400 }," " \"port\": 400 },"
" { \"ip_address\": \"127.0.0.5\" , " " { \"ip-address\": \"127.0.0.5\" , "
" \"port\": 500 }," " \"port\": 500 },"
" { \"ip_address\": \"127.0.0.6\" , " " { \"ip-address\": \"127.0.0.6\" , "
" \"port\": 600 } ] } " " \"port\": 600 } ] } "
"] "; "] ";
@@ -1212,13 +1212,13 @@ TEST_F(DdnsDomainTest, duplicateDomain) {
std::string config = std::string config =
"[ " "[ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } " " \"port\": 300 } ] } "
", " ", "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.3\" , " " { \"ip-address\": \"127.0.0.3\" , "
" \"port\": 300 } ] } " " \"port\": 300 } ] } "
"] "; "] ";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1264,12 +1264,12 @@ TEST_F(D2CfgMgrTest, fullConfig) {
// both the forward and reverse ddns managers. Both managers have two // both the forward and reverse ddns managers. Both managers have two
// domains with three servers per domain. // domains with three servers per domain.
std::string config = "{ " std::string config = "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
" \"dns_server_timeout\": 333 , " " \"dns-server-timeout\": 333 , "
" \"ncr_protocol\": \"UDP\" , " " \"ncr-protocol\": \"UDP\" , "
" \"ncr_format\": \"JSON\", " " \"ncr-format\": \"JSON\", "
"\"tsig_keys\": [" "\"tsig-keys\": ["
"{" "{"
" \"name\": \"d2_key.tmark.org\" , " " \"name\": \"d2_key.tmark.org\" , "
" \"algorithm\": \"hmac-md5\" , " " \"algorithm\": \"hmac-md5\" , "
@@ -1278,44 +1278,44 @@ TEST_F(D2CfgMgrTest, fullConfig) {
"{" "{"
" \"name\": \"d2_key.billcat.net\" , " " \"name\": \"d2_key.billcat.net\" , "
" \"algorithm\": \"hmac-md5\" , " " \"algorithm\": \"hmac-md5\" , "
" \"digest_bits\": 120 , " " \"digest-bits\": 120 , "
" \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" " " \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
"}" "}"
"]," "],"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } , " " { \"ip-address\": \"127.0.0.1\" } , "
" { \"ip_address\": \"127.0.0.2\" } , " " { \"ip-address\": \"127.0.0.2\" } , "
" { \"ip_address\": \"127.0.0.3\"} " " { \"ip-address\": \"127.0.0.3\"} "
" ] } " " ] } "
", " ", "
"{ \"name\": \"billcat.net\" , " "{ \"name\": \"billcat.net\" , "
" \"key_name\": \"d2_key.billcat.net\" , " " \"key-name\": \"d2_key.billcat.net\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.4\" } , " " { \"ip-address\": \"127.0.0.4\" } , "
" { \"ip_address\": \"127.0.0.5\" } , " " { \"ip-address\": \"127.0.0.5\" } , "
" { \"ip_address\": \"127.0.0.6\" } " " { \"ip-address\": \"127.0.0.6\" } "
" ] } " " ] } "
"] }," "] },"
"\"reverse_ddns\" : {" "\"reverse-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \" 0.168.192.in.addr.arpa.\" , " "{ \"name\": \" 0.168.192.in.addr.arpa.\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.1.1\" } , " " { \"ip-address\": \"127.0.1.1\" } , "
" { \"ip_address\": \"127.0.2.1\" } , " " { \"ip-address\": \"127.0.2.1\" } , "
" { \"ip_address\": \"127.0.3.1\" } " " { \"ip-address\": \"127.0.3.1\" } "
" ] } " " ] } "
", " ", "
"{ \"name\": \" 0.247.106.in.addr.arpa.\" , " "{ \"name\": \" 0.247.106.in.addr.arpa.\" , "
" \"key_name\": \"d2_key.billcat.net\" , " " \"key-name\": \"d2_key.billcat.net\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.4.1\" }, " " { \"ip-address\": \"127.0.4.1\" }, "
" { \"ip_address\": \"127.0.5.1\" } , " " { \"ip-address\": \"127.0.5.1\" } , "
" { \"ip_address\": \"127.0.6.1\" } " " { \"ip-address\": \"127.0.6.1\" } "
" ] } " " ] } "
"] } }"; "] } }";
@@ -1407,27 +1407,27 @@ TEST_F(D2CfgMgrTest, forwardMatch) {
// Create configuration with one domain, one sub domain, and the wild // Create configuration with one domain, one sub domain, and the wild
// card. // card.
std::string config = "{ " std::string config = "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
"\"tsig_keys\": [] ," "\"tsig-keys\": [] ,"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] } " " ] } "
", " ", "
"{ \"name\": \"one.tmark.org\" , " "{ \"name\": \"one.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.2\" } " " { \"ip-address\": \"127.0.0.2\" } "
" ] } " " ] } "
", " ", "
"{ \"name\": \"*\" , " "{ \"name\": \"*\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.3\" } " " { \"ip-address\": \"127.0.0.3\" } "
" ] } " " ] } "
"] }, " "] }, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
@@ -1480,22 +1480,22 @@ TEST_F(D2CfgMgrTest, forwardMatch) {
TEST_F(D2CfgMgrTest, matchNoWildcard) { TEST_F(D2CfgMgrTest, matchNoWildcard) {
// Create a configuration with one domain, one sub-domain, and NO wild card. // Create a configuration with one domain, one sub-domain, and NO wild card.
std::string config = "{ " std::string config = "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
"\"tsig_keys\": [] ," "\"tsig-keys\": [] ,"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] } " " ] } "
", " ", "
"{ \"name\": \"one.tmark.org\" , " "{ \"name\": \"one.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.2\" } " " { \"ip-address\": \"127.0.0.2\" } "
" ] } " " ] } "
"] }, " "] }, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
" }"; " }";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1527,17 +1527,17 @@ TEST_F(D2CfgMgrTest, matchNoWildcard) {
/// This test verifies that any FQDN matches the wild card. /// This test verifies that any FQDN matches the wild card.
TEST_F(D2CfgMgrTest, matchAll) { TEST_F(D2CfgMgrTest, matchAll) {
std::string config = "{ " std::string config = "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
"\"tsig_keys\": [] ," "\"tsig-keys\": [] ,"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"*\" , " "{ \"name\": \"*\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] } " " ] } "
"] }, " "] }, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
ASSERT_TRUE(fromJSON(config)); ASSERT_TRUE(fromJSON(config));
@@ -1573,32 +1573,32 @@ TEST_F(D2CfgMgrTest, matchAll) {
/// as a match. /// as a match.
TEST_F(D2CfgMgrTest, matchReverse) { TEST_F(D2CfgMgrTest, matchReverse) {
std::string config = "{ " std::string config = "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
"\"tsig_keys\": [] ," "\"tsig-keys\": [] ,"
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {" "\"reverse-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"5.100.168.192.in-addr.arpa.\" , " "{ \"name\": \"5.100.168.192.in-addr.arpa.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] }, " " ] }, "
"{ \"name\": \"100.200.192.in-addr.arpa.\" , " "{ \"name\": \"100.200.192.in-addr.arpa.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] }, " " ] }, "
"{ \"name\": \"170.192.in-addr.arpa.\" , " "{ \"name\": \"170.192.in-addr.arpa.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] }, " " ] }, "
// Note mixed case to test case insensitivity. // Note mixed case to test case insensitivity.
"{ \"name\": \"2.0.3.0.8.b.d.0.1.0.0.2.IP6.ARPA.\" , " "{ \"name\": \"2.0.3.0.8.b.d.0.1.0.0.2.IP6.ARPA.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] }," " ] },"
"{ \"name\": \"*\" , " "{ \"name\": \"*\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] } " " ] } "
"] } }"; "] } }";
@@ -1662,7 +1662,7 @@ TEST_F(D2CfgMgrTest, matchReverse) {
/// ///
/// # Each test has: /// # Each test has:
/// # 1. description - optional text description /// # 1. description - optional text description
/// # 2. should_fail - bool indicator if parsing is expected to file /// # 2. should-fail - bool indicator if parsing is expected to file
/// # (defaults to false) /// # (defaults to false)
/// # 3. data - configuration text to parse /// # 3. data - configuration text to parse
/// # /// #
@@ -1702,15 +1702,16 @@ TEST_F(D2CfgMgrTest, configPermutations) {
// Read in each test For each test, read: // Read in each test For each test, read:
// 1. description - optional text description // 1. description - optional text description
// 2. should_fail - bool indicator if parsing is expected to file (defaults // 2. should-fail - bool indicator if parsing is expected to file (defaults
// to false // to false
// 3. data - configuration text to parse // 3. data - configuration text to parse
// //
// Next attempt to parse the configuration by passing it into // Next attempt to parse the configuration by passing it into
// D2CfgMgr::parseConfig(). Then check the parsing outcome against the // D2CfgMgr::parseConfig(). Then check the parsing outcome against the
// expected outcome as given by should_fail. // expected outcome as given by should-fail.
isc::data::ConstElementPtr test; isc::data::ConstElementPtr test;
BOOST_FOREACH(test, tests->get("test_list")->listValue()) { ASSERT_TRUE(tests->get("test-list"));
BOOST_FOREACH(test, tests->get("test-list")->listValue()) {
// Grab the description. // Grab the description.
std::string description = "<no desc>"; std::string description = "<no desc>";
@@ -1719,10 +1720,10 @@ TEST_F(D2CfgMgrTest, configPermutations) {
elem->getValue(description); elem->getValue(description);
} }
// Grab the outcome flag, should_fail, defaults to false if it's // Grab the outcome flag, should-fail, defaults to false if it's
// not specified. // not specified.
bool should_fail = false; bool should_fail = false;
elem = test->get("should_fail"); elem = test->get("should-fail");
if (elem) { if (elem) {
elem->getValue(should_fail); elem->getValue(should_fail);
} }

View File

@@ -259,11 +259,11 @@ TEST_F(D2ControllerTest, validConfigReload) {
// Define a replacement config. // Define a replacement config.
const char* second_cfg = const char* second_cfg =
"{" "{"
" \"ip_address\": \"192.168.77.1\" , " " \"ip-address\": \"192.168.77.1\" , "
" \"port\": 777 , " " \"port\": 777 , "
"\"tsig_keys\": [], " "\"tsig-keys\": [], "
"\"forward_ddns\" : {}, " "\"forward-ddns\" : {}, "
"\"reverse_ddns\" : {} " "\"reverse-ddns\" : {} "
"}"; "}";
// Schedule to replace the configuration file after launch. This way the // Schedule to replace the configuration file after launch. This way the

View File

@@ -36,26 +36,26 @@ namespace {
/// @brief Valid configuration containing an unavailable IP address. /// @brief Valid configuration containing an unavailable IP address.
const char* bad_ip_d2_config = "{ " const char* bad_ip_d2_config = "{ "
"\"ip_address\" : \"1.1.1.1\" , " "\"ip-address\" : \"1.1.1.1\" , "
"\"port\" : 5031, " "\"port\" : 5031, "
"\"tsig_keys\": [" "\"tsig-keys\": ["
"{ \"name\": \"d2_key.tmark.org\" , " "{ \"name\": \"d2_key.tmark.org\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" " " \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
"} ]," "} ],"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"tmark.org\" , " "{ \"name\": \"tmark.org\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.101\" } " " { \"ip-address\": \"127.0.0.101\" } "
"] } ] }, " "] } ] }, "
"\"reverse_ddns\" : {" "\"reverse-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \" 0.168.192.in.addr.arpa.\" , " "{ \"name\": \" 0.168.192.in.addr.arpa.\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.101\" , " " { \"ip-address\": \"127.0.0.101\" , "
" \"port\": 100 } ] } " " \"port\": 100 } ] } "
"] } }"; "] } }";
@@ -608,11 +608,11 @@ TEST_F(D2ProcessTest, fatalErrorShutdown) {
/// loopback. /// loopback.
TEST_F(D2ProcessTest, notLoopbackTest) { TEST_F(D2ProcessTest, notLoopbackTest) {
const char* config = "{ " const char* config = "{ "
"\"ip_address\" : \"0.0.0.0\" , " "\"ip-address\" : \"0.0.0.0\" , "
"\"port\" : 53001, " "\"port\" : 53001, "
"\"tsig_keys\": []," "\"tsig-keys\": [],"
"\"forward_ddns\" : {}," "\"forward-ddns\" : {},"
"\"reverse_ddns\" : {}" "\"reverse-ddns\" : {}"
"}"; "}";
// Note we don't care nor can we predict if this // Note we don't care nor can we predict if this
@@ -626,11 +626,11 @@ TEST_F(D2ProcessTest, notLoopbackTest) {
/// DHCP_DDNS_NOT_ON_LOOPBACK is not issued. /// DHCP_DDNS_NOT_ON_LOOPBACK is not issued.
TEST_F(D2ProcessTest, v4LoopbackTest) { TEST_F(D2ProcessTest, v4LoopbackTest) {
const char* config = "{ " const char* config = "{ "
"\"ip_address\" : \"127.0.0.1\" , " "\"ip-address\" : \"127.0.0.1\" , "
"\"port\" : 53001, " "\"port\" : 53001, "
"\"tsig_keys\": []," "\"tsig-keys\": [],"
"\"forward_ddns\" : {}," "\"forward-ddns\" : {},"
"\"reverse_ddns\" : {}" "\"reverse-ddns\" : {}"
"}"; "}";
ASSERT_TRUE(runWithConfig(config)); ASSERT_TRUE(runWithConfig(config));
} }
@@ -639,11 +639,11 @@ TEST_F(D2ProcessTest, v4LoopbackTest) {
/// DHCP_DDNS_NOT_ON_LOOPBACK is not issued. /// DHCP_DDNS_NOT_ON_LOOPBACK is not issued.
TEST_F(D2ProcessTest, v6LoopbackTest) { TEST_F(D2ProcessTest, v6LoopbackTest) {
const char* config = "{ " const char* config = "{ "
"\"ip_address\" : \"::1\" , " "\"ip-address\" : \"::1\" , "
"\"port\" : 53001, " "\"port\" : 53001, "
"\"tsig_keys\": []," "\"tsig-keys\": [],"
"\"forward_ddns\" : {}," "\"forward-ddns\" : {},"
"\"reverse_ddns\" : {}" "\"reverse-ddns\" : {}"
"}"; "}";
ASSERT_TRUE(runWithConfig(config)); ASSERT_TRUE(runWithConfig(config));
} }

View File

@@ -122,29 +122,29 @@ public:
void makeCannedConfig() { void makeCannedConfig() {
std::string canned_config_ = std::string canned_config_ =
"{ " "{ "
"\"ip_address\" : \"192.168.1.33\" , " "\"ip-address\" : \"192.168.1.33\" , "
"\"port\" : 88 , " "\"port\" : 88 , "
"\"tsig_keys\": [] ," "\"tsig-keys\": [] ,"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"example.com.\" , " "{ \"name\": \"example.com.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\", \"port\" : 5301 } " " { \"ip-address\": \"127.0.0.1\", \"port\" : 5301 } "
" ] }," " ] },"
"{ \"name\": \"org.\" , " "{ \"name\": \"org.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] }, " " ] }, "
"] }, " "] }, "
"\"reverse_ddns\" : { " "\"reverse-ddns\" : { "
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"1.168.192.in-addr.arpa.\" , " "{ \"name\": \"1.168.192.in-addr.arpa.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\", \"port\" : 5301 } " " { \"ip-address\": \"127.0.0.1\", \"port\" : 5301 } "
" ] }, " " ] }, "
"{ \"name\": \"2.0.3.0.8.B.D.0.1.0.0.2.ip6.arpa.\" , " "{ \"name\": \"2.0.3.0.8.B.D.0.1.0.0.2.ip6.arpa.\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } " " { \"ip-address\": \"127.0.0.1\" } "
" ] } " " ] } "
"] } }"; "] } }";

View File

@@ -24,26 +24,26 @@ namespace isc {
namespace d2 { namespace d2 {
const char* valid_d2_config = "{ " const char* valid_d2_config = "{ "
"\"ip_address\" : \"127.0.0.1\" , " "\"ip-address\" : \"127.0.0.1\" , "
"\"port\" : 5031, " "\"port\" : 5031, "
"\"tsig_keys\": [" "\"tsig-keys\": ["
"{ \"name\": \"d2_key.tmark.org\" , " "{ \"name\": \"d2_key.tmark.org\" , "
" \"algorithm\": \"HMAC-MD5\" ," " \"algorithm\": \"HMAC-MD5\" ,"
" \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" " " \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
"} ]," "} ],"
"\"forward_ddns\" : {" "\"forward-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \"tmark.org.\" , " "{ \"name\": \"tmark.org.\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.101\" } " " { \"ip-address\": \"127.0.0.101\" } "
"] } ] }, " "] } ] }, "
"\"reverse_ddns\" : {" "\"reverse-ddns\" : {"
"\"ddns_domains\": [ " "\"ddns-domains\": [ "
"{ \"name\": \" 0.168.192.in.addr.arpa.\" , " "{ \"name\": \" 0.168.192.in.addr.arpa.\" , "
" \"key_name\": \"d2_key.tmark.org\" , " " \"key-name\": \"d2_key.tmark.org\" , "
" \"dns_servers\" : [ " " \"dns-servers\" : [ "
" { \"ip_address\": \"127.0.0.101\" , " " { \"ip-address\": \"127.0.0.101\" , "
" \"port\": 100 } ] } " " \"port\": 100 } ] } "
"] } }"; "] } }";

File diff suppressed because it is too large Load Diff