mirror of
https://github.com/gnustep/libs-ec.git
synced 2025-02-19 01:51:03 +00:00
Improve automated clear of alarms when a process is available again.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/ec/trunk@38082 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c590d3d66d
commit
c8cc8ac0e0
2 changed files with 28 additions and 32 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-09-16 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* EcCommand.m: Simplify handling of loss of process and configuration
|
||||
error alarms. Clear such alarms when we receive a ping from the
|
||||
process.
|
||||
|
||||
2014-09-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* EcProcess.m: Fix missing clear after unable to register with name
|
||||
|
|
54
EcCommand.m
54
EcCommand.m
|
@ -129,7 +129,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
NSDictionary *environment;
|
||||
NSMutableDictionary *launches;
|
||||
NSMutableSet *launching;
|
||||
NSMutableSet *alarmed;
|
||||
unsigned pingPosition;
|
||||
NSTimer *terminating;
|
||||
NSDate *lastUnanswered;
|
||||
|
@ -584,37 +583,33 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
r = [self findIn: clients byObject: (id)from];
|
||||
if (r != nil)
|
||||
{
|
||||
NSString *n = [r name];
|
||||
NSString *managedObject;
|
||||
NSString *n;
|
||||
EcAlarm *a;
|
||||
|
||||
[r gnip: num];
|
||||
n = [r name];
|
||||
|
||||
/* After the first ping response from a client we assume
|
||||
* that client has completed startup and is running OK.
|
||||
* We can therefore clear any loss of client alarm.
|
||||
*/
|
||||
if (nil != [alarmed member: n])
|
||||
{
|
||||
NSString *managedObject;
|
||||
EcAlarm *a;
|
||||
|
||||
[alarmed removeObject: n];
|
||||
managedObject = EcMakeManagedObject(host, n, nil);
|
||||
a = [EcAlarm alarmForManagedObject: managedObject
|
||||
at: nil
|
||||
withEventType: EcAlarmEventTypeProcessingError
|
||||
probableCause: EcAlarmSoftwareProgramAbnormallyTerminated
|
||||
specificProblem: @"Process availability"
|
||||
perceivedSeverity: EcAlarmSeverityCleared
|
||||
proposedRepairAction: nil
|
||||
additionalText: nil];
|
||||
[self alarm: a];
|
||||
[self clearConfigurationFor: managedObject
|
||||
specificProblem: @"Process launch"
|
||||
additionalText: @"Process is now running"];
|
||||
[self clearConfigurationFor: managedObject
|
||||
specificProblem: @"Fatal configuration error"
|
||||
additionalText: @"Process is now running"];
|
||||
}
|
||||
managedObject = EcMakeManagedObject(host, n, nil);
|
||||
a = [EcAlarm alarmForManagedObject: managedObject
|
||||
at: nil
|
||||
withEventType: EcAlarmEventTypeProcessingError
|
||||
probableCause: EcAlarmSoftwareProgramAbnormallyTerminated
|
||||
specificProblem: @"Process availability"
|
||||
perceivedSeverity: EcAlarmSeverityCleared
|
||||
proposedRepairAction: nil
|
||||
additionalText: nil];
|
||||
[self alarm: a];
|
||||
[self clearConfigurationFor: managedObject
|
||||
specificProblem: @"Process launch"
|
||||
additionalText: @"Process is now running"];
|
||||
[self clearConfigurationFor: managedObject
|
||||
specificProblem: @"Fatal configuration error"
|
||||
additionalText: @"Process is now running"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1371,7 +1366,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
EcAlarm *a;
|
||||
|
||||
s = EcMakeManagedObject(host, name, nil);
|
||||
[alarmed addObject: name];
|
||||
a = [EcAlarm alarmForManagedObject: s
|
||||
at: nil
|
||||
withEventType: EcAlarmEventTypeProcessingError
|
||||
|
@ -1424,7 +1418,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
{
|
||||
[timer invalidate];
|
||||
}
|
||||
RELEASE(alarmed);
|
||||
RELEASE(launching);
|
||||
RELEASE(launches);
|
||||
DESTROY(control);
|
||||
|
@ -1610,7 +1603,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
clients = [[NSMutableArray alloc] initWithCapacity: 10];
|
||||
launches = [[NSMutableDictionary alloc] initWithCapacity: 10];
|
||||
launching = [[NSMutableSet alloc] initWithCapacity: 10];
|
||||
alarmed = [[NSMutableSet alloc] initWithCapacity: 10];
|
||||
|
||||
timer = [NSTimer scheduledTimerWithTimeInterval: 5.0
|
||||
target: self
|
||||
|
@ -1716,7 +1708,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
{
|
||||
[launching addObject: key];
|
||||
}
|
||||
else if (nil == [alarmed member: key])
|
||||
else
|
||||
{
|
||||
NSString *managedObject;
|
||||
EcAlarm *a;
|
||||
|
@ -1724,7 +1716,6 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
/* We are re-attempting a launch of a program which never
|
||||
* contacted us and registered with us ... raise an alarm.
|
||||
*/
|
||||
[alarmed addObject: key];
|
||||
managedObject = EcMakeManagedObject(host, key, nil);
|
||||
a = [EcAlarm alarmForManagedObject: managedObject
|
||||
at: nil
|
||||
|
@ -1807,11 +1798,10 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
|
|||
@"bad program name to launch %@"), key];
|
||||
[self information: m from: nil to: nil type: LT_AUDIT];
|
||||
}
|
||||
if (nil != failed && nil == [alarmed member: key])
|
||||
if (nil != failed)
|
||||
{
|
||||
NSString *managedObject;
|
||||
|
||||
[alarmed addObject: key];
|
||||
managedObject = EcMakeManagedObject(host, key, nil);
|
||||
[self alarmConfigurationFor: managedObject
|
||||
specificProblem: @"Process launch"
|
||||
|
|
Loading…
Reference in a new issue