⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stafmon.rxp

📁 Software Testing Automation Framework (STAF)的开发代码
💻 RXP
📖 第 1 页 / 共 2 页
字号:
      else rc = MakeSTAFResult(STAFError.!FileOpenError, "Error creating directory" directory)    end    when type = "LIST" then    do      if clientTrust < 2 then RETURN MakeSTAFResult(STAFError.!AccessDenied, ,        STAFError.!AccessDenied.!text)      if optionTimes("MACHINES") > 0 then      do        listFileOpts = "DT"        listDir = directory || fileSep"*"      end      else      do        listFileOpts = "FT"        listDir = directory || fileSep || ResolveVariable(optionValue("MACHINE")) || fileSep"*"ext      end      call SysFileTree listDir, stem, listFileOpts      if stem.0 = 0 then RETURN MakeSTAFResult(STAFError.!FileOpenError, ,        "No monitor data found")      rc = MakeSTAFResult(STAFError.!Ok)      do i = 1 to stem.0        parse var stem.i listDateTime listSize . listFile        listFirst = LASTPOS(fileSep,listfile) + 1        if optionTimes("MACHINES") > 0 then        do          listLength = LENGTH(listFile) - listFirst + 1          listRest = lineSep          listFile = SUBSTR(listFile, listFirst, listLength)        end        else        do          listLength = LASTPOS('.', listFile) - listFirst          listRest = MakeStandardDate(SUBSTR(listDateTime,4,2) || ,            SUBSTR(listDateTime, 7, 2) || SUBSTR(listDateTime, 1, 2)) || "-" || ,            SUBSTR(listDateTime, 10, 2) || ":" || SUBSTR(listDateTime, 13, 2) || ,            ":00  Size="listSize || lineSep          listFile = SUBSTR(SUBSTR(listFile, listFirst, listLength), 1, 25, '.')        end        rc = rc || listFile"  "listRest      end    end    when type = "HELP" then    do      rc = MakeSTAFResult(STAFError.!Ok, "STAF Monitor Help" || lineSep || lineSep || ,        "LOG     MESSAGE <Message> [RESOLVEMESSAGE NORESOLVEMESSAGE]" || lineSep || ,        "QUERY   MACHINE <Machine> HANDLE <Handle>" || lineSep || ,        "LIST    <MACHINES | [MACHINE <Machine>]" || lineSep || ,        "DELETE  [BEFORE <Date>] CONFIRM" || lineSep || ,        "REFRESH VAR" || lineSep || ,        "HELP")    end    when type = "REFRESH" then    do      if clientTrust < 3 then RETURN MakeSTAFResult(STAFError.!AccessDenied, ,        STAFError.!AccessDenied.!text)      rc = MakeSTAFResult(ProcessVars("SET"))    end    when type = "VERSION" then RETURN MakeSTAFResult(STAFError.!Ok, version)    when type = "DELETE" then    do      if clientTrust < 4 then RETURN MakeSTAFResult(STAFError.!AccessDenied, ,        STAFError.!AccessDenied.!text)      RETURN DeleteData(ResolveVariable(optionValue("BEFORE")))    end    otherwise RETURN MakeSTAFResult(STAFError.!InvalidRequestString, ,      STAFError.!InvalidRequestString.!text || lineSep || "Use HELP for syntax")  endRETURN rc/* End of STAFServiceAcceptRequest *//****************************************************************************//* ProcessVars - Using the RxThread functions, determine the STAF           *//*               variables need for Monitor.                                *//*                                                                          *//* Accepts: action, serviceName                                             *//* Returns: 0                                                               *//****************************************************************************/ProcessVars: PROCEDURE EXPOSE lineSep fileSep directory maxRetry maxSize,                              resolveMessage STAFHandle STAFResult,                              serviceName STAFError.  parse arg action  me     = "STAF/Service/"serviceName"/"  /* New variable style >= 1.75  */  oldMe  = "STAFMonitor/"                 /* Old variable style < 1.75   */  rxPool = me"Pool"                       /* RxThread pool name          */  if translate(action) = "READ" then  do    lineSep        = RxThreadValue(rxPool, "lineSep")    fileSep        = RxThreadValue(rxPool, "fileSep")    directory      = RxThreadValue(rxPool, "directory")    maxRetry       = RxThreadValue(rxPool, "maxRetry")    maxSize        = RxThreadValue(rxPool, "maxSize")    resolveMessage = RxThreadValue(rxPool, "resolveMessage")  end  else  do    /* Determine Line Seperator */    STAFRC = STAFSubmit("LOCAL", "VAR", "GLOBAL RESOLVE {STAF/Config/Sep/Line}")    if STAFRC = 0 then lineSep = STAFResult    else lineSep = x2c("0D0A")    call RxThreadValue rxPool, "lineSep", lineSep    /* Determine File Seperator */    STAFRC = STAFSubmit("LOCAL", "VAR", "GLOBAL RESOLVE {STAF/Config/Sep/File}")    if STAFRC = 0 then fileSep = STAFResult    else fileSep = "\"    call RxThreadValue rxPool, "fileSep", fileSep    /* Determine directory */    STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"me"Directory}")    if STAFRC = 0 then directory = STAFResult    else    do      STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {STAF/Config/BootDrive}")      if STAFRC = 0 then        directory = STAFResult || fileSep || "STAF" || fileSep || serviceName      else EXIT MakeSTAFResult(STAFError.!VariableDoesNotExist, ,        STAFError.!VariableDoesNotExist.!text || ": STAF/Config/BootDrive")      STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"oldMe"Directory}")      if STAFRC = 0 then        call DisplayOldVarErrorMessage "Directory", directory    end    call RxThreadValue rxPool, "directory", directory    /* Determine maximum times to retry reading/writing a monitor record */    max = 5    STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"me"Retry}")    if STAFRC = 0 then maxRetry = STAFResult    else    do      maxRetry = max      STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"oldMe"Retry}")      if STAFRC = 0 then        call DisplayOldVarErrorMessage "Retry", maxRetry    end    if \datatype(maxRetry,'W') then maxRetry = max    call RxThreadValue rxPool, "maxRetry", maxRetry    /* Determine maximum record size for monitor data */    max = 1024    STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"me"MaxRecordSize}")    if STAFRC = 0  then maxSize = STAFResult    else    do      maxSize = max      STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"oldMe"MaxRecordSize}")      if STAFRC = 0 then        call DisplayOldVarErrorMessage "MaxRecordSize", maxSize    end    if \datatype(maxSize,'W') then maxSize = max    call RxThreadValue rxPool, "maxSize", maxSize    /* Determine message resolution option */    resolveMessage = 0    STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"me"ResolveMessage}")    if STAFRC = 0 then      if STAFResult = 1 then resolveMessage = 1      else resolveMessage = 0    else    do      STAFRC = STAFSubmit("LOCAL", "VAR", "RESOLVE {"oldMe"ResolveMessage}")      if STAFRC = 0 then        call DisplayOldVarErrorMessage "ResolveMessage", resolveMessage    end    call RxThreadValue rxPool, "resolveMessage", resolveMessage  end  /* if not READ */RETURN STAFError.!Ok/****************************************************************************//* DeleteData - Purge monitor files and directories.                        *//*                                                                          *//* Accepts: nothing                                                         *//* Returns: 0                                                               *//****************************************************************************/DeleteData: PROCEDURE EXPOSE ext fileSep directory ,                            errorDate errorDate.!text STAFError.!Ok  parse arg beforeDate  if beforeDate > '' then  do    if TRANSLATE(beforeDate) = "TODAY" then beforeDate = date('S')    else    do      call EvalDate(beforeDate)      parse var result evalDate_rc evalDate_date      if evalDate_rc = 0 then beforeDate = evalDate_date      else EXIT MakeSTAFResult(errorDate, errorDate.!text || beforeDate || ,        " MM/DD/YY or YYYYMMDD")    end  end  call SysFileTree directory || fileSep || "*"ext, stem, "SF"  do i = 1 to stem.0    parse var stem.i listDate listTime listSize . listFile    if beforeDate > '' then    do      call EvalDate(listDate)      parse var result evalDate_rc evalDate_date      if evalDate_date < beforeDate then call SysFileDelete STRIP(listFile)    end    else call SysFileDelete STRIP(listFile)  end  call SysFileTree directory || fileSep || "*", stem, "SDO"  do i = 1 to stem.0    call SysRmDir stem.i  endRETURN MakeSTAFResult(STAFError.!Ok)/****************************************************************************//* STAFServiceTerm - Terminates the service                                 *//*                                                                          *//* Accepts: The name of this service                                        *//* Returns: 0                                                               *//****************************************************************************/STAFServiceTerm:  parse arg serviceNameRETURN MakeSTAFResult(STAFError.!Ok)/******************************************************************************//* From here on are imported functions, DO NOT CHANGE ANYTHING BELOW HERE     *//******************************************************************************/#From STAFUtil Import MakeSTAFResult STAFErrorText STAFWrapData#From Misc     Import CreatePath#From LogMon   Import LogMonErrorText ResolveVariable FileStatus#From LogMon   Import DisplayOldVarErrorMessage#From STAFCPar Import All#From Date     Import All

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -