void EndAudit(const EvalContext *ctx, int background_tasks) { if (!END_AUDIT_REQUIRED) { return; } double total = (double) (PR_KEPT + PR_NOTKEPT + PR_REPAIRED) / 100.0; const char *version = EvalContextVariableControlCommonGet(ctx, COMMON_CONTROL_VERSION); if (!version) { version = "(not specified)"; } if (total == 0) { Log(LOG_LEVEL_VERBOSE, "Outcome of version '%s', no checks were scheduled", version); return; } else { LogTotalCompliance(version, background_tasks); } }
void EndAudit(const EvalContext *ctx, int background_tasks) { if (!END_AUDIT_REQUIRED) { return; } char *sp, string[CF_BUFSIZE]; Rval retval = { 0 }; Promise dummyp = { 0 }; Attributes dummyattr = { {0} }; memset(&dummyp, 0, sizeof(dummyp)); memset(&dummyattr, 0, sizeof(dummyattr)); { Rval track_value_rval = { 0 }; bool track_value = false; if (EvalContextVariableGet(ctx, (VarRef) { NULL, "control_agent", CFA_CONTROLBODY[AGENT_CONTROL_TRACK_VALUE].lval }, &track_value_rval, NULL)) { track_value = BooleanFromString(track_value_rval.item); } if (track_value) { FILE *fout; char name[CF_MAXVARSIZE], datestr[CF_MAXVARSIZE]; time_t now = time(NULL); CfOut(OUTPUT_LEVEL_INFORM, "", " -> Recording promise valuations"); snprintf(name, CF_MAXVARSIZE, "%s/state/%s", CFWORKDIR, CF_VALUE_LOG); snprintf(datestr, CF_MAXVARSIZE, "%s", cf_ctime(&now)); if ((fout = fopen(name, "a")) == NULL) { CfOut(OUTPUT_LEVEL_INFORM, "", " !! Unable to write to the value log %s\n", name); return; } if (Chop(datestr, CF_EXPANDSIZE) == -1) { CfOut(OUTPUT_LEVEL_ERROR, "", "Chop was called on a string that seemed to have no terminator"); } fprintf(fout, "%s,%.4lf,%.4lf,%.4lf\n", datestr, VAL_KEPT, VAL_REPAIRED, VAL_NOTKEPT); TrackValue(datestr, VAL_KEPT, VAL_REPAIRED, VAL_NOTKEPT); fclose(fout); } } double total = (double) (PR_KEPT + PR_NOTKEPT + PR_REPAIRED) / 100.0; if (ScopeControlCommonGet(ctx, COMMON_CONTROL_VERSION, &retval) != DATA_TYPE_NONE) { sp = (char *) retval.item; } else { sp = "(not specified)"; } if (total == 0) { *string = '\0'; CfOut(OUTPUT_LEVEL_VERBOSE, "", "Outcome of version %s: No checks were scheduled\n", sp); return; } else { LogTotalCompliance(sp, background_tasks); } }
void EndAudit(int background_tasks) { if (!END_AUDIT_REQUIRED) { return; } char *sp, string[CF_BUFSIZE]; Rval retval; Promise dummyp = { 0 }; Attributes dummyattr = { {0} }; memset(&dummyp, 0, sizeof(dummyp)); memset(&dummyattr, 0, sizeof(dummyattr)); if (BooleanControl("control_agent", CFA_CONTROLBODY[cfa_track_value].lval)) { FILE *fout; char name[CF_MAXVARSIZE], datestr[CF_MAXVARSIZE]; time_t now = time(NULL); CfOut(cf_inform, "", " -> Recording promise valuations"); snprintf(name, CF_MAXVARSIZE, "%s/state/%s", CFWORKDIR, CF_VALUE_LOG); snprintf(datestr, CF_MAXVARSIZE, "%s", cf_ctime(&now)); if ((fout = fopen(name, "a")) == NULL) { CfOut(cf_inform, "", " !! Unable to write to the value log %s\n", name); return; } if (Chop(datestr, CF_EXPANDSIZE) == -1) { CfOut(cf_error, "", "Chop was called on a string that seemed to have no terminator"); } fprintf(fout, "%s,%.4lf,%.4lf,%.4lf\n", datestr, VAL_KEPT, VAL_REPAIRED, VAL_NOTKEPT); TrackValue(datestr, VAL_KEPT, VAL_REPAIRED, VAL_NOTKEPT); fclose(fout); } double total = (double) (PR_KEPT + PR_NOTKEPT + PR_REPAIRED) / 100.0; if (GetVariable("control_common", "version", &retval) != DATA_TYPE_NONE) { sp = (char *) retval.item; } else { sp = "(not specified)"; } if (total == 0) { *string = '\0'; CfOut(cf_verbose, "", "Outcome of version %s: No checks were scheduled\n", sp); return; } else { LogTotalCompliance(sp, background_tasks); } }