MinPingFailLimit( 0 ),
MaxPingFailLimit( 100 ),
StatusNotifierCmd( "" ),
- LinkUpIntervalInMin( 0 ),
- LinkDownIntervalInMin( 0 ),
- MinStableLinkIntervalInMin( 0 ),
- MaxStableLinkIntervalInMin( 60 ),
+ LinkUpIntervalInSec( 0 ),
+ LinkDownIntervalInSec( 0 ),
+ MinStableLinkIntervalInSec( 0 ),
+ MaxStableLinkIntervalInSec( 3600 ),
PingReplyTimeout( 30 ),
MaxAddressResolutionAttempts( 10 ),
ResolvedIpTtlThreshold( 10 ),
StatusNotifierCmd = status_notifier_cmd;
}
-int Configuration::get_link_up_interval_in_min() const
+int Configuration::get_link_up_interval_in_sec() const
{
- return LinkUpIntervalInMin;
+ return LinkUpIntervalInSec;
}
-void Configuration::set_link_up_interval_in_min(
- const int link_up_interval_in_min
+void Configuration::set_link_up_interval_in_sec(
+ const int link_up_interval_in_sec
)
{
- BOOST_ASSERT( ( MinStableLinkIntervalInMin <= link_up_interval_in_min ) && ( link_up_interval_in_min <= MaxStableLinkIntervalInMin ) );
+ BOOST_ASSERT( ( MinStableLinkIntervalInSec <= link_up_interval_in_sec ) && ( link_up_interval_in_sec <= MaxStableLinkIntervalInSec ) );
- LinkUpIntervalInMin = link_up_interval_in_min;
+ LinkUpIntervalInSec = link_up_interval_in_sec;
}
-int Configuration::get_link_down_interval_in_min() const
+int Configuration::get_link_down_interval_in_sec() const
{
- return LinkDownIntervalInMin;
+ return LinkDownIntervalInSec;
}
-void Configuration::set_link_down_interval_in_min(
- const int link_down_interval_in_min
+void Configuration::set_link_down_interval_in_sec(
+ const int link_down_interval_in_sec
)
{
- BOOST_ASSERT( ( MinStableLinkIntervalInMin <= link_down_interval_in_min ) && ( link_down_interval_in_min <= MaxStableLinkIntervalInMin ) );
+ BOOST_ASSERT( ( MinStableLinkIntervalInSec <= link_down_interval_in_sec ) && ( link_down_interval_in_sec <= MaxStableLinkIntervalInSec ) );
- LinkDownIntervalInMin = link_down_interval_in_min;
+ LinkDownIntervalInSec = link_down_interval_in_sec;
}
int Configuration::get_ping_reply_timeout() const
std::string get_status_notifier_cmd() const;
void set_status_notifier_cmd( const std::string &status_notifier_cmd );
- int get_link_up_interval_in_min() const;
- void set_link_up_interval_in_min( const int link_up_interval_in_min );
+ int get_link_up_interval_in_sec() const;
+ void set_link_up_interval_in_sec( const int link_up_interval_in_sec );
- int get_link_down_interval_in_min() const;
- void set_link_down_interval_in_min( const int link_down_interval_in_min );
+ int get_link_down_interval_in_sec() const;
+ void set_link_down_interval_in_sec( const int link_down_interval_in_sec );
int get_ping_reply_timeout() const;
void set_ping_reply_timeout( const int ping_reply_timeout );
int MinPingFailLimit;
int MaxPingFailLimit;
std::string StatusNotifierCmd;
- int LinkUpIntervalInMin;
- int LinkDownIntervalInMin;
- int MinStableLinkIntervalInMin;
- int MaxStableLinkIntervalInMin;
+ int LinkUpIntervalInSec;
+ int LinkDownIntervalInSec;
+ int MinStableLinkIntervalInSec;
+ int MaxStableLinkIntervalInSec;
int PingReplyTimeout;
int MaxAddressResolutionAttempts;
int ResolvedIpTtlThreshold;
LinkDownIntervalOption::LinkDownIntervalOption() :
ConfigurationOption(
"link-down-interval",
- value<int>()->default_value( 2 ), // 2 minutes
- "How long the link must be offline in order to consider it down."
+ value<int>()->default_value( 120 ), // 2 minutes
+ "How many seconds the link must be offline in order to consider it down."
)
{
}
// link-down-interval
if ( 1 <= vm.count( get_command_string() ) )
{
- int link_down_interval_in_min = vm[ get_command_string() ].as<int>();
- configuration->set_link_down_interval_in_min( link_down_interval_in_min );
+ int link_down_interval_secs = vm[ get_command_string() ].as<int>();
+ configuration->set_link_down_interval_in_sec( link_down_interval_secs );
GlobalLogger.info() << get_command_string() << "="
- << link_down_interval_in_min << endl;
+ << link_down_interval_secs << endl;
return true;
}
LinkUpIntervalOption::LinkUpIntervalOption() :
ConfigurationOption(
"link-up-interval",
- value<int>()->default_value( 5 ), // 5 minutes
- "How long the link must be responsive in order to consider it stable."
+ value<int>()->default_value( 300 ), // 5 minutes
+ "How many seconds the link must be responsive in order to consider it stable."
)
{
}
// link-up-interval
if ( 1 <= vm.count( get_command_string() ) )
{
- int link_up_interval_in_min = vm[ get_command_string() ].as<int>();
- configuration->set_link_up_interval_in_min( link_up_interval_in_min );
+ int link_up_interval_secs = vm[ get_command_string() ].as<int>();
+ configuration->set_link_up_interval_in_sec( link_up_interval_secs );
GlobalLogger.info() << get_command_string() << "="
- << link_up_interval_in_min << endl;
+ << link_up_interval_secs << endl;
return true;
}
*
* @param hosts_down_limit The maximum amount of different hosts that can be
* down before the system take any action.
- * @param link_up_interval_in_min The amount of time required to the link to
+ * @param link_up_interval_in_sec The amount of time required to the link to
* stay up before notify.
- * @param link_down_interval_in_min The amount of time required to the link to
+ * @param link_down_interval_in_sec The amount of time required to the link to
* stay down before notify.
* @param status_notifier_cmd The command used to notify about link status
* changes.
*/
LinkStatus::LinkStatus(
const int hosts_down_limit,
- const int link_up_interval_in_min,
- const int link_down_interval_in_min,
+ const int link_up_interval_in_sec,
+ const int link_down_interval_in_sec,
const string &status_notifier_cmd
) :
HostsDownLimit( hosts_down_limit ),
HostsDownList(),
- LinkUpIntervalInMin( link_up_interval_in_min ),
- LinkDownIntervalInMin( link_down_interval_in_min ),
+ LinkUpIntervalInSec( link_up_interval_in_sec ),
+ LinkDownIntervalInSec( link_down_interval_in_sec ),
CurrentLinkStatus( Status_Down ),
CurrentNotificationStatus( NotificationStatus_NotReported ),
TimeLinkStatusChanged( microsec_clock::universal_time() ),
StatusNotifierCmd( new StatusNotifierCommand( status_notifier_cmd ) )
{
BOOST_ASSERT( 0 <= hosts_down_limit );
- BOOST_ASSERT( 0 <= link_up_interval_in_min );
- BOOST_ASSERT( 0 <= link_down_interval_in_min );
+ BOOST_ASSERT( 0 <= link_up_interval_in_sec );
+ BOOST_ASSERT( 0 <= link_down_interval_in_sec );
}
LinkStatus::~LinkStatus()
{
ptime now = microsec_clock::universal_time();
long amount_time_link_is_up = (now - TimeLinkStatusChanged).total_seconds();
- long link_up_interval_in_sec = LinkUpIntervalInMin * 60;
- if ( amount_time_link_is_up >= link_up_interval_in_sec )
+ if ( amount_time_link_is_up >= LinkUpIntervalInSec )
{
return true;
}
{
ptime now = microsec_clock::universal_time();
long amount_time_link_is_down = (now - TimeLinkStatusChanged).total_seconds();
- long link_down_interval_in_sec = LinkDownIntervalInMin * 60;
- if ( amount_time_link_is_down >= link_down_interval_in_sec )
+ if ( amount_time_link_is_down >= LinkDownIntervalInSec )
{
return true;
}
public:
LinkStatus(
const int hosts_down_limit,
- const int link_up_interval_in_min,
- const int link_down_interval_in_min,
+ const int link_up_interval_in_sec,
+ const int link_down_interval_in_sec,
const std::string &status_notifier_cmd
);
~LinkStatus();
/// List of hosts down (obvious isn't it?)
std::set<std::string> HostsDownList;
/// Interval the link have to be stable in order to consider it is functional
- const int LinkUpIntervalInMin;
+ const int LinkUpIntervalInSec;
/// Interval the link have to be down in order to consider it is non-functional
- const int LinkDownIntervalInMin;
+ const int LinkDownIntervalInSec;
/// Keep track of the actual link status
LinkStatus::Status CurrentLinkStatus;
/// Indicates if the last link status change was notified
)
{
int hosts_down_limit = configuration->get_hosts_down_limit();
- int link_up_interval_in_min = configuration->get_link_up_interval_in_min();
- int link_down_interval_in_min = configuration->get_link_down_interval_in_min();
+ int link_up_interval_in_sec = configuration->get_link_up_interval_in_sec();
+ int link_down_interval_in_sec = configuration->get_link_down_interval_in_sec();
string status_notifier_cmd = configuration->get_status_notifier_cmd();
LinkStatusItem link_analyzer(
new LinkStatus(
hosts_down_limit,
- link_up_interval_in_min,
- link_down_interval_in_min,
+ link_up_interval_in_sec,
+ link_down_interval_in_sec,
status_notifier_cmd
)
);
"--hosts-down-limit=2",
"--ping-fail-limit=80",
"--status-notifier-cmd=scripts/notifier_command.sh",
- "--link-up-interval=10",
- "--link-down-interval=10",
+ "--link-up-interval=600",
+ "--link-down-interval=600",
// 1st host
"--host.name=www.intra2net.com",
"--host.port=80",
BOOST_CHECK_EQUAL( config.get_hosts_down_limit(), 2 );
BOOST_CHECK_EQUAL( config.get_ping_fail_limit(), 80 );
BOOST_CHECK_EQUAL( config.get_status_notifier_cmd(), "scripts/notifier_command.sh" );
- BOOST_CHECK_EQUAL( config.get_link_up_interval_in_min(), 10 );
- BOOST_CHECK_EQUAL( config.get_link_down_interval_in_min(), 10 );
+ BOOST_CHECK_EQUAL( config.get_link_up_interval_in_sec(), 600 );
+ BOOST_CHECK_EQUAL( config.get_link_down_interval_in_sec(), 600 );
BOOST_CHECK_EQUAL( config.get_hosts().size(), 3 );
HostItem host1 = config.get_hosts().at(0);
file << "hosts-down-limit=2\n";
file << "ping-fail-limit=80\n";
file << "status-notifier-cmd=scripts/notifier_command.sh\n";
- file << "link-up-interval=10\n";
- file << "link-down-interval=10\n";
+ file << "link-up-interval=600\n";
+ file << "link-down-interval=600\n";
// 1st host
file << "[host]\n";
file << "name=www.intra2net.com\n";
BOOST_CHECK_EQUAL( config.get_hosts_down_limit(), 2 );
BOOST_CHECK_EQUAL( config.get_ping_fail_limit(), 80 );
BOOST_CHECK_EQUAL( config.get_status_notifier_cmd(), "scripts/notifier_command.sh" );
- BOOST_CHECK_EQUAL( config.get_link_up_interval_in_min(), 10 );
- BOOST_CHECK_EQUAL( config.get_link_down_interval_in_min(), 10 );
+ BOOST_CHECK_EQUAL( config.get_link_up_interval_in_sec(), 600 );
+ BOOST_CHECK_EQUAL( config.get_link_down_interval_in_sec(), 600 );
BOOST_CHECK_EQUAL( config.get_hosts().size(), 3 );
HostItem host1 = config.get_hosts().at(0);
boost::program_options::variables_map vm;
option_insert( "hosts-down-limit", boost::any( 0 ), vm );
- option_insert( "link-down-interval", boost::any( 30 ), vm );
- option_insert( "link-up-interval", boost::any( 40 ), vm );
+ option_insert( "link-down-interval", boost::any( 30*60 ), vm );
+ option_insert( "link-up-interval", boost::any( 40*60 ), vm );
option_insert( "nameserver", boost::any( std::string("localhost") ), vm );
option_insert( "ping-fail-limit", boost::any( 50 ), vm );
option_insert( "default-source-network-interface", boost::any( std::string("wlan1") ), vm );
config_options.parse_configuration_options( vm, &configuration );
BOOST_CHECK_EQUAL( configuration.get_hosts_down_limit(), 0 );
- BOOST_CHECK_EQUAL( configuration.get_link_down_interval_in_min(), 30 );
- BOOST_CHECK_EQUAL( configuration.get_link_up_interval_in_min(), 40 );
+ BOOST_CHECK_EQUAL( configuration.get_link_down_interval_in_sec(), 30*60 );
+ BOOST_CHECK_EQUAL( configuration.get_link_up_interval_in_sec(), 40*60 );
BOOST_CHECK_EQUAL( configuration.get_nameserver(), "localhost" );
BOOST_CHECK_EQUAL( configuration.get_ping_fail_limit(), 50 );
BOOST_CHECK_EQUAL( configuration.get_source_network_interface(), "wlan1" );