Exemple #1
0
        /// <summary>
        /// Inspect the given raw log line and determine the line type.
        /// </summary>
        /// <param name="logLine">The raw log line being inspected.</param>
        protected override LogLineType DetermineLineType(string logLine)
        {
            LogLineType baseLineType = base.DetermineLineType(logLine);

            if (!baseLineType.Equals(LogLineType.Unknown))
            {
                return(baseLineType);
            }

            if (logLine.Contains("*********************** Log Started"))
            {
                return(LogLineType.LogOpen);
            }
            if (logLine.Contains(":Sending unit results:"))
            {
                return(LogLineType.ClientSendWorkToServer);
            }
            if (logLine.Contains(": Uploading"))
            {
                return(LogLineType.ClientSendStart);
            }
            if (logLine.Contains(": Upload complete"))
            {
                return(LogLineType.ClientSendComplete);
            }
            if (logLine.Contains(":Requesting new work unit for slot"))
            {
                return(LogLineType.ClientAttemptGetWorkPacket);
            }
            if (logLine.Trim().EndsWith(":Starting"))
            {
                return(LogLineType.WorkUnitWorking);
            }
            /*** Appears to be for v7.1.38 and previous only ***/
            if (logLine.Contains(":Starting Unit"))
            {
                return(LogLineType.WorkUnitWorking);
            }
            /***************************************************/
            if (logLine.Contains(":*------------------------------*"))
            {
                return(LogLineType.WorkUnitStart);
            }
            if (logLine.Contains(":Version"))
            {
                return(LogLineType.WorkUnitCoreVersion);
            }
            if (logLine.Contains(":Project:"))
            {
                return(LogLineType.WorkUnitProject);
            }
            if (logLine.Contains(":Completed "))
            {
                return(LogLineType.WorkUnitFrame);
            }
            if (logLine.Contains(":- Shutting down core"))
            {
                return(LogLineType.WorkUnitShuttingDownCore);
            }
            if (logLine.Contains(":Folding@home Core Shutdown:"))
            {
                return(LogLineType.WorkUnitCoreShutdown);
            }
            if (Regex.IsMatch(logLine, "FahCore returned: "))
            {
                return(LogLineType.WorkUnitCoreReturn);
            }
            /*** Appears to be for v7.1.38 and previous only ***/
            if (Regex.IsMatch(logLine, "FahCore, running Unit \\d{2}, returned: "))
            {
                return(LogLineType.WorkUnitCoreReturn);
            }
            /***************************************************/
            if (logLine.Contains(":Cleaning up"))
            {
                return(LogLineType.WorkUnitCleaningUp);
            }
            /*** Appears to be for v7.1.38 and previous only ***/
            if (logLine.Contains(":Cleaning up Unit"))
            {
                return(LogLineType.WorkUnitCleaningUp);
            }
            /***************************************************/

            return(LogLineType.Unknown);
        }
        /// <summary>
        /// Inspect the given raw log line and determine the line type.
        /// </summary>
        /// <param name="logLine">The raw log line being inspected.</param>
        protected override LogLineType DetermineLineType(string logLine)
        {
            LogLineType baseLineType = base.DetermineLineType(logLine);

            if (!baseLineType.Equals(LogLineType.Unknown))
            {
                return(baseLineType);
            }

            if (logLine.Contains("--- Opening Log file"))
            {
                return(LogLineType.LogOpen);
            }
            if (logLine.Contains("###############################################################################"))
            {
                return(LogLineType.LogHeader);
            }
            if (logLine.Contains("Folding@Home Client Version"))
            {
                return(LogLineType.ClientVersion);
            }
            if (logLine.Contains("] Sending work to server"))
            {
                return(LogLineType.ClientSendWorkToServer);
            }
            if (logLine.Contains("] - Autosending finished units..."))
            {
                return(LogLineType.ClientAutosendStart);
            }
            if (logLine.Contains("] - Autosend completed"))
            {
                return(LogLineType.ClientAutosendComplete);
            }
            if (logLine.Contains("] + Attempting to send results"))
            {
                return(LogLineType.ClientSendStart);
            }
            if (logLine.Contains("] + Could not connect to Work Server"))
            {
                return(LogLineType.ClientSendConnectFailed);
            }
            if (logLine.Contains("] - Error: Could not transmit unit"))
            {
                return(LogLineType.ClientSendFailed);
            }
            if (logLine.Contains("] + Results successfully sent"))
            {
                return(LogLineType.ClientSendComplete);
            }
            if (logLine.Contains("Arguments:"))
            {
                return(LogLineType.ClientArguments);
            }
            if (logLine.Contains("] - User name:"))
            {
                return(LogLineType.ClientUserNameTeam);
            }
            if (logLine.Contains("] + Requesting User ID from server"))
            {
                return(LogLineType.ClientRequestingUserID);
            }
            if (logLine.Contains("- Received User ID ="))
            {
                return(LogLineType.ClientReceivedUserID);
            }
            if (logLine.Contains("] - User ID:"))
            {
                return(LogLineType.ClientUserID);
            }
            if (logLine.Contains("] - Machine ID:"))
            {
                return(LogLineType.ClientMachineID);
            }
            if (logLine.Contains("] + Attempting to get work packet"))
            {
                return(LogLineType.ClientAttemptGetWorkPacket);
            }
            if (logLine.Contains("] - Will indicate memory of"))
            {
                return(LogLineType.ClientIndicateMemory);
            }
            if (logLine.Contains("] - Detect CPU. Vendor:"))
            {
                return(LogLineType.ClientDetectCpu);
            }
            if (logLine.Contains("] + Processing work unit"))
            {
                return(LogLineType.WorkUnitProcessing);
            }
            if (logLine.Contains("] + Downloading new core"))
            {
                return(LogLineType.WorkUnitCoreDownload);
            }
            if (logLine.Contains("] Working on Unit 0"))
            {
                return(LogLineType.WorkUnitIndex);
            }
            if (logLine.Contains("] Working on queue slot 0"))
            {
                return(LogLineType.WorkUnitQueueIndex);
            }
            if (logLine.Contains("] + Working ..."))
            {
                return(LogLineType.WorkUnitWorking);
            }
            if (logLine.Contains("] - Calling"))
            {
                return(LogLineType.WorkUnitCallingCore);
            }
            if (logLine.Contains("] *------------------------------*"))
            {
                return(LogLineType.WorkUnitStart);
            }
            /*** ProtoMol Only */
            if (logLine.Contains("] ************************** ProtoMol Folding@Home Core **************************"))
            {
                return(LogLineType.WorkUnitStart);
            }
            /*******************/
            if (logLine.Contains("] Version"))
            {
                return(LogLineType.WorkUnitCoreVersion);
            }
            /*** ProtoMol Only */
            if (logLine.Contains("]   Version:"))
            {
                return(LogLineType.WorkUnitCoreVersion);
            }
            /*******************/
            if (logLine.Contains("] Project:"))
            {
                return(LogLineType.WorkUnitProject);
            }
            if (logLine.Contains("] Completed "))
            {
                return(LogLineType.WorkUnitFrame);
            }
            if (logLine.Contains("] + Paused"))
            {
                return(LogLineType.WorkUnitPaused);
            }
            if (logLine.Contains("] + Running on battery power"))
            {
                return(LogLineType.WorkUnitPausedForBattery);
            }
            if (logLine.Contains("] + Off battery, restarting core"))
            {
                return(LogLineType.WorkUnitResumeFromBattery);
            }
            if (logLine.Contains("] - Shutting down core"))
            {
                return(LogLineType.WorkUnitShuttingDownCore);
            }
            if (logLine.Contains("] Folding@home Core Shutdown:"))
            {
                return(LogLineType.WorkUnitCoreShutdown);
            }
            if (logLine.Contains("] + Number of Units Completed:"))
            {
                return(LogLineType.ClientNumberOfUnitsCompleted);
            }
            if (logLine.Contains("] Client-core communications error:"))
            {
                return(LogLineType.ClientCoreCommunicationsError);
            }
            if (logLine.Contains("] This is a sign of more serious problems, shutting down."))
            {
                //TODO: No unit test coverage - need test log that contains this string
                return(LogLineType.ClientCoreCommunicationsErrorShutdown);
            }
            if (logLine.Contains("] EUE limit exceeded. Pausing 24 hours."))
            {
                return(LogLineType.ClientEuePauseState);
            }
            if (logLine.Contains("Folding@Home will go to sleep for 1 day"))
            {
                return(LogLineType.ClientEuePauseState);
            }
            if (logLine.Contains("Folding@Home Client Shutdown"))
            {
                return(LogLineType.ClientShutdown);
            }

            return(LogLineType.Unknown);
        }