Exemplo n.º 1
0
        public async static void SendDataToOpsConsole(List<LogStatItem> testResults)
        {
            _metadata = GetMetadata();

            if (_metadata == null)
            {
                ALogger.LogInfo("SendDataToOpsConsole: There is no metadata to validate the data before sending them to OpsConsoleService.");
                return;
            }

            while (threadCount > Utility.ConfigUtil.ThreadLimit || !_mre.WaitOne(_checkFileTimeoutMs))
            {
                if (threadCount >= Utility.ConfigUtil.ThreadLimit)
                {
                    ALogger.LogTrace("SendDataToOpsConsole: threadCount limit reach {0}", threadCount);
                    continue;
                }
                break;
            }

            ChangeThreadCount(1);
            await Task.Run(() => CreateBatch(testResults));
        }
Exemplo n.º 2
0
        private static LogStatItem CreateLogStatInstance(string name, string value, string description, LogStatItem tmp)
        {
            var testCase = new LogStatItem {
                statName = name,
                statVal = value,
                uuid = tmp.uuid,
                timeStamp = tmp.timeStamp,
                machineGuid = tmp.machineGuid,
                product = tmp.product,
                installGuid = tmp.installGuid
            };
            if (_metadata == null)
            {
                _metadata = GetMetadata();
            }

            var index = _metadata.testschema.FindIndex(s => s.name == name);
            if (index == -1)
            {
                ALogger.LogWarn("Cannot find metadata for [{0}]", name);
                return null;
            }
            var schema = _metadata.testschema[index];
            if (!schema.enabled)
            {
                return null;
            }

            if (schema.usedesc || string.IsNullOrWhiteSpace(value))
            {
                if (!string.IsNullOrWhiteSpace(description) && description != "-")
                {
                    testCase.statVal = description;
                }
            }

            if (schema.type == "boolean")
            {
                testCase.statVal = ParseBoolean(testCase.statVal);
                return testCase;
            }

            if (!string.IsNullOrEmpty(schema.unit))
            {
                testCase.statVal = ParseUnit(testCase.statVal, schema.unit);
                return testCase;
            }

            if (testCase.statVal.Length <= 40) return testCase;

            var mapCode = _metadata.enumdict.Find(s => s.Test.Contains(name));
            if (mapCode != null)
            {
                foreach (var map in mapCode.Map)
                {
                    testCase.statVal = ReplaceCaseInsensitive(testCase.statVal, map.Value, "#" + map.ID, map.Display == null);
                    if (testCase.statVal.Length <= 40) return testCase;
                }
            }

            if (testCase.statVal.Length <= 40) return testCase;
            //suppress warning message for some stats such as userID, email.
            var longStatIgnoreList = new List<string>() {"61","118"};
            if (!longStatIgnoreList.Contains(testCase.statName))
            {
                ALogger.LogWarn("[{0}] value length is over 40 characters, [{1}]", testCase.statName, testCase.statVal);
            }            
            testCase.statVal = testCase.statVal.Substring(0, 37) + "...";

            return testCase;
        }
Exemplo n.º 3
0
        private static Metadata GetMetadata(string product = "est")
        {
            if (_estMetaData != null) return _estMetaData;
            try
            {
                _estMetaData = new Metadata { enumdict = new List<EnumDict>(), statcodedict = new List<StatCodeDict>() };
                using (var client = new OpsConsoleServiceClient(RouterBindings.Local, RouterAddresses.Local.RequestReply))
                {
                    var request = new GetMetadataRequest()
                    {
                        product = product
                    };
                    var metadataJson = client.GetMetadata(request);
                    _estMetaData = JsonConvert.DeserializeObject<Metadata>(metadataJson);
                }                
            }
            catch (Exception ex)
            {
                Logger.LogWarn("GetMetadata:, cannot get/convert metadata from OpsConsole service, {0}", ex.Message);

                try
                {
                    using (var sStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SystemTestService.Schema.json"))
                    {
                        using (var reader = new StreamReader(sStream))
                        {
                            sStream.Seek(0, SeekOrigin.Begin);
                            var metadataJson = reader.ReadToEnd();
                            _estMetaData = JsonConvert.DeserializeObject<Metadata>(metadataJson);
                        }
                    }
                }
                catch (Exception ex2)
                {
                    Logger.LogError("GetMetadata: cannot get metadata from resource file, {0}", ex2.Message);
                    return _estMetaData;
                }
            }
            return _estMetaData;
        }