From 97837af894d0145566977f293a6cd18aa362a856 Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Thu, 11 Jun 2015 18:45:46 +0200 Subject: [PATCH] changed value of link_up/down_interval from minutes to seconds more work than expected! --- src/config/configuration.cpp | 32 +++++++++++++------------- src/config/configuration.h | 16 ++++++------ src/config/option/linkdownintervaloption.cpp | 10 ++++---- src/config/option/linkupintervaloption.cpp | 10 ++++---- src/link/linkstatus.cpp | 22 ++++++++--------- src/link/linkstatus.h | 8 +++--- src/main.cpp | 8 +++--- test/test_configurationcommandline.cpp | 8 +++--- test/test_configurationfile.cpp | 8 +++--- test/test_configurationoptions.cpp | 8 +++--- 10 files changed, 64 insertions(+), 66 deletions(-) diff --git a/src/config/configuration.cpp b/src/config/configuration.cpp index c030e81..32ed292 100644 --- a/src/config/configuration.cpp +++ b/src/config/configuration.cpp @@ -55,10 +55,10 @@ Configuration::Configuration() : 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 ), @@ -191,32 +191,32 @@ void Configuration::set_status_notifier_cmd( const string &status_notifier_cmd ) 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 diff --git a/src/config/configuration.h b/src/config/configuration.h index 32e9d13..3002665 100644 --- a/src/config/configuration.h +++ b/src/config/configuration.h @@ -81,11 +81,11 @@ public: 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 ); @@ -133,10 +133,10 @@ private: 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; diff --git a/src/config/option/linkdownintervaloption.cpp b/src/config/option/linkdownintervaloption.cpp index 2cc1797..843e79c 100644 --- a/src/config/option/linkdownintervaloption.cpp +++ b/src/config/option/linkdownintervaloption.cpp @@ -34,8 +34,8 @@ using I2n::Logger::GlobalLogger; LinkDownIntervalOption::LinkDownIntervalOption() : ConfigurationOption( "link-down-interval", - value()->default_value( 2 ), // 2 minutes - "How long the link must be offline in order to consider it down." + value()->default_value( 120 ), // 2 minutes + "How many seconds the link must be offline in order to consider it down." ) { } @@ -52,11 +52,11 @@ bool LinkDownIntervalOption::parse( // link-down-interval if ( 1 <= vm.count( get_command_string() ) ) { - int link_down_interval_in_min = vm[ get_command_string() ].as(); - configuration->set_link_down_interval_in_min( link_down_interval_in_min ); + int link_down_interval_secs = vm[ get_command_string() ].as(); + 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; } diff --git a/src/config/option/linkupintervaloption.cpp b/src/config/option/linkupintervaloption.cpp index 5598a59..ae69a2f 100644 --- a/src/config/option/linkupintervaloption.cpp +++ b/src/config/option/linkupintervaloption.cpp @@ -34,8 +34,8 @@ using I2n::Logger::GlobalLogger; LinkUpIntervalOption::LinkUpIntervalOption() : ConfigurationOption( "link-up-interval", - value()->default_value( 5 ), // 5 minutes - "How long the link must be responsive in order to consider it stable." + value()->default_value( 300 ), // 5 minutes + "How many seconds the link must be responsive in order to consider it stable." ) { } @@ -52,11 +52,11 @@ bool LinkUpIntervalOption::parse( // link-up-interval if ( 1 <= vm.count( get_command_string() ) ) { - int link_up_interval_in_min = vm[ get_command_string() ].as(); - configuration->set_link_up_interval_in_min( link_up_interval_in_min ); + int link_up_interval_secs = vm[ get_command_string() ].as(); + 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; } diff --git a/src/link/linkstatus.cpp b/src/link/linkstatus.cpp index 0a44101..aeebb5c 100644 --- a/src/link/linkstatus.cpp +++ b/src/link/linkstatus.cpp @@ -41,31 +41,31 @@ using I2n::Logger::GlobalLogger; * * @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() @@ -221,9 +221,8 @@ bool LinkStatus::is_link_up_enough_time() const { 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; } @@ -238,9 +237,8 @@ bool LinkStatus::is_link_down_enough_time() const { 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; } diff --git a/src/link/linkstatus.h b/src/link/linkstatus.h index 6353f6c..19118f1 100644 --- a/src/link/linkstatus.h +++ b/src/link/linkstatus.h @@ -42,8 +42,8 @@ class LinkStatus 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(); @@ -100,9 +100,9 @@ public: /// List of hosts down (obvious isn't it?) std::set 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 diff --git a/src/main.cpp b/src/main.cpp index 8478bc9..9d27408 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -137,14 +137,14 @@ LinkStatusItem get_status_notifier( ) { 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 ) ); diff --git a/test/test_configurationcommandline.cpp b/test/test_configurationcommandline.cpp index aa7f608..a79ea12 100644 --- a/test/test_configurationcommandline.cpp +++ b/test/test_configurationcommandline.cpp @@ -42,8 +42,8 @@ BOOST_AUTO_TEST_CASE( normal_options ) "--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", @@ -80,8 +80,8 @@ BOOST_AUTO_TEST_CASE( normal_options ) 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); diff --git a/test/test_configurationfile.cpp b/test/test_configurationfile.cpp index b4c1a91..86ef346 100644 --- a/test/test_configurationfile.cpp +++ b/test/test_configurationfile.cpp @@ -47,8 +47,8 @@ BOOST_AUTO_TEST_CASE( normal_options ) 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"; @@ -84,8 +84,8 @@ BOOST_AUTO_TEST_CASE( normal_options ) 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); diff --git a/test/test_configurationoptions.cpp b/test/test_configurationoptions.cpp index bf4e418..30f9a69 100644 --- a/test/test_configurationoptions.cpp +++ b/test/test_configurationoptions.cpp @@ -172,8 +172,8 @@ BOOST_AUTO_TEST_CASE( parse_configuration_options ) 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 ); @@ -184,8 +184,8 @@ BOOST_AUTO_TEST_CASE( parse_configuration_options ) 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" ); -- 1.7.1