diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2003-08-25 13:43:17 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2003-08-25 13:43:17 +0000 |
commit | ba85cb20de6ec6f757a7f68a960bd98340938efb (patch) | |
tree | 20e7846f61d9b7dbf54dc1646ecbd64f20b50453 /include/db.c | |
parent | 61d2c3c94be18950e8c27aaa57a31169efde2079 (diff) | |
download | zabbix-ba85cb20de6ec6f757a7f68a960bd98340938efb.tar.gz zabbix-ba85cb20de6ec6f757a7f68a960bd98340938efb.tar.xz zabbix-ba85cb20de6ec6f757a7f68a960bd98340938efb.zip |
Housekeeping to delete hosts having status 'deleted' (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@945 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'include/db.c')
-rw-r--r-- | include/db.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/include/db.c b/include/db.c index 039492db..4b892f68 100644 --- a/include/db.c +++ b/include/db.c @@ -521,8 +521,40 @@ void update_triggers_status_to_unknown(int hostid,int clock) return; } +void DBdelete_service(int serviceid) +{ + char sql[MAX_STRING_LEN+1]; + + sprintf(sql,"delete from services_links where servicedownid=%d or serviceupid=%d", serviceid, serviceid); + DBexecute(sql); + sprintf(sql,"delete from services where serviceid=%d", serviceid); + DBexecute(sql); +} + +void DBdelete_services_by_triggerid(int triggerid) +{ + int i, serviceid; + char sql[MAX_STRING_LEN+1]; + DB_RESULT *result; + + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_services_by_triggerid(%d)", triggerid); + sprintf(sql,"select serviceid from services where triggerid=%d", triggerid); + result = DBselect(sql); + + for(i=0;i<DBnum_rows(result);i++) + { + serviceid=atoi(DBget_field(result,i,0)); + DBdelete_service(serviceid); + } + DBfree_result(result); + + zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_services_by_triggerid(%d)", triggerid); +} + void DBdelete_trigger(int triggerid) { + char sql[MAX_STRING_LEN+1]; + sprintf(sql,"delete from trigger_depends where triggerid_down=%d or triggerid_up=%d", triggerid, triggerid); DBexecute(sql); sprintf(sql,"delete from functions where triggerid=%d", triggerid); @@ -562,10 +594,11 @@ void DBdelete_triggers_by_itemid(int itemid) zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_triggers_by_itemid(%d)", itemid); } -} void DBdelete_history_by_itemid(int itemid) { + char sql[MAX_STRING_LEN+1]; + sprintf(sql,"delete from history where itemid=%d", itemid); DBexecute(sql); sprintf(sql,"delete from history_str where itemid=%d", itemid); @@ -574,6 +607,8 @@ void DBdelete_history_by_itemid(int itemid) void DBdelete_item(int itemid) { + char sql[MAX_STRING_LEN+1]; + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_item(%d)", itemid); DBdelete_triggers_by_itemid(itemid); |