mirror of
				https://github.com/Icinga/icinga2.git
				synced 2025-10-31 03:03:52 +01:00 
			
		
		
		
	WIP
This commit is contained in:
		
							parent
							
								
									782486ce9c
								
							
						
					
					
						commit
						79f06a90d4
					
				| @ -30,20 +30,6 @@ | |||||||
| 
 | 
 | ||||||
| using namespace icinga; | using namespace icinga; | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
| - icinga:config:<type> as hash |  | ||||||
| key: sha1 checksum(name) |  | ||||||
| value: JsonEncode(Serialize(object, FAConfig)) + config_checksum |  | ||||||
| 
 |  | ||||||
| Diff between calculated config_checksum and Redis json config_checksum |  | ||||||
| Alternative: Replace into. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| - icinga:status:<type> as hash |  | ||||||
| key: sha1 checksum(name) |  | ||||||
| value: JsonEncode(Serialize(object, FAState)) |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| INITIALIZE_ONCE(&RedisWriter::ConfigStaticInitialize); | INITIALIZE_ONCE(&RedisWriter::ConfigStaticInitialize); | ||||||
| 
 | 
 | ||||||
| void RedisWriter::ConfigStaticInitialize() | void RedisWriter::ConfigStaticInitialize() | ||||||
| @ -162,7 +148,8 @@ void RedisWriter::SendConfigUpdate(const ConfigObject::Ptr& object, bool useTran | |||||||
| 	Type::Ptr type = object->GetReflectionType(); | 	Type::Ptr type = object->GetReflectionType(); | ||||||
| 
 | 
 | ||||||
| 	String typeName = type->GetName().ToLower(); | 	String typeName = type->GetName().ToLower(); | ||||||
| 	String objectKey = CalculateCheckSumString(object->GetName()); | //	String objectKey = CalculateCheckSumString(object->GetName());
 | ||||||
|  | 	String objectKey = object->GetName(); | ||||||
| 
 | 
 | ||||||
| 	Dictionary::Ptr checkSums = new Dictionary(); | 	Dictionary::Ptr checkSums = new Dictionary(); | ||||||
| 	checkSums->Set("name_checksum", CalculateCheckSumString(object->GetName())); | 	checkSums->Set("name_checksum", CalculateCheckSumString(object->GetName())); | ||||||
| @ -216,11 +203,12 @@ void RedisWriter::SendConfigDelete(const ConfigObject::Ptr& object) | |||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	String typeName = object->GetReflectionType()->GetName().ToLower(); | 	String typeName = object->GetReflectionType()->GetName().ToLower(); | ||||||
| 	String objectKey = CalculateCheckSumString(object->GetName()); | 	//String objectKey = CalculateCheckSumString(object->GetName());
 | ||||||
|  | 	String objectKey = object->GetName(); | ||||||
| 
 | 
 | ||||||
| 	ExecuteQueries({ | 	ExecuteQueries({ | ||||||
| 	    { "DEL", "icinga:config:" + typeName, objectKey }, | 	    { "DEL", "icinga:config:" + typeName + ":" + objectKey }, | ||||||
| 	    { "DEL", "icinga:status:" + typeName, objectKey }, | 	    { "DEL", "icinga:status:" + typeName + ":" + objectKey }, | ||||||
| 	    { "PUBLISH", "icinga:config:delete", typeName + ":" + objectKey } | 	    { "PUBLISH", "icinga:config:delete", typeName + ":" + objectKey } | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
| @ -328,11 +316,12 @@ void RedisWriter::UpdateObjectAttrs(const String& keyPrefix, const ConfigObject: | |||||||
| 	String objectName = object->GetName(); | 	String objectName = object->GetName(); | ||||||
| 
 | 
 | ||||||
| 	/* Use the name checksum as unique key. */ | 	/* Use the name checksum as unique key. */ | ||||||
| 	String objectKey = CalculateCheckSumString(object->GetName()); | 	//String objectKey = CalculateCheckSumString(object->GetName());
 | ||||||
|  | 	String objectKey = object->GetName(); | ||||||
| 
 | 
 | ||||||
| 	std::vector<std::vector<String> > queries; | 	std::vector<std::vector<String> > queries; | ||||||
| 
 | 
 | ||||||
| 	queries.push_back({ "DEL", keyPrefix + objectKey }); | 	queries.push_back({ "DEL", keyPrefix + typeName + ":" + objectKey }); | ||||||
| 
 | 
 | ||||||
| 	std::vector<String> hmsetCommand({ "HMSET", keyPrefix + typeName + ":" + objectKey }); | 	std::vector<String> hmsetCommand({ "HMSET", keyPrefix + typeName + ":" + objectKey }); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -328,8 +328,8 @@ void RedisWriter::SendEvent(const Dictionary::Ptr& event) | |||||||
| 
 | 
 | ||||||
| 	String body = JsonEncode(event); | 	String body = JsonEncode(event); | ||||||
| 
 | 
 | ||||||
| 	Log(LogInformation, "RedisWriter") | //	Log(LogInformation, "RedisWriter")
 | ||||||
| 		<< "Sending event \"" << body << "\""; | //		<< "Sending event \"" << body << "\"";
 | ||||||
| 
 | 
 | ||||||
| 	ExecuteQuery({ "PUBLISH", "icinga:event:all", body }); | 	ExecuteQuery({ "PUBLISH", "icinga:event:all", body }); | ||||||
| 	ExecuteQuery({ "PUBLISH", "icinga:event:" + event->Get("type"), body }); | 	ExecuteQuery({ "PUBLISH", "icinga:event:" + event->Get("type"), body }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user