コード例 #1
0
ファイル: MGroup.c プロジェクト: hocks/TSCC
char *MGroupShow(

    mgcred_t *G,        /* I */
    char     *SBuffer,  /* O (optional) */
    long     *SBufSize, /* I */
    long      Mode)     /* I */

{
    static char Line[MAX_MLINE];

    char FlagLine[MAX_MLINE];

    char QALLine[MAX_MLINE];
    char QALChar;

    char GLLine[MAX_MLINE];

    char *Head;

    char *BPtr;
    int   BSpace;

    const char *FName = "MGroupShow";

    DBG(3,fUI) DPrint("%s(%s,Buf,BufSize,%ld)\n",
                      FName,
                      (G != NULL) ? G->Name : "NULL",
                      Mode);

    if (SBuffer != NULL)
    {
        BPtr   = SBuffer;
        BSpace = *SBufSize;
    }
    else
    {
        BPtr   = Line;
        BSpace = sizeof(Line);
    }

    BPtr[0] = '\0';

    Head = BPtr;

    if (G == NULL)
    {
        /* build header */

        /*            NAME PRI FLAG QDEF QLST * PLST TRG LIMITS */

        MUSNPrintF(&BPtr,&BSpace,"%-12s %8s %12s %12s %12s%s %20s %6s %7s\n\n",
                   "Name",
                   "Priority",
                   "Flags",
                   "QDef",
                   "QOSList",
                   "*",
                   "PartitionList",
                   "Target",
                   "Limits");
    }
    else
    {
        /* build job info line */

        MUBMToString(G->F.JobFlags,MJobFlags,':',FlagLine,NONE);

        MUStrCpy(QALLine,MQOSBMToString(G->F.QAL),sizeof(QALLine));

        if (G->F.QALType == qalAND)
            QALChar = '&';
        else if (G->F.QALType == qalONLY)
            QALChar = '^';
        else
            QALChar = ' ';

        MUStrCpy(GLLine,
                 MCredShowAttrs(&G->L.AP,G->L.IP,NULL,NULL,NULL,&G->F,0,(1 << mcsLimits)),sizeof(GLLine));

        /*            NAME PRIO FLAG QDEF QLST * PLST FSTARG LIMITS */

        MUSNPrintF(&BPtr,&BSpace,"%-12s %8ld %12s %12s %12s%c %20s %6.2lf %7s\n",
                   G->Name,
                   G->F.Priority,
                   FlagLine,
                   ((mqos_t *)G->F.QDef) != NULL ?
                   ((mqos_t *)G->F.QDef)->Name  :
                   NONE,
                   (QALLine[0] != '\0') ? QALLine : NONE,
                   QALChar,
                   (G->F.PAL[0] == 0) ?
                   NONE :
                   MUListAttrs(ePartition,G->F.PAL[0]),
                   G->F.FSTarget,
                   (GLLine[0] != '\0') ? GLLine : NONE);

        /* add group attributes */

        if (G->L.APC != NULL)
        {
            int cindex;

            for (cindex = 0; cindex < MAX_MCLASS; cindex++)
            {
                if (G->L.APC[cindex].SLimit[mptMaxProc][0] > 0)
                {
                    MUSNPrintF(&BPtr,&BSpace,"  MAXPROC[CLASS:%s]=%d,%d\n",
                               MClass[cindex].Name,
                               G->L.APC[cindex].SLimit[mptMaxProc][0],
                               G->L.APC[cindex].HLimit[mptMaxProc][0]);
                }
            }  /* END for (cindex) */
        }    /* END if (G->L.APC != NULL) */

        if (G->L.APQ != NULL)
        {
            int cindex;

            for (cindex = 0; cindex < MAX_MQOS; cindex++)
            {
                if (G->L.APQ[cindex].SLimit[mptMaxProc][0] > 0)
                {
                    MUSNPrintF(&BPtr,&BSpace,"  MAXPROC[QOS:%s]=%d,%d\n",
                               MQOS[cindex].Name,
                               G->L.APQ[cindex].SLimit[mptMaxProc][0],
                               G->L.APQ[cindex].HLimit[mptMaxProc][0]);
                }
            }  /* END for (cindex) */
        }    /* END if (G->L.APQ != NULL) */

        if (Mode & (1 << mcmVerbose))
        {
            char tmpLine[MAX_MLINE];

            /* display additional attributes */

            MCredConfigLShow(
                (void *)G,
                mxoGroup,
                TRUE,
                -1,
                tmpLine);

            if (tmpLine[0] != '\0')
            {
                MUSNPrintF(&BPtr,&BSpace,"  %s\n",
                           tmpLine);
            }
        }    /* END if (Mode == Verbose) */
    }      /* END else (G == NULL) */

    return(Head);
}  /* END MGroupShow() */
コード例 #2
0
ファイル: MAcct.c プロジェクト: TempleHPC/maui-scheduler
char *MAcctShow(

    mgcred_t *A, /* I */
    char *Buf,   /* O */
    long *BufSize, long Mode)

{
    static char Line[MAX_MLINE];

    char FlagLine[MAX_MLINE];

    char QALLine[MAX_MLINE];
    char QALChar;

    char ALLine[MAX_MLINE];

    char *ptr;

    const char *FName = "MAcctShow";

    DBG(3, fUI)
    DPrint("%s(%s,Buf,BufSize,%ld)\n", FName, (A != NULL) ? A->Name : "NULL",
           Mode);

    ptr = (Buf != NULL) ? Buf : Line;

    if (A == NULL) {
        /* build header */

        /*            NAME PRI FLAG QDEF QLST * PLST TRG LIMITS */

        sprintf(ptr, "%-12s %8s %12s %12s %12s%s %20s %6s %7s\n\n", "Name",
                "Priority", "Flags", "QDef", "QOSList", "*", "PartitionList",
                "Target", "Limits");
    } else {
        /* build job info line */

        MUBMToString(A->F.JobFlags, MJobFlags, ':', FlagLine, NONE);

        MUStrCpy(QALLine, MQOSBMToString(A->F.QAL), sizeof(QALLine));

        if (A->F.QALType == qalAND)
            QALChar = '&';
        else if (A->F.QALType == qalONLY)
            QALChar = '^';
        else
            QALChar = ' ';

        MUStrCpy(ALLine, MCredShowAttrs(&A->L.AP, A->L.IP, NULL, NULL, NULL,
                                        &A->F, 0, (1 << mcsLimits)),
                 sizeof(ALLine));

        /*            NAME PRIO FLAG QDEF QLST * PLST FSTARG LIMITS */

        sprintf(
            ptr, "%-12s %8ld %12s %12s %12s%c %20s %6.2lf %7s\n", A->Name,
            A->F.Priority, FlagLine,
            ((mqos_t *)A->F.QDef) != NULL ? ((mqos_t *)A->F.QDef)->Name : NONE,
            (QALLine[0] != '\0') ? QALLine : NONE, QALChar,
            (A->F.PAL[0] == 0) ? NONE : MUListAttrs(ePartition, A->F.PAL[0]),
            A->F.FSTarget, (ALLine[0] != '\0') ? ALLine : NONE);
    } /* END else (A == NULL) */

    return (ptr);
} /* END MAcctShow() */