Пример #1
0
void ReadPromises(enum cfagenttype ag,char *agents)

{ char *v,rettype;
  void *retval;
  char vbuff[CF_BUFSIZE];

if (ag == cf_keygen)
   {
   return;
   }

DeleteAllPromiseIds(); // in case we are re-reading, delete old handles

/* Parse the files*/

Cf3ParseFiles();

/* Now import some web variables that are set in cf-know/control for the report options */

strncpy(STYLESHEET,"/cf_enterprise.css",CF_BUFSIZE-1);
strncpy(WEBDRIVER,"",CF_MAXVARSIZE-1);

/* Make the compilation reports*/

OpenReports(agents);

SetAuditVersion();

if (GetVariable("control_common","version",&retval,&rettype) != cf_notype)
   {
   v = (char *)retval;
   }
else
   {
   v = "not specified";
   }

snprintf(vbuff,CF_BUFSIZE-1,"Expanded promises for %s",agents);
CfHtmlHeader(FREPORT_HTML,vbuff,STYLESHEET,WEBDRIVER,BANNER);

fprintf(FREPORT_TXT,"Expanded promise list for %s component\n\n",agents);

ShowContext();

fprintf(FREPORT_HTML,"<div id=\"reporttext\">\n");
fprintf(FREPORT_HTML,"%s",CFH[cfx_promise][cfb]);

VerifyPromises(cf_common);

fprintf(FREPORT_HTML,"%s",CFH[cfx_promise][cfe]);

if (ag != cf_common)
   {
   ShowScopedVariables();
   }

fprintf(FREPORT_HTML,"</div>\n");
CfHtmlFooter(FREPORT_HTML,FOOTER);
CloseReports(agents);
}
Пример #2
0
void ShowPromisesInReport(Bundle *bundles, Body *bodies)
{
    Rval retval;
    char *v;
    char vbuff[CF_BUFSIZE];
    Bundle *bp;
    Rlist *rp;
    SubType *sp;
    Promise *pp;
    Body *bdp;

    if (GetVariable("control_common", "version", &retval) != cf_notype)
    {
        v = (char *) retval.item;
    }
    else
    {
        v = "not specified";
    }

    ReportBanner("Promises");

    snprintf(vbuff, CF_BUFSIZE - 1, "Cfengine Site Policy Summary (version %s)", v);

    CfHtmlHeader(FREPORT_HTML, vbuff, STYLESHEET, WEBDRIVER, BANNER);

    fprintf(FREPORT_HTML, "<p>");

    for (bp = bundles; bp != NULL; bp = bp->next)
    {
        fprintf(FREPORT_HTML, "%s Bundle %s%s%s %s%s%s\n",
                CFH[cfx_bundle][cfb],
                CFH[cfx_blocktype][cfb], bp->type, CFH[cfx_blocktype][cfe],
                CFH[cfx_blockid][cfb], bp->name, CFH[cfx_blockid][cfe]);

        fprintf(FREPORT_HTML, " %s ARGS:%s\n\n", CFH[cfx_line][cfb], CFH[cfx_line][cfe]);

        fprintf(FREPORT_TXT, "Bundle %s in the context of %s\n\n", bp->name, bp->type);
        fprintf(FREPORT_TXT, "   ARGS:\n\n");

        for (rp = bp->args; rp != NULL; rp = rp->next)
        {
            fprintf(FREPORT_HTML, "%s", CFH[cfx_line][cfb]);
            fprintf(FREPORT_HTML, "   scalar arg %s%s%s\n", CFH[cfx_args][cfb], (char *) rp->item, CFH[cfx_args][cfe]);
            fprintf(FREPORT_HTML, "%s", CFH[cfx_line][cfe]);

            fprintf(FREPORT_TXT, "   scalar arg %s\n\n", (char *) rp->item);
        }

        fprintf(FREPORT_TXT, "   {\n");
        fprintf(FREPORT_HTML, "%s", CFH[cfx_promise][cfb]);

        for (sp = bp->subtypes; sp != NULL; sp = sp->next)
        {
            fprintf(FREPORT_HTML, "%s", CFH[cfx_line][cfb]);
            fprintf(FREPORT_HTML, "%s", CFH[cfx_line][cfe]);
            fprintf(FREPORT_TXT, "   TYPE: %s\n\n", sp->name);

            for (pp = sp->promiselist; pp != NULL; pp = pp->next)
            {
                ShowPromise(pp, 6);
            }
        }

        fprintf(FREPORT_TXT, "   }\n");
        fprintf(FREPORT_TXT, "\n\n");
        fprintf(FREPORT_HTML, "%s\n", CFH[cfx_promise][cfe]);
        fprintf(FREPORT_HTML, "%s\n", CFH[cfx_line][cfe]);
        fprintf(FREPORT_HTML, "%s\n", CFH[cfx_bundle][cfe]);
    }

/* Now summarize the remaining bodies */

    fprintf(FREPORT_HTML, "<h1>All Bodies</h1>");
    fprintf(FREPORT_TXT, "\n\nAll Bodies\n\n");

    for (bdp = bodies; bdp != NULL; bdp = bdp->next)
    {
        fprintf(FREPORT_HTML, "%s%s\n", CFH[cfx_line][cfb], CFH[cfx_block][cfb]);
        fprintf(FREPORT_HTML, "%s\n", CFH[cfx_promise][cfb]);

        ShowBody(bdp, 3);

        fprintf(FREPORT_TXT, "\n");
        fprintf(FREPORT_HTML, "%s\n", CFH[cfx_promise][cfe]);
        fprintf(FREPORT_HTML, "%s%s \n ", CFH[cfx_block][cfe], CFH[cfx_line][cfe]);
        fprintf(FREPORT_HTML, "</p>");
    }

    CfHtmlFooter(FREPORT_HTML, FOOTER);
}