mirror of https://github.com/Icinga/icinga2.git
commit
e74586e6a9
|
@ -405,6 +405,11 @@ void IdoMysqlConnection::ExecuteQuery(const DbQuery& query)
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(m_ConnectionMutex);
|
boost::mutex::scoped_lock lock(m_ConnectionMutex);
|
||||||
|
|
||||||
|
ASSERT(query.Category != DbCatInvalid);
|
||||||
|
|
||||||
|
if ((query.Category & GetCategories()) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!m_Connected)
|
if (!m_Connected)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -44,9 +44,6 @@ protected:
|
||||||
virtual void Start(void);
|
virtual void Start(void);
|
||||||
virtual void Stop(void);
|
virtual void Stop(void);
|
||||||
|
|
||||||
virtual void InternalSerialize(const Dictionary::Ptr& bag, int attributeTypes) const;
|
|
||||||
virtual void InternalDeserialize(const Dictionary::Ptr& bag, int attributeTypes);
|
|
||||||
|
|
||||||
virtual void ActivateObject(const DbObject::Ptr& dbobj);
|
virtual void ActivateObject(const DbObject::Ptr& dbobj);
|
||||||
virtual void DeactivateObject(const DbObject::Ptr& dbobj);
|
virtual void DeactivateObject(const DbObject::Ptr& dbobj);
|
||||||
virtual void ExecuteQuery(const DbQuery& query);
|
virtual void ExecuteQuery(const DbQuery& query);
|
||||||
|
|
|
@ -523,7 +523,9 @@ Example:
|
||||||
cleanup = {
|
cleanup = {
|
||||||
downtimehistory_age = 48h,
|
downtimehistory_age = 48h,
|
||||||
logentries_age = 31d,
|
logentries_age = 31d,
|
||||||
}
|
},
|
||||||
|
|
||||||
|
categories = (DbCatConfig | DbCatState)
|
||||||
}
|
}
|
||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
|
@ -539,6 +541,7 @@ Attributes:
|
||||||
instance\_name |**Optional.** Unique identifier for the local Icinga 2 instance. Defaults to "default".
|
instance\_name |**Optional.** Unique identifier for the local Icinga 2 instance. Defaults to "default".
|
||||||
instance\_description|**Optional.** Description for the Icinga 2 instance.
|
instance\_description|**Optional.** Description for the Icinga 2 instance.
|
||||||
cleanup |**Optional.** Dictionary with items for historical table cleanup.
|
cleanup |**Optional.** Dictionary with items for historical table cleanup.
|
||||||
|
categories |**Optional.** The types of information that should be written to the database.
|
||||||
|
|
||||||
Cleanup Items:
|
Cleanup Items:
|
||||||
|
|
||||||
|
@ -560,6 +563,27 @@ Cleanup Items:
|
||||||
servicechecks_age |**Optional.** Max age for servicechecks table rows (start_time). Defaults to 0 (never).
|
servicechecks_age |**Optional.** Max age for servicechecks table rows (start_time). Defaults to 0 (never).
|
||||||
systemcommands_age |**Optional.** Max age for systemcommands table rows (start_time). Defaults to 0 (never).
|
systemcommands_age |**Optional.** Max age for systemcommands table rows (start_time). Defaults to 0 (never).
|
||||||
|
|
||||||
|
Data Categories:
|
||||||
|
|
||||||
|
Name | Description
|
||||||
|
---------------------|----------------
|
||||||
|
DbCatConfig | Configuration data
|
||||||
|
DbCatState | Current state data
|
||||||
|
DbCatAcknowledgement | Acknowledgements
|
||||||
|
DbCatComment | Comments
|
||||||
|
DbCatDowntime | Downtimes
|
||||||
|
DbCatEventHandler | Event handler data
|
||||||
|
DbCatExternalCommand | External commands
|
||||||
|
DbCatFlapping | Flap detection data
|
||||||
|
DbCatCheck | Check results
|
||||||
|
DbCatLog | Log messages
|
||||||
|
DbCatNotification | Notifications
|
||||||
|
DbCatProgramStatus | Program status data
|
||||||
|
DbCatRetention | Retention data
|
||||||
|
DbCatStateHistory | Historical state data
|
||||||
|
|
||||||
|
Multiple categories can be combined using the `|` operator.
|
||||||
|
|
||||||
### <a id="objecttype-livestatuslistener"></a> LiveStatusListener
|
### <a id="objecttype-livestatuslistener"></a> LiveStatusListener
|
||||||
|
|
||||||
Livestatus API interface available as TCP or UNIX socket.
|
Livestatus API interface available as TCP or UNIX socket.
|
||||||
|
|
|
@ -62,3 +62,22 @@ set DomainPrivCommand = (1<<2)
|
||||||
|
|
||||||
set DomainPrivReadOnly = (DomainPrivRead)
|
set DomainPrivReadOnly = (DomainPrivRead)
|
||||||
set DomainPrivReadWrite = (DomainPrivRead | DomainPrivCheckResult | DomainPrivCommand)
|
set DomainPrivReadWrite = (DomainPrivRead | DomainPrivCheckResult | DomainPrivCommand)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IDO filter categories
|
||||||
|
*/
|
||||||
|
set DbCatConfig = (1 << 0)
|
||||||
|
set DbCatState = (1 << 1)
|
||||||
|
set DbCatAcknowledgement = (1 << 2)
|
||||||
|
set DbCatComment = (1 << 3)
|
||||||
|
set DbCatDowntime = (1 << 4)
|
||||||
|
set DbCatEventHandler = (1 << 5)
|
||||||
|
set DbCatExternalCommand = (1 << 6)
|
||||||
|
set DbCatFlapping = (1 << 7)
|
||||||
|
set DbCatCheck = (1 << 8)
|
||||||
|
set DbCatLog = (1 << 9)
|
||||||
|
set DbCatNotification = (1 << 10)
|
||||||
|
set DbCatProgramStatus = (1 << 11)
|
||||||
|
set DbCatRetention = (1 << 12)
|
||||||
|
set DbCatStateHistory = (1 << 13)
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ void DbConnection::InsertRuntimeVariable(const String& key, const Value& value)
|
||||||
DbQuery query;
|
DbQuery query;
|
||||||
query.Table = "runtimevariables";
|
query.Table = "runtimevariables";
|
||||||
query.Type = DbQueryInsert;
|
query.Type = DbQueryInsert;
|
||||||
|
query.Category = DbCatProgramStatus;
|
||||||
query.Fields = boost::make_shared<Dictionary>();
|
query.Fields = boost::make_shared<Dictionary>();
|
||||||
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query.Fields->Set("varname", key);
|
query.Fields->Set("varname", key);
|
||||||
|
@ -72,6 +73,7 @@ void DbConnection::ProgramStatusHandler(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "programstatus";
|
query1.Table = "programstatus";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatProgramStatus;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query1.WhereCriteria->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
DbObject::OnQuery(query1);
|
DbObject::OnQuery(query1);
|
||||||
|
@ -79,6 +81,7 @@ void DbConnection::ProgramStatusHandler(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = "programstatus";
|
query2.Table = "programstatus";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatProgramStatus;
|
||||||
|
|
||||||
query2.Fields = boost::make_shared<Dictionary>();
|
query2.Fields = boost::make_shared<Dictionary>();
|
||||||
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
|
@ -100,6 +103,7 @@ void DbConnection::ProgramStatusHandler(void)
|
||||||
DbQuery query3;
|
DbQuery query3;
|
||||||
query3.Table = "runtimevariables";
|
query3.Table = "runtimevariables";
|
||||||
query3.Type = DbQueryDelete;
|
query3.Type = DbQueryDelete;
|
||||||
|
query3.Category = DbCatProgramStatus;
|
||||||
query3.WhereCriteria = boost::make_shared<Dictionary>();
|
query3.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query3.WhereCriteria->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query3.WhereCriteria->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
DbObject::OnQuery(query3);
|
DbObject::OnQuery(query3);
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "db_ido/dbquery.h"
|
||||||
#include "base/dynamicobject.h"
|
#include "base/dynamicobject.h"
|
||||||
#include <boost/smart_ptr/make_shared.hpp>
|
#include <boost/smart_ptr/make_shared.hpp>
|
||||||
|
|
||||||
|
@ -13,6 +14,14 @@ class DbConnection : DynamicObject
|
||||||
[config] Dictionary::Ptr cleanup {
|
[config] Dictionary::Ptr cleanup {
|
||||||
default {{{ return boost::make_shared<Dictionary>(); }}}
|
default {{{ return boost::make_shared<Dictionary>(); }}}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[config] int categories {
|
||||||
|
default {{{
|
||||||
|
return DbCatConfig | DbCatState | DbCatAcknowledgement |
|
||||||
|
DbCatComment | DbCatDowntime | DbCatEventHandler | DbCatExternalCommand | DbCatFlapping |
|
||||||
|
DbCatLog | DbCatNotification | DbCatProgramStatus | DbCatRetention | DbCatStateHistory;
|
||||||
|
}}}
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
|
@ -78,6 +78,7 @@ void DbObject::SendConfigUpdate(void)
|
||||||
DbQuery query;
|
DbQuery query;
|
||||||
query.Table = GetType()->GetTable() + "s";
|
query.Table = GetType()->GetTable() + "s";
|
||||||
query.Type = DbQueryInsert | DbQueryUpdate;
|
query.Type = DbQueryInsert | DbQueryUpdate;
|
||||||
|
query.Type = DbCatConfig;
|
||||||
query.Fields = fields;
|
query.Fields = fields;
|
||||||
query.Fields->Set(GetType()->GetIDColumn(), GetObject());
|
query.Fields->Set(GetType()->GetIDColumn(), GetObject());
|
||||||
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
|
@ -103,6 +104,7 @@ void DbObject::SendStatusUpdate(void)
|
||||||
DbQuery query;
|
DbQuery query;
|
||||||
query.Table = GetType()->GetTable() + "status";
|
query.Table = GetType()->GetTable() + "status";
|
||||||
query.Type = DbQueryInsert | DbQueryUpdate;
|
query.Type = DbQueryInsert | DbQueryUpdate;
|
||||||
|
query.Category = DbCatState;
|
||||||
query.Fields = fields;
|
query.Fields = fields;
|
||||||
query.Fields->Set(GetType()->GetIDColumn(), GetObject());
|
query.Fields->Set(GetType()->GetIDColumn(), GetObject());
|
||||||
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
|
|
|
@ -32,11 +32,33 @@ enum DbQueryType
|
||||||
DbQueryDelete = 4
|
DbQueryDelete = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum DbQueryCategory
|
||||||
|
{
|
||||||
|
DbCatInvalid = -1,
|
||||||
|
|
||||||
|
DbCatConfig = (1 << 0),
|
||||||
|
DbCatState = (1 << 1),
|
||||||
|
|
||||||
|
DbCatAcknowledgement = (1 << 2),
|
||||||
|
DbCatComment = (1 << 3),
|
||||||
|
DbCatDowntime = (1 << 4),
|
||||||
|
DbCatEventHandler = (1 << 5),
|
||||||
|
DbCatExternalCommand = (1 << 6),
|
||||||
|
DbCatFlapping = (1 << 7),
|
||||||
|
DbCatCheck = (1 << 8),
|
||||||
|
DbCatLog = (1 << 9),
|
||||||
|
DbCatNotification = (1 << 10),
|
||||||
|
DbCatProgramStatus = (1 << 11),
|
||||||
|
DbCatRetention = (1 << 12),
|
||||||
|
DbCatStateHistory = (1 << 13)
|
||||||
|
};
|
||||||
|
|
||||||
class DbObject;
|
class DbObject;
|
||||||
|
|
||||||
struct DbQuery
|
struct DbQuery
|
||||||
{
|
{
|
||||||
int Type;
|
int Type;
|
||||||
|
DbQueryCategory Category;
|
||||||
String Table;
|
String Table;
|
||||||
Dictionary::Ptr Fields;
|
Dictionary::Ptr Fields;
|
||||||
Dictionary::Ptr WhereCriteria;
|
Dictionary::Ptr WhereCriteria;
|
||||||
|
@ -45,7 +67,7 @@ struct DbQuery
|
||||||
bool StatusUpdate;
|
bool StatusUpdate;
|
||||||
|
|
||||||
DbQuery(void)
|
DbQuery(void)
|
||||||
: Type(0), ConfigUpdate(false), StatusUpdate(false)
|
: Type(0), Category(DbCatInvalid), ConfigUpdate(false), StatusUpdate(false)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -197,6 +197,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del1;
|
DbQuery query_del1;
|
||||||
query_del1.Table = GetType()->GetTable() + "_parenthosts";
|
query_del1.Table = GetType()->GetTable() + "_parenthosts";
|
||||||
query_del1.Type = DbQueryDelete;
|
query_del1.Type = DbQueryDelete;
|
||||||
|
query_del1.Category = DbCatConfig;
|
||||||
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del1.WhereCriteria->Set(GetType()->GetTable() + "_id", DbValue::FromObjectInsertID(GetObject()));
|
query_del1.WhereCriteria->Set(GetType()->GetTable() + "_id", DbValue::FromObjectInsertID(GetObject()));
|
||||||
OnQuery(query_del1);
|
OnQuery(query_del1);
|
||||||
|
@ -204,6 +205,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del2;
|
DbQuery query_del2;
|
||||||
query_del2.Table = GetType()->GetTable() + "dependencies";
|
query_del2.Table = GetType()->GetTable() + "dependencies";
|
||||||
query_del2.Type = DbQueryDelete;
|
query_del2.Type = DbQueryDelete;
|
||||||
|
query_del2.Category = DbCatConfig;
|
||||||
query_del2.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del2.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del2.WhereCriteria->Set("dependent_host_object_id", host);
|
query_del2.WhereCriteria->Set("dependent_host_object_id", host);
|
||||||
OnQuery(query_del2);
|
OnQuery(query_del2);
|
||||||
|
@ -220,6 +222,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = GetType()->GetTable() + "_parenthosts";
|
query1.Table = GetType()->GetTable() + "_parenthosts";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatConfig;
|
||||||
query1.Fields = fields1;
|
query1.Fields = fields1;
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
|
|
||||||
|
@ -232,6 +235,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = GetType()->GetTable() + "dependencies";
|
query2.Table = GetType()->GetTable() + "dependencies";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatConfig;
|
||||||
query2.Fields = fields2;
|
query2.Fields = fields2;
|
||||||
OnQuery(query2);
|
OnQuery(query2);
|
||||||
}
|
}
|
||||||
|
@ -253,6 +257,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_contact;
|
DbQuery query_contact;
|
||||||
query_contact.Table = GetType()->GetTable() + "_contacts";
|
query_contact.Table = GetType()->GetTable() + "_contacts";
|
||||||
query_contact.Type = DbQueryInsert;
|
query_contact.Type = DbQueryInsert;
|
||||||
|
query_contact.Category = DbCatConfig;
|
||||||
query_contact.Fields = fields_contact;
|
query_contact.Fields = fields_contact;
|
||||||
OnQuery(query_contact);
|
OnQuery(query_contact);
|
||||||
}
|
}
|
||||||
|
@ -270,6 +275,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_contact;
|
DbQuery query_contact;
|
||||||
query_contact.Table = GetType()->GetTable() + "_contactgroups";
|
query_contact.Table = GetType()->GetTable() + "_contactgroups";
|
||||||
query_contact.Type = DbQueryInsert;
|
query_contact.Type = DbQueryInsert;
|
||||||
|
query_contact.Category = DbCatConfig;
|
||||||
query_contact.Fields = fields_contact;
|
query_contact.Fields = fields_contact;
|
||||||
OnQuery(query_contact);
|
OnQuery(query_contact);
|
||||||
}
|
}
|
||||||
|
@ -281,6 +287,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del3;
|
DbQuery query_del3;
|
||||||
query_del3.Table = "customvariables";
|
query_del3.Table = "customvariables";
|
||||||
query_del3.Type = DbQueryDelete;
|
query_del3.Type = DbQueryDelete;
|
||||||
|
query_del3.Category = DbCatConfig;
|
||||||
query_del3.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del3.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del3.WhereCriteria->Set("object_id", host);
|
query_del3.WhereCriteria->Set("object_id", host);
|
||||||
OnQuery(query_del3);
|
OnQuery(query_del3);
|
||||||
|
@ -310,6 +317,7 @@ void HostDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query3;
|
DbQuery query3;
|
||||||
query3.Table = "customvariables";
|
query3.Table = "customvariables";
|
||||||
query3.Type = DbQueryInsert;
|
query3.Type = DbQueryInsert;
|
||||||
|
query3.Category = DbCatConfig;
|
||||||
query3.Fields = fields3;
|
query3.Fields = fields3;
|
||||||
OnQuery(query3);
|
OnQuery(query3);
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,7 @@ void HostGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = DbType::GetByName("HostGroup")->GetTable() + "_members";
|
query1.Table = DbType::GetByName("HostGroup")->GetTable() + "_members";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatConfig;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("hostgroup_id", DbValue::FromObjectInsertID(group));
|
query1.WhereCriteria->Set("hostgroup_id", DbValue::FromObjectInsertID(group));
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
|
@ -63,6 +64,7 @@ void HostGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = DbType::GetByName("HostGroup")->GetTable() + "_members";
|
query2.Table = DbType::GetByName("HostGroup")->GetTable() + "_members";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatConfig;
|
||||||
query2.Fields = boost::make_shared<Dictionary>();
|
query2.Fields = boost::make_shared<Dictionary>();
|
||||||
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query2.Fields->Set("hostgroup_id", DbValue::FromObjectInsertID(group));
|
query2.Fields->Set("hostgroup_id", DbValue::FromObjectInsertID(group));
|
||||||
|
|
|
@ -217,6 +217,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del1;
|
DbQuery query_del1;
|
||||||
query_del1.Table = GetType()->GetTable() + "dependencies";
|
query_del1.Table = GetType()->GetTable() + "dependencies";
|
||||||
query_del1.Type = DbQueryDelete;
|
query_del1.Type = DbQueryDelete;
|
||||||
|
query_del1.Category = DbCatConfig;
|
||||||
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del1.WhereCriteria->Set("dependent_service_object_id", service);
|
query_del1.WhereCriteria->Set("dependent_service_object_id", service);
|
||||||
OnQuery(query_del1);
|
OnQuery(query_del1);
|
||||||
|
@ -233,6 +234,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = GetType()->GetTable() + "dependencies";
|
query1.Table = GetType()->GetTable() + "dependencies";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatConfig;
|
||||||
query1.Fields = fields1;
|
query1.Fields = fields1;
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
}
|
}
|
||||||
|
@ -251,6 +253,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_contact;
|
DbQuery query_contact;
|
||||||
query_contact.Table = GetType()->GetTable() + "_contacts";
|
query_contact.Table = GetType()->GetTable() + "_contacts";
|
||||||
query_contact.Type = DbQueryInsert;
|
query_contact.Type = DbQueryInsert;
|
||||||
|
query_contact.Category = DbCatConfig;
|
||||||
query_contact.Fields = fields_contact;
|
query_contact.Fields = fields_contact;
|
||||||
OnQuery(query_contact);
|
OnQuery(query_contact);
|
||||||
}
|
}
|
||||||
|
@ -268,6 +271,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_contact;
|
DbQuery query_contact;
|
||||||
query_contact.Table = GetType()->GetTable() + "_contactgroups";
|
query_contact.Table = GetType()->GetTable() + "_contactgroups";
|
||||||
query_contact.Type = DbQueryInsert;
|
query_contact.Type = DbQueryInsert;
|
||||||
|
query_contact.Category = DbCatConfig;
|
||||||
query_contact.Fields = fields_contact;
|
query_contact.Fields = fields_contact;
|
||||||
OnQuery(query_contact);
|
OnQuery(query_contact);
|
||||||
}
|
}
|
||||||
|
@ -278,6 +282,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del2;
|
DbQuery query_del2;
|
||||||
query_del2.Table = "customvariables";
|
query_del2.Table = "customvariables";
|
||||||
query_del2.Type = DbQueryDelete;
|
query_del2.Type = DbQueryDelete;
|
||||||
|
query_del2.Category = DbCatConfig;
|
||||||
query_del2.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del2.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del2.WhereCriteria->Set("object_id", service);
|
query_del2.WhereCriteria->Set("object_id", service);
|
||||||
OnQuery(query_del2);
|
OnQuery(query_del2);
|
||||||
|
@ -308,6 +313,7 @@ void ServiceDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = "customvariables";
|
query2.Table = "customvariables";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatConfig;
|
||||||
query2.Fields = fields2;
|
query2.Fields = fields2;
|
||||||
OnQuery(query2);
|
OnQuery(query2);
|
||||||
}
|
}
|
||||||
|
@ -444,6 +450,7 @@ void ServiceDbObject::AddCommentByType(const DynamicObject::Ptr& object, const D
|
||||||
query1.Table = "commenthistory";
|
query1.Table = "commenthistory";
|
||||||
}
|
}
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatComment;
|
||||||
query1.Fields = fields1;
|
query1.Fields = fields1;
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
}
|
}
|
||||||
|
@ -460,6 +467,7 @@ void ServiceDbObject::RemoveComments(const Service::Ptr& service)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "comments";
|
query1.Table = "comments";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatComment;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("object_id", service);
|
query1.WhereCriteria->Set("object_id", service);
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
|
@ -489,6 +497,7 @@ void ServiceDbObject::RemoveComment(const Service::Ptr& service, const Dictionar
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "comments";
|
query1.Table = "comments";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatComment;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("object_id", service);
|
query1.WhereCriteria->Set("object_id", service);
|
||||||
query1.WhereCriteria->Set("internal_comment_id", comment->Get("legacy_id"));
|
query1.WhereCriteria->Set("internal_comment_id", comment->Get("legacy_id"));
|
||||||
|
@ -509,6 +518,7 @@ void ServiceDbObject::RemoveComment(const Service::Ptr& service, const Dictionar
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = "commenthistory";
|
query2.Table = "commenthistory";
|
||||||
query2.Type = DbQueryUpdate;
|
query2.Type = DbQueryUpdate;
|
||||||
|
query2.Category = DbCatComment;
|
||||||
|
|
||||||
Dictionary::Ptr fields2 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields2 = boost::make_shared<Dictionary>();
|
||||||
fields2->Set("deletion_time", DbValue::FromTimestamp(deletion_time));
|
fields2->Set("deletion_time", DbValue::FromTimestamp(deletion_time));
|
||||||
|
@ -610,6 +620,7 @@ void ServiceDbObject::AddDowntimeByType(const DynamicObject::Ptr& object, const
|
||||||
query1.Table = "downtimehistory";
|
query1.Table = "downtimehistory";
|
||||||
}
|
}
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatDowntime;
|
||||||
query1.Fields = fields1;
|
query1.Fields = fields1;
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
}
|
}
|
||||||
|
@ -626,6 +637,7 @@ void ServiceDbObject::RemoveDowntimes(const Service::Ptr& service)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "scheduleddowntime";
|
query1.Table = "scheduleddowntime";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatDowntime;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("object_id", service);
|
query1.WhereCriteria->Set("object_id", service);
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
|
@ -655,6 +667,7 @@ void ServiceDbObject::RemoveDowntime(const Service::Ptr& service, const Dictiona
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "scheduleddowntime";
|
query1.Table = "scheduleddowntime";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatDowntime;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("object_id", service);
|
query1.WhereCriteria->Set("object_id", service);
|
||||||
query1.WhereCriteria->Set("internal_downtime_id", downtime->Get("legacy_id"));
|
query1.WhereCriteria->Set("internal_downtime_id", downtime->Get("legacy_id"));
|
||||||
|
@ -674,6 +687,7 @@ void ServiceDbObject::RemoveDowntime(const Service::Ptr& service, const Dictiona
|
||||||
DbQuery query3;
|
DbQuery query3;
|
||||||
query3.Table = "downtimehistory";
|
query3.Table = "downtimehistory";
|
||||||
query3.Type = DbQueryUpdate;
|
query3.Type = DbQueryUpdate;
|
||||||
|
query3.Category = DbCatDowntime;
|
||||||
|
|
||||||
Dictionary::Ptr fields3 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields3 = boost::make_shared<Dictionary>();
|
||||||
fields3->Set("was_cancelled", downtime->Get("was_cancelled") ? 1 : 0);
|
fields3->Set("was_cancelled", downtime->Get("was_cancelled") ? 1 : 0);
|
||||||
|
@ -713,6 +727,7 @@ void ServiceDbObject::TriggerDowntime(const Service::Ptr& service, const Diction
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "scheduleddowntime";
|
query1.Table = "scheduleddowntime";
|
||||||
query1.Type = DbQueryUpdate;
|
query1.Type = DbQueryUpdate;
|
||||||
|
query1.Category = DbCatDowntime;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("was_started", 1);
|
fields1->Set("was_started", 1);
|
||||||
|
@ -739,6 +754,7 @@ void ServiceDbObject::TriggerDowntime(const Service::Ptr& service, const Diction
|
||||||
DbQuery query3;
|
DbQuery query3;
|
||||||
query3.Table = "downtimehistory";
|
query3.Table = "downtimehistory";
|
||||||
query3.Type = DbQueryUpdate;
|
query3.Type = DbQueryUpdate;
|
||||||
|
query3.Category = DbCatDowntime;
|
||||||
|
|
||||||
Dictionary::Ptr fields3 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields3 = boost::make_shared<Dictionary>();
|
||||||
fields3->Set("was_started", 1);
|
fields3->Set("was_started", 1);
|
||||||
|
@ -777,6 +793,7 @@ void ServiceDbObject::AddAcknowledgementHistory(const Service::Ptr& service, con
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "acknowledgements";
|
query1.Table = "acknowledgements";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatAcknowledgement;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("entry_time", DbValue::FromTimestamp(entry_time));
|
fields1->Set("entry_time", DbValue::FromTimestamp(entry_time));
|
||||||
|
@ -822,6 +839,7 @@ void ServiceDbObject::AddContactNotificationHistory(const Service::Ptr& service,
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "contactnotifications";
|
query1.Table = "contactnotifications";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatNotification;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("contact_object_id", user);
|
fields1->Set("contact_object_id", user);
|
||||||
|
@ -862,6 +880,7 @@ void ServiceDbObject::AddNotificationHistory(const Service::Ptr& service, const
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "notifications";
|
query1.Table = "notifications";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatNotification;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("notification_type", 1); /* service */
|
fields1->Set("notification_type", 1); /* service */
|
||||||
|
@ -912,6 +931,7 @@ void ServiceDbObject::AddStateChangeHistory(const Service::Ptr& service, const D
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "statehistory";
|
query1.Table = "statehistory";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatStateHistory;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("state_time", DbValue::FromTimestamp(state_time));
|
fields1->Set("state_time", DbValue::FromTimestamp(state_time));
|
||||||
|
@ -1246,6 +1266,7 @@ void ServiceDbObject::AddLogHistory(const Service::Ptr& service, String buffer,
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "logentries";
|
query1.Table = "logentries";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatLog;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
fields1->Set("logentry_time", DbValue::FromTimestamp(entry_time));
|
fields1->Set("logentry_time", DbValue::FromTimestamp(entry_time));
|
||||||
|
@ -1284,6 +1305,7 @@ void ServiceDbObject::AddFlappingHistory(const Service::Ptr& service, FlappingSt
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "flappinghistory";
|
query1.Table = "flappinghistory";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatFlapping;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
|
|
||||||
|
@ -1339,6 +1361,7 @@ void ServiceDbObject::AddServiceCheckHistory(const Service::Ptr& service, const
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "servicechecks";
|
query1.Table = "servicechecks";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatCheck;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
Dictionary::Ptr attrs;
|
Dictionary::Ptr attrs;
|
||||||
|
@ -1410,6 +1433,7 @@ void ServiceDbObject::AddEventHandlerHistory(const Service::Ptr& service)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "eventhandlers";
|
query1.Table = "eventhandlers";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatEventHandler;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
|
|
||||||
|
@ -1447,6 +1471,7 @@ void ServiceDbObject::AddExternalCommandHistory(double time, const String& comma
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = "externalcommands";
|
query1.Table = "externalcommands";
|
||||||
query1.Type = DbQueryInsert;
|
query1.Type = DbQueryInsert;
|
||||||
|
query1.Category = DbCatExternalCommand;
|
||||||
|
|
||||||
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
Dictionary::Ptr fields1 = boost::make_shared<Dictionary>();
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ void ServiceGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = DbType::GetByName("ServiceGroup")->GetTable() + "_members";
|
query1.Table = DbType::GetByName("ServiceGroup")->GetTable() + "_members";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatConfig;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("servicegroup_id", DbValue::FromObjectInsertID(group));
|
query1.WhereCriteria->Set("servicegroup_id", DbValue::FromObjectInsertID(group));
|
||||||
OnQuery(query1);
|
OnQuery(query1);
|
||||||
|
@ -62,6 +63,7 @@ void ServiceGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = DbType::GetByName("ServiceGroup")->GetTable() + "_members";
|
query2.Table = DbType::GetByName("ServiceGroup")->GetTable() + "_members";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatConfig;
|
||||||
query2.Fields = boost::make_shared<Dictionary>();
|
query2.Fields = boost::make_shared<Dictionary>();
|
||||||
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query2.Fields->Set("servicegroup_id", DbValue::FromObjectInsertID(group));
|
query2.Fields->Set("servicegroup_id", DbValue::FromObjectInsertID(group));
|
||||||
|
|
|
@ -58,6 +58,7 @@ void TimePeriodDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query_del1;
|
DbQuery query_del1;
|
||||||
query_del1.Table = GetType()->GetTable() + "_timeranges";
|
query_del1.Table = GetType()->GetTable() + "_timeranges";
|
||||||
query_del1.Type = DbQueryDelete;
|
query_del1.Type = DbQueryDelete;
|
||||||
|
query_del1.Category = DbCatConfig;
|
||||||
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
query_del1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query_del1.WhereCriteria->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
query_del1.WhereCriteria->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
||||||
OnQuery(query_del1);
|
OnQuery(query_del1);
|
||||||
|
@ -109,6 +110,7 @@ void TimePeriodDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query;
|
DbQuery query;
|
||||||
query.Table = GetType()->GetTable() + "_timeranges";
|
query.Table = GetType()->GetTable() + "_timeranges";
|
||||||
query.Type = DbQueryInsert;
|
query.Type = DbQueryInsert;
|
||||||
|
query.Category = DbCatConfig;
|
||||||
query.Fields = boost::make_shared<Dictionary>();
|
query.Fields = boost::make_shared<Dictionary>();
|
||||||
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query.Fields->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
query.Fields->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
||||||
|
|
|
@ -55,6 +55,7 @@ void UserGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query1;
|
DbQuery query1;
|
||||||
query1.Table = DbType::GetByName("UserGroup")->GetTable() + "_members";
|
query1.Table = DbType::GetByName("UserGroup")->GetTable() + "_members";
|
||||||
query1.Type = DbQueryDelete;
|
query1.Type = DbQueryDelete;
|
||||||
|
query1.Category = DbCatConfig;
|
||||||
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
query1.WhereCriteria = boost::make_shared<Dictionary>();
|
||||||
query1.WhereCriteria->Set("instance_id", 0);
|
query1.WhereCriteria->Set("instance_id", 0);
|
||||||
query1.WhereCriteria->Set("contactgroup_id", DbValue::FromObjectInsertID(group));
|
query1.WhereCriteria->Set("contactgroup_id", DbValue::FromObjectInsertID(group));
|
||||||
|
@ -64,6 +65,7 @@ void UserGroupDbObject::OnConfigUpdate(void)
|
||||||
DbQuery query2;
|
DbQuery query2;
|
||||||
query2.Table = DbType::GetByName("UserGroup")->GetTable() + "_members";
|
query2.Table = DbType::GetByName("UserGroup")->GetTable() + "_members";
|
||||||
query2.Type = DbQueryInsert;
|
query2.Type = DbQueryInsert;
|
||||||
|
query2.Category = DbCatConfig;
|
||||||
query2.Fields = boost::make_shared<Dictionary>();
|
query2.Fields = boost::make_shared<Dictionary>();
|
||||||
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query2.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query2.Fields->Set("contactgroup_id", DbValue::FromObjectInsertID(group));
|
query2.Fields->Set("contactgroup_id", DbValue::FromObjectInsertID(group));
|
||||||
|
|
Loading…
Reference in New Issue