void ShutdownCipStack(void) { /* First close all connections */ CloseAllConnections(); /* Than free the sockets of currently active encapsulation sessions */ EncapsulationShutDown(); /*clean the data needed for the assembly object's attribute 3*/ ShutdownAssemblies(); ShutdownTcpIpInterface(); /*no clear all the instances and classes */ DeleteAllClasses(); }
static void SetPromiseOutcomeClasses(char status, EvalContext *ctx, const Promise *pp, Attributes attr) { Rlist *add_classes; Rlist *del_classes; switch (status) { case PROMISE_RESULT_CHANGE: add_classes = attr.classes.change; del_classes = attr.classes.del_change; break; case PROMISE_RESULT_WARN: /* FIXME: nothing? */ return; case PROMISE_RESULT_TIMEOUT: add_classes = attr.classes.timeout; del_classes = attr.classes.del_notkept; break; case PROMISE_RESULT_FAIL: add_classes = attr.classes.failure; del_classes = attr.classes.del_notkept; break; case PROMISE_RESULT_DENIED: add_classes = attr.classes.denied; del_classes = attr.classes.del_notkept; break; case PROMISE_RESULT_INTERRUPTED: add_classes = attr.classes.interrupt; del_classes = attr.classes.del_notkept; break; case PROMISE_RESULT_NOOP: add_classes = attr.classes.kept; del_classes = attr.classes.del_kept; break; default: ProgrammingError("Unexpected status '%c' has been passed to SetPromiseOutcomeClasses", status); } AddAllClasses(ctx, PromiseGetNamespace(pp), add_classes, attr.classes.persist, attr.classes.timer, attr.classes.scope); DeleteAllClasses(ctx, del_classes); }
static void SetPromiseOutcomeClasses(PromiseResult status, EvalContext *ctx, const Promise *pp, DefineClasses dc) { Rlist *add_classes = NULL; Rlist *del_classes = NULL; switch (status) { case PROMISE_RESULT_CHANGE: add_classes = dc.change; del_classes = dc.del_change; break; case PROMISE_RESULT_TIMEOUT: add_classes = dc.timeout; del_classes = dc.del_notkept; break; case PROMISE_RESULT_WARN: case PROMISE_RESULT_FAIL: add_classes = dc.failure; del_classes = dc.del_notkept; break; case PROMISE_RESULT_DENIED: add_classes = dc.denied; del_classes = dc.del_notkept; break; case PROMISE_RESULT_INTERRUPTED: add_classes = dc.interrupt; del_classes = dc.del_notkept; break; case PROMISE_RESULT_NOOP: add_classes = dc.kept; del_classes = dc.del_kept; break; default: ProgrammingError("Unexpected status '%c' has been passed to SetPromiseOutcomeClasses", status); } AddAllClasses(ctx, PromiseGetNamespace(pp), add_classes, dc.persist, dc.timer, dc.scope); DeleteAllClasses(ctx, del_classes); }
void ClassAuditLog(const Promise *pp, Attributes attr, char status, char *reason) { switch (status) { case CF_CHG: if (IsPromiseValuableForStatus(pp)) { if (!EDIT_MODEL) { PR_REPAIRED++; VAL_REPAIRED += attr.transaction.value_repaired; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'r'); #endif } } AddAllClasses(pp->ns, attr.classes.change, attr.classes.persist, attr.classes.timer); MarkPromiseHandleDone(pp); DeleteAllClasses(attr.classes.del_change); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 0.5, PROMISE_STATE_REPAIRED, reason); SummarizeTransaction(attr, pp, attr.transaction.log_repaired); } break; case CF_WARN: if (IsPromiseValuableForStatus(pp)) { PR_NOTKEPT++; VAL_NOTKEPT += attr.transaction.value_notkept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'n'); #endif } if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 1.0, PROMISE_STATE_NOTKEPT, reason); } break; case CF_TIMEX: if (IsPromiseValuableForStatus(pp)) { PR_NOTKEPT++; VAL_NOTKEPT += attr.transaction.value_notkept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'n'); #endif } AddAllClasses(pp->ns, attr.classes.timeout, attr.classes.persist, attr.classes.timer); DeleteAllClasses(attr.classes.del_notkept); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 0.0, PROMISE_STATE_NOTKEPT, reason); SummarizeTransaction(attr, pp, attr.transaction.log_failed); } break; case CF_FAIL: if (IsPromiseValuableForStatus(pp)) { PR_NOTKEPT++; VAL_NOTKEPT += attr.transaction.value_notkept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'n'); #endif } AddAllClasses(pp->ns, attr.classes.failure, attr.classes.persist, attr.classes.timer); DeleteAllClasses(attr.classes.del_notkept); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 0.0, PROMISE_STATE_NOTKEPT, reason); SummarizeTransaction(attr, pp, attr.transaction.log_failed); } break; case CF_DENIED: if (IsPromiseValuableForStatus(pp)) { PR_NOTKEPT++; VAL_NOTKEPT += attr.transaction.value_notkept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'n'); #endif } AddAllClasses(pp->ns, attr.classes.denied, attr.classes.persist, attr.classes.timer); DeleteAllClasses(attr.classes.del_notkept); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 0.0, PROMISE_STATE_NOTKEPT, reason); SummarizeTransaction(attr, pp, attr.transaction.log_failed); } break; case CF_INTERPT: if (IsPromiseValuableForStatus(pp)) { PR_NOTKEPT++; VAL_NOTKEPT += attr.transaction.value_notkept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'n'); #endif } AddAllClasses(pp->ns, attr.classes.interrupt, attr.classes.persist, attr.classes.timer); DeleteAllClasses(attr.classes.del_notkept); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 0.0, PROMISE_STATE_NOTKEPT, reason); SummarizeTransaction(attr, pp, attr.transaction.log_failed); } break; case CF_UNKNOWN: case CF_NOP: AddAllClasses(pp->ns, attr.classes.kept, attr.classes.persist, attr.classes.timer); DeleteAllClasses(attr.classes.del_kept); if (IsPromiseValuableForLogging(pp)) { NotePromiseCompliance(pp, 1.0, PROMISE_STATE_ANY, reason); SummarizeTransaction(attr, pp, attr.transaction.log_kept); } if (IsPromiseValuableForStatus(pp)) { PR_KEPT++; VAL_KEPT += attr.transaction.value_kept; #ifdef HAVE_NOVA EnterpriseTrackTotalCompliance(pp, 'c'); #endif } MarkPromiseHandleDone(pp); break; } }