From: Gunnar Beutner Date: Tue, 28 Jan 2014 10:09:13 +0000 (+0100) Subject: Move the ClearConfigTables function into the DbConnection class. X-Git-Tag: v0.0.7~16^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a23f0110b93b84d18423f64c8b85761d5b15c51;p=icinga2 Move the ClearConfigTables function into the DbConnection class. Refs #5565 --- diff --git a/components/db_ido_mysql/idomysqlconnection.cpp b/components/db_ido_mysql/idomysqlconnection.cpp index 58105d1be..919eb7fa2 100644 --- a/components/db_ido_mysql/idomysqlconnection.cpp +++ b/components/db_ido_mysql/idomysqlconnection.cpp @@ -233,40 +233,6 @@ void IdoMysqlConnection::Reconnect(void) UpdateAllObjects(); } -void IdoMysqlConnection::ClearConfigTables(void) -{ - /* TODO make hardcoded table names modular */ - ClearConfigTable("commands"); - ClearConfigTable("comments"); - ClearConfigTable("contact_addresses"); - ClearConfigTable("contact_notificationcommands"); - ClearConfigTable("contactgroup_members"); - ClearConfigTable("contactgroups"); - ClearConfigTable("contacts"); - ClearConfigTable("contactstatus"); - ClearConfigTable("customvariables"); - ClearConfigTable("customvariablestatus"); - ClearConfigTable("host_contactgroups"); - ClearConfigTable("host_contacts"); - ClearConfigTable("host_parenthosts"); - ClearConfigTable("hostdependencies"); - ClearConfigTable("hostgroup_members"); - ClearConfigTable("hostgroups"); - ClearConfigTable("hosts"); - ClearConfigTable("hoststatus"); - ClearConfigTable("programstatus"); - ClearConfigTable("scheduleddowntime"); - ClearConfigTable("service_contactgroups"); - ClearConfigTable("service_contacts"); - ClearConfigTable("servicedependencies"); - ClearConfigTable("servicegroup_members"); - ClearConfigTable("servicegroups"); - ClearConfigTable("services"); - ClearConfigTable("servicestatus"); - ClearConfigTable("timeperiod_timeranges"); - ClearConfigTable("timeperiods"); -} - void IdoMysqlConnection::ClearConfigTable(const String& table) { Query("DELETE FROM " + GetTablePrefix() + table + " WHERE instance_id = " + Convert::ToString(static_cast(m_InstanceID))); diff --git a/components/db_ido_mysql/idomysqlconnection.h b/components/db_ido_mysql/idomysqlconnection.h index 1100ebc59..52aeb4a84 100644 --- a/components/db_ido_mysql/idomysqlconnection.h +++ b/components/db_ido_mysql/idomysqlconnection.h @@ -83,8 +83,7 @@ private: void InternalExecuteQuery(const DbQuery& query); void InternalCleanUpExecuteQuery(const String& table, const String& time_key, double time_value); - void ClearConfigTables(void); - void ClearConfigTable(const String& table); + virtual void ClearConfigTable(const String& table); void ExceptionHandler(boost::exception_ptr exp); }; diff --git a/components/db_ido_pgsql/idopgsqlconnection.cpp b/components/db_ido_pgsql/idopgsqlconnection.cpp index 21b94a4b3..2013bccd6 100644 --- a/components/db_ido_pgsql/idopgsqlconnection.cpp +++ b/components/db_ido_pgsql/idopgsqlconnection.cpp @@ -236,40 +236,6 @@ void IdoPgsqlConnection::Reconnect(void) UpdateAllObjects(); } -void IdoPgsqlConnection::ClearConfigTables(void) -{ - /* TODO make hardcoded table names modular */ - ClearConfigTable("commands"); - ClearConfigTable("comments"); - ClearConfigTable("contact_addresses"); - ClearConfigTable("contact_notificationcommands"); - ClearConfigTable("contactgroup_members"); - ClearConfigTable("contactgroups"); - ClearConfigTable("contacts"); - ClearConfigTable("contactstatus"); - ClearConfigTable("customvariables"); - ClearConfigTable("customvariablestatus"); - ClearConfigTable("host_contactgroups"); - ClearConfigTable("host_contacts"); - ClearConfigTable("host_parenthosts"); - ClearConfigTable("hostdependencies"); - ClearConfigTable("hostgroup_members"); - ClearConfigTable("hostgroups"); - ClearConfigTable("hosts"); - ClearConfigTable("hoststatus"); - ClearConfigTable("programstatus"); - ClearConfigTable("scheduleddowntime"); - ClearConfigTable("service_contactgroups"); - ClearConfigTable("service_contacts"); - ClearConfigTable("servicedependencies"); - ClearConfigTable("servicegroup_members"); - ClearConfigTable("servicegroups"); - ClearConfigTable("services"); - ClearConfigTable("servicestatus"); - ClearConfigTable("timeperiod_timeranges"); - ClearConfigTable("timeperiods"); -} - void IdoPgsqlConnection::ClearConfigTable(const String& table) { Query("DELETE FROM " + GetTablePrefix() + table + " WHERE instance_id = " + Convert::ToString(static_cast(m_InstanceID))); diff --git a/components/db_ido_pgsql/idopgsqlconnection.h b/components/db_ido_pgsql/idopgsqlconnection.h index 16410f101..7a0046738 100644 --- a/components/db_ido_pgsql/idopgsqlconnection.h +++ b/components/db_ido_pgsql/idopgsqlconnection.h @@ -81,8 +81,7 @@ private: void InternalExecuteQuery(const DbQuery& query); void InternalCleanUpExecuteQuery(const String& table, const String& time_key, double time_value); - void ClearConfigTables(void); - void ClearConfigTable(const String& table); + virtual void ClearConfigTable(const String& table); void ExceptionHandler(boost::exception_ptr exp); }; diff --git a/lib/db_ido/dbconnection.cpp b/lib/db_ido/dbconnection.cpp index 41d8171a1..4b5b5a995 100644 --- a/lib/db_ido/dbconnection.cpp +++ b/lib/db_ido/dbconnection.cpp @@ -292,3 +292,37 @@ void DbConnection::UpdateAllObjects(void) } } } + +void DbConnection::ClearConfigTables(void) +{ + /* TODO make hardcoded table names modular */ + ClearConfigTable("commands"); + ClearConfigTable("comments"); + ClearConfigTable("contact_addresses"); + ClearConfigTable("contact_notificationcommands"); + ClearConfigTable("contactgroup_members"); + ClearConfigTable("contactgroups"); + ClearConfigTable("contacts"); + ClearConfigTable("contactstatus"); + ClearConfigTable("customvariables"); + ClearConfigTable("customvariablestatus"); + ClearConfigTable("host_contactgroups"); + ClearConfigTable("host_contacts"); + ClearConfigTable("host_parenthosts"); + ClearConfigTable("hostdependencies"); + ClearConfigTable("hostgroup_members"); + ClearConfigTable("hostgroups"); + ClearConfigTable("hosts"); + ClearConfigTable("hoststatus"); + ClearConfigTable("programstatus"); + ClearConfigTable("scheduleddowntime"); + ClearConfigTable("service_contactgroups"); + ClearConfigTable("service_contacts"); + ClearConfigTable("servicedependencies"); + ClearConfigTable("servicegroup_members"); + ClearConfigTable("servicegroups"); + ClearConfigTable("services"); + ClearConfigTable("servicestatus"); + ClearConfigTable("timeperiod_timeranges"); + ClearConfigTable("timeperiods"); +} diff --git a/lib/db_ido/dbconnection.h b/lib/db_ido/dbconnection.h index 85e9842c2..0aa88eae7 100644 --- a/lib/db_ido/dbconnection.h +++ b/lib/db_ido/dbconnection.h @@ -72,6 +72,8 @@ protected: void UpdateAllObjects(void); + void ClearConfigTables(void); + private: std::map m_ObjectIDs; std::map m_InsertIDs; @@ -83,6 +85,8 @@ private: void CleanUpHandler(void); + virtual void ClearConfigTable(const String& table) = 0; + static Timer::Ptr m_ProgramStatusTimer; static void InsertRuntimeVariable(const String& key, const Value& value);