Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Adam Osuchowski
Kea
Commits
5763fe88
Commit
5763fe88
authored
Aug 18, 2014
by
Marcin Siodelski
Browse files
[3477] Report configuration summary when configuration is complete.
This change affects DHCP servers and D2.
parent
ba862fb8
Changes
12
Hide whitespace changes
Inline
Side-by-side
src/bin/d2/d2_cfg_mgr.cc
View file @
5763fe88
...
...
@@ -196,6 +196,11 @@ D2CfgMgr::getD2Params() {
return
(
getD2CfgContext
()
->
getD2Params
());
}
std
::
string
D2CfgMgr
::
getConfigSummary
(
const
uint16_t
)
{
return
(
getD2Params
()
->
getConfigSummary
());
}
void
D2CfgMgr
::
buildParams
(
isc
::
data
::
ConstElementPtr
params_config
)
{
// Base class build creates parses and invokes build on each parser.
...
...
src/bin/d2/d2_cfg_mgr.h
View file @
5763fe88
...
...
@@ -238,6 +238,14 @@ public:
/// @return reference to const D2ParamsPtr
const
D2ParamsPtr
&
getD2Params
();
/// @brief Returns configuration summary in the textual format.
///
/// @param selection Bitfield which describes the parts of the configuration
/// to be returned. This parameter is ignored for the D2.
///
/// @return Summary of the configuration in the textual format.
virtual
std
::
string
getConfigSummary
(
const
uint16_t
selection
);
protected:
/// @brief Performs the parsing of the given "params" element.
///
...
...
src/bin/d2/d2_config.cc
View file @
5763fe88
...
...
@@ -22,6 +22,7 @@
#include
<boost/lexical_cast.hpp>
#include
<boost/algorithm/string/predicate.hpp>
#include
<sstream>
#include
<string>
namespace
isc
{
...
...
@@ -88,6 +89,13 @@ D2Params::validateContents() {
}
}
std
::
string
D2Params
::
getConfigSummary
()
const
{
std
::
ostringstream
s
;
s
<<
"listening on "
<<
getIpAddress
()
<<
", port "
<<
getPort
();
return
(
s
.
str
());
}
bool
D2Params
::
operator
==
(
const
D2Params
&
other
)
const
{
return
((
ip_address_
==
other
.
ip_address_
)
&&
...
...
src/bin/d2/d2_config.h
View file @
5763fe88
...
...
@@ -211,6 +211,15 @@ public:
return
(
ncr_format_
);
}
/// @brief Return summary of the configuration used by D2.
///
/// The returned summary of the configuration is meant to be appended to
/// the log message informing about the successful completion of the
/// D2 configuration.
///
/// @return Configuration summary in the textual format.
std
::
string
getConfigSummary
()
const
;
/// @brief Compares two D2Paramss for equality
bool
operator
==
(
const
D2Params
&
other
)
const
;
...
...
src/bin/d2/d_cfg_mgr.cc
View file @
5763fe88
// Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2013
-2014
Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
...
...
@@ -246,7 +246,7 @@ DCfgMgrBase::parseConfig(isc::data::ConstElementPtr config_set) {
}
// Everything was fine. Configuration set processed successfully.
LOG_INFO
(
dctl_logger
,
DCTL_CONFIG_COMPLETE
).
arg
(
""
);
LOG_INFO
(
dctl_logger
,
DCTL_CONFIG_COMPLETE
).
arg
(
getConfigSummary
(
0
)
);
answer
=
isc
::
config
::
createAnswer
(
0
,
"Configuration committed."
);
}
catch
(
const
std
::
exception
&
ex
)
{
...
...
src/bin/d2/d_cfg_mgr.h
View file @
5763fe88
...
...
@@ -308,6 +308,18 @@ public:
return
(
context_
);
}
/// @brief Returns configuration summary in the textual format.
///
/// This method returns the brief text describing the current configuration.
/// It may be used for logging purposes, e.g. whn the new configuration is
/// committed to notify a user about the changes in configuration.
///
/// @param selection Bitfield which describes the parts of the configuration
/// to be returned.
///
/// @return Summary of the configuration in the textual format.
virtual
std
::
string
getConfigSummary
(
const
uint16_t
selection
)
=
0
;
protected:
/// @brief Parses a set of scalar configuration elements into global
/// parameters
...
...
src/bin/d2/tests/d2_cfg_mgr_unittests.cc
View file @
5763fe88
...
...
@@ -376,6 +376,10 @@ TEST_F(D2CfgMgrTest, validParamsEntry) {
// Verify that the global scalars have the proper values.
EXPECT_EQ
(
isc
::
asiolink
::
IOAddress
(
"3001::5"
),
d2_params_
->
getIpAddress
());
// Verify the configuration summary.
EXPECT_EQ
(
"listening on 3001::5, port 777"
,
d2_params_
->
getConfigSummary
());
}
/// @brief Tests default values for D2Params.
...
...
src/bin/d2/tests/d_cfg_mgr_unittests.cc
View file @
5763fe88
...
...
@@ -57,6 +57,11 @@ public:
const
isc
::
data
::
Element
::
Position
&
/* pos */
)
{
return
(
isc
::
dhcp
::
ParserPtr
());
}
/// @brief Returns summary of configuration in the textual format.
virtual
std
::
string
getConfigSummary
(
const
uint16_t
)
{
return
(
""
);
}
};
/// @brief Test fixture class for testing DCfgMgrBase class.
...
...
src/bin/d2/tests/d_test_stubs.h
View file @
5763fe88
...
...
@@ -180,6 +180,13 @@ public:
virtual
isc
::
data
::
ConstElementPtr
command
(
const
std
::
string
&
command
,
isc
::
data
::
ConstElementPtr
args
);
/// @brief Returns configuration summary in the textual format.
///
/// @return Always an empty string.
virtual
std
::
string
getConfigSummary
(
const
uint16_t
)
{
return
(
""
);
}
// @brief Destructor
virtual
~
DStubProcess
();
};
...
...
@@ -701,6 +708,13 @@ public:
const
isc
::
data
::
Element
::
Position
&
pos
=
isc
::
data
::
Element
::
Position
());
/// @brief Returns a summary of the configuration in the textual format.
///
/// @return Always an empty string.
virtual
std
::
string
getConfigSummary
(
const
uint16_t
)
{
return
(
""
);
}
/// @brief A list for remembering the element ids in the order they were
/// parsed.
ElementIdList
parsed_order_
;
...
...
src/bin/dhcp4/json_config_parser.cc
View file @
5763fe88
...
...
@@ -496,9 +496,6 @@ configureDhcp4Server(Dhcpv4Srv&, isc::data::ConstElementPtr config_set) {
return
(
answer
);
}
/// @todo: Append most essential info here (like "2 new subnets configured")
string
config_details
;
LOG_DEBUG
(
dhcp4_logger
,
DBG_DHCP4_COMMAND
,
DHCP4_CONFIG_START
).
arg
(
config_set
->
str
());
...
...
@@ -657,7 +654,9 @@ configureDhcp4Server(Dhcpv4Srv&, isc::data::ConstElementPtr config_set) {
return
(
answer
);
}
LOG_INFO
(
dhcp4_logger
,
DHCP4_CONFIG_COMPLETE
).
arg
(
config_details
);
LOG_INFO
(
dhcp4_logger
,
DHCP4_CONFIG_COMPLETE
)
.
arg
(
CfgMgr
::
instance
().
getConfiguration
()
->
getConfigSummary
(
Configuration
::
CFGSEL_ALL4
));
// Everything was fine. Configuration is successful.
answer
=
isc
::
config
::
createAnswer
(
0
,
"Configuration committed."
);
...
...
src/bin/dhcp6/json_config_parser.cc
View file @
5763fe88
...
...
@@ -698,9 +698,6 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set) {
return
(
answer
);
}
/// @todo: Append most essential info here (like "2 new subnets configured")
string
config_details
;
LOG_DEBUG
(
dhcp6_logger
,
DBG_DHCP6_COMMAND
,
DHCP6_CONFIG_START
).
arg
(
config_set
->
str
());
...
...
@@ -858,7 +855,9 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set) {
return
(
answer
);
}
LOG_INFO
(
dhcp6_logger
,
DHCP6_CONFIG_COMPLETE
).
arg
(
config_details
);
LOG_INFO
(
dhcp6_logger
,
DHCP6_CONFIG_COMPLETE
)
.
arg
(
CfgMgr
::
instance
().
getConfiguration
()
->
getConfigSummary
(
Configuration
::
CFGSEL_ALL6
));
// Everything was fine. Configuration is successful.
answer
=
isc
::
config
::
createAnswer
(
0
,
"Configuration committed."
);
...
...
src/lib/dhcpsrv/configuration.h
View file @
5763fe88
...
...
@@ -106,7 +106,7 @@ struct Configuration {
/// @brief Returns summary of the configuration in the textual format.
///
/// This method returns the brief text describing the current configuration.
/// It may be use for logging purposes, e.g. when the new configuration is
/// It may be use
d
for logging purposes, e.g. when the new configuration is
/// committed to notify a user about the changes in configuration.
///
/// @todo Currently this method uses @c CfgMgr accessors to get the
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment