mirror of
https://github.com/gnustep/libs-ec.git
synced 2025-02-19 01:51:03 +00:00
Improve Control. server config
This commit is contained in:
parent
5b1d1b89c5
commit
36b9547a8b
2 changed files with 55 additions and 4 deletions
|
@ -6,6 +6,10 @@
|
||||||
*/
|
*/
|
||||||
* = {
|
* = {
|
||||||
};
|
};
|
||||||
|
Control = {
|
||||||
|
/* Section for the Control server on any master host.
|
||||||
|
*/
|
||||||
|
};
|
||||||
Feep = {
|
Feep = {
|
||||||
/* Section for the process Feep on any/all hosts.
|
/* Section for the process Feep on any/all hosts.
|
||||||
*/
|
*/
|
||||||
|
|
55
EcControl.m
55
EcControl.m
|
@ -349,6 +349,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
NSMutableArray *consoles;
|
NSMutableArray *consoles;
|
||||||
NSString *logname;
|
NSString *logname;
|
||||||
NSDictionary *config;
|
NSDictionary *config;
|
||||||
|
NSDictionary *controlConfig;
|
||||||
NSMutableDictionary *operators;
|
NSMutableDictionary *operators;
|
||||||
NSMutableDictionary *fileBodies;
|
NSMutableDictionary *fileBodies;
|
||||||
NSMutableDictionary *fileDates;
|
NSMutableDictionary *fileDates;
|
||||||
|
@ -1814,6 +1815,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
DESTROY(configFailed);
|
DESTROY(configFailed);
|
||||||
DESTROY(configIncludeFailed);
|
DESTROY(configIncludeFailed);
|
||||||
DESTROY(alarmFilter);
|
DESTROY(alarmFilter);
|
||||||
|
DESTROY(controlConfig);
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3124,6 +3126,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
NSEnumerator *rootEnum;
|
NSEnumerator *rootEnum;
|
||||||
id hostKey;
|
id hostKey;
|
||||||
NSString *digest = nil;
|
NSString *digest = nil;
|
||||||
|
BOOL foundControlConfig = NO;
|
||||||
|
|
||||||
if ([conf isKindOfClass: [NSDictionary class]] == NO)
|
if ([conf isKindOfClass: [NSDictionary class]] == NO)
|
||||||
{
|
{
|
||||||
|
@ -3275,6 +3278,43 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
app = [self recursiveInclude: hostObj];
|
app = [self recursiveInclude: hostObj];
|
||||||
|
if ([appKey isEqual: @""] || [appKey isEqual: @"Control"])
|
||||||
|
{
|
||||||
|
if (NO == [hostKey isEqual: @"*"])
|
||||||
|
{
|
||||||
|
NSString *e;
|
||||||
|
NSString *k = appKey;
|
||||||
|
|
||||||
|
if (0 == [k length])
|
||||||
|
{
|
||||||
|
k = @"\"\"";
|
||||||
|
}
|
||||||
|
e = [NSString stringWithFormat:
|
||||||
|
@"%@ app-level has special key '%@' in host '%@'\n",
|
||||||
|
path, k, hostKey];
|
||||||
|
ASSIGN(configFailed, e);
|
||||||
|
[[self cmdLogFile: logname] printf: @"%@", configFailed];
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
if (foundControlConfig)
|
||||||
|
{
|
||||||
|
NSString *e;
|
||||||
|
|
||||||
|
e = [NSString stringWithFormat:
|
||||||
|
@"%@ app-level has both 'Control' and '\"\"' in '%@'\n",
|
||||||
|
path, hostKey];
|
||||||
|
ASSIGN(configFailed, e);
|
||||||
|
[[self cmdLogFile: logname] printf: @"%@", configFailed];
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
foundControlConfig = YES;
|
||||||
|
if (NO == [controlConfig isEqual: app])
|
||||||
|
{
|
||||||
|
ASSIGN(controlConfig, app);
|
||||||
|
changed = YES;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
[host setObject: app forKey: appKey];
|
[host setObject: app forKey: appKey];
|
||||||
/* Set EcControlKey for all apps on all hosts.
|
/* Set EcControlKey for all apps on all hosts.
|
||||||
*/
|
*/
|
||||||
|
@ -3283,6 +3323,15 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
[root setObject: host forKey: hostKey];
|
[root setObject: host forKey: hostKey];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (NO == foundControlConfig)
|
||||||
|
{
|
||||||
|
if (controlConfig)
|
||||||
|
{
|
||||||
|
DESTROY(controlConfig);
|
||||||
|
changed = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (config == nil || [config isEqual: root] == NO)
|
if (config == nil || [config isEqual: root] == NO)
|
||||||
{
|
{
|
||||||
changed = YES;
|
changed = YES;
|
||||||
|
@ -3294,7 +3343,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
{
|
{
|
||||||
NSString *alerterDef;
|
NSString *alerterDef;
|
||||||
NSString *str;
|
NSString *str;
|
||||||
id myConfig = nil;
|
|
||||||
|
|
||||||
/* Merge the global configuration and Control server specific
|
/* Merge the global configuration and Control server specific
|
||||||
* configuration into this process' user defaults.
|
* configuration into this process' user defaults.
|
||||||
|
@ -3302,7 +3350,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
d = [config objectForKey: @"*"]; // Config across all hosts
|
d = [config objectForKey: @"*"]; // Config across all hosts
|
||||||
if ([d isKindOfClass: [NSDictionary class]])
|
if ([d isKindOfClass: [NSDictionary class]])
|
||||||
{
|
{
|
||||||
myConfig = [d objectForKey: @""]; // Empty process name
|
|
||||||
d = [d objectForKey: @"*"];
|
d = [d objectForKey: @"*"];
|
||||||
}
|
}
|
||||||
if (YES == [d isKindOfClass: [NSDictionary class]])
|
if (YES == [d isKindOfClass: [NSDictionary class]])
|
||||||
|
@ -3316,9 +3363,9 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
||||||
|
|
||||||
/* Control server specific config.
|
/* Control server specific config.
|
||||||
*/
|
*/
|
||||||
if ([myConfig isKindOfClass: [NSDictionary class]])
|
if ([controlConfig isKindOfClass: [NSDictionary class]])
|
||||||
{
|
{
|
||||||
[dict addEntriesFromDictionary: myConfig];
|
[dict addEntriesFromDictionary: controlConfig];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If AlertConfig.plist was found, it overrides any value for Alerter
|
/* If AlertConfig.plist was found, it overrides any value for Alerter
|
||||||
|
|
Loading…
Reference in a new issue