Example #1
0
        private static void UpsertDatasetsIntoDB()
        {
            Initialize("datacop-ppe");
            Console.WriteLine("Upsert Datasets Into DB:");
            AzureCosmosDBClient azureCosmosDBClient = new AzureCosmosDBClient("DataCop", "Dataset");
            var datasetIds = new HashSet <string>()
            {
                @"618319c3-e263-4f02-bb24-041476954dc9",
            };
            var datasetJsonFilePaths = ReadFile.GetAllFilePath(FolderPath);

            foreach (var datasetJsonFilePath in datasetJsonFilePaths)
            {
                if (datasetJsonFilePath.ToLower().Contains(@"\dataset"))
                {
                    string fileContent = ReadFile.ThirdMethod(datasetJsonFilePath);
                    JsonSerializerSettings serializer = new JsonSerializerSettings
                    {
                        DateParseHandling = DateParseHandling.None
                    };
                    JObject gitDatasetJObject = JsonConvert.DeserializeObject <JObject>(fileContent, serializer);
                    string  id = gitDatasetJObject["id"].ToString();
                    if (datasetIds.Contains(id))
                    {
                        Console.WriteLine(id);
                        azureCosmosDBClient.UpsertDocumentAsync(gitDatasetJObject).Wait();
                    }
                }
            }
        }
Example #2
0
        private static void DisableAllDatasetTests()
        {
            Initialize("datacop-prod");
            string fileFolder = FolderPath + @"\PROD\DataVC\Monitor";
            var    filePaths  = ReadFile.GetFolderSubPaths(fileFolder, ReadType.File, PathType.Absolute);
            AzureCosmosDBClient azureCosmosDBClient = new AzureCosmosDBClient("DataCop", "DatasetTest");

            foreach (var filePath in filePaths)
            {
                var fileContentString = ReadFile.ThirdMethod(filePath);
                var json = JObject.Parse(fileContentString);
                var id   = json["id"].ToString();
                if (id.Equals("01883b87-5b20-40f4-90f2-2ce6cbdfa766"))
                {
                    var jObjectInCosmosDb = azureCosmosDBClient.FindFirstOrDefaultItemAsync <JObject>($"SELECT * FROM c where c.id = '{id}'").Result;
                    if (jObjectInCosmosDb != null)
                    {
                        jObjectInCosmosDb["status"] = "Disabled";
                        //jObjectInCosmosDb["testContent"]["isStreamSet"] = true;
                        Console.WriteLine(jObjectInCosmosDb);
                        //azureCosmosDBClient.UpsertDocumentAsync(json).Wait();
                    }
                }
            }
        }
Example #3
0
        private static void UpsertDatasetTestsIntoDB()
        {
            Console.WriteLine("Upsert DatasetTests Into DB:");
            Initialize("datacop-ppe");
            AzureCosmosDBClient azureCosmosDBClient = new AzureCosmosDBClient("DataCop", "DatasetTest");
            var datasetTestIds = new HashSet <string>()
            {
                @"d2e33866-5d1c-4670-90c2-dd8d0c29fcdc",
            };
            var datasetTestJsonFilePaths = ReadFile.GetAllFilePath(FolderPath);

            foreach (var datasetTestJsonFilePath in datasetTestJsonFilePaths)
            {
                if (datasetTestJsonFilePath.ToLower().Contains(@"\monitor"))
                {
                    string fileContent = ReadFile.ThirdMethod(datasetTestJsonFilePath);
                    JsonSerializerSettings serializer = new JsonSerializerSettings
                    {
                        DateParseHandling = DateParseHandling.None
                    };
                    JObject gitDatasetTestJObject = JsonConvert.DeserializeObject <JObject>(fileContent, serializer);
                    string  id = gitDatasetTestJObject["id"].ToString();
                    if (datasetTestIds.Contains(id))
                    {
                        Console.WriteLine(id);
                        azureCosmosDBClient.UpsertDocumentAsync(gitDatasetTestJObject).Wait();
                    }
                }
            }
        }
        private static void CosmosWorkerRetryLogQuery()
        {
            Console.WriteLine(@"Start querying CosmosWorkerRetryLog...");
            AzureCosmosDBClient testRunCosmosDBClient = new AzureCosmosDBClient("DataCop", "PartitionedTestRun");
            string queryString = "CosmosWorkerTrace_CL ";

            queryString += @"| where TimeGenerated > ago(2d) ";
            queryString += @"| where TagId_g == 'fd98b873-fd99-4de8-b3b3-f2d6262ee3dc'";
            queryString += @"| extend Count = toint(substring(Message, 57))";
            queryString += @"| where Count > 0";
            queryString += @"| project Count, TestRunId_g";
            var    queryResult    = datacopLogProvider.GetQueryresult(queryString);
            var    testRunIdJsons = JArray.Parse(JsonConvert.SerializeObject(queryResult));
            string joinStr        = string.Join(",", testRunIdJsons.Select(t => "'" + t["TestRunId_g"] + "'").ToArray());
            var    testRunQuery   = $"SELECT c.id, c.status FROM c WHERE c.status != 'Failed' and c.id in ({joinStr})";

            Console.WriteLine("Output testRun messages: ");
            var testRuns = testRunCosmosDBClient.GetAllDocumentsInQueryAsync <JObject>(testRunQuery).Result;

            foreach (var testRun in testRuns)
            {
                var status = testRun["status"].ToString();
                if (!status.Equals("Failed"))
                {
                    Console.WriteLine(testRun["id"]);
                    Console.WriteLine(testRun["status"]);
                }
            }
        }
        private static void CosmosWorkerFallbackLogQuery()
        {
            Console.WriteLine(@"Start querying CosmosWorkerFallbackLog...");
            AzureCosmosDBClient testRunCosmosDBClient = new AzureCosmosDBClient("DataCop", "PartitionedTestRun");
            var    minEndTime  = DateTime.UtcNow.AddDays(-18);
            string queryString = "CosmosWorkerTrace_CL ";

            queryString += @"| where TagId_g == '1fb4b131-1a3d-45ce-920a-2ddb97291c82' or TagId_g == '1fb4b131-1a3d-45ce-920a-2ddb97291c82'";
            queryString += @"| where TimeGenerated > ago(15d)";
            queryString += @"| project Message";
            var queryResult  = datacopLogProvider.GetQueryresult(queryString);
            var messageJsons = JArray.Parse(JsonConvert.SerializeObject(queryResult));

            Console.WriteLine("Output testRun messages: ");
            Dictionary <string, JObject> datasetDict = new Dictionary <string, JObject>();

            foreach (var messageJson in messageJsons)
            {
                var message   = messageJson["Message"].ToString();
                int start     = message.IndexOf("testRun '") + 9;
                int end       = message.IndexOf("'", start);
                var testRunId = message.Substring(start, end - start);
                //Console.WriteLine(testRunId);
                var testRunQuery = $"SELECT * FROM c WHERE c.id = '{testRunId}'";
                var testRuns     = testRunCosmosDBClient.GetAllDocumentsInQueryAsync <JObject>(testRunQuery).Result;
                var status       = testRuns[0]["status"].ToString();
                Console.WriteLine(testRunId);
                Console.WriteLine(testRuns[0]["testContentType"].ToString());
                Console.WriteLine(status);
            }
        }
        private static void CosmosViewWorkerFallbackLogQuery()
        {
            Console.WriteLine(@"Start querying CosmosViewWorkerFallbackLog...");
            AzureCosmosDBClient testRunCosmosDBClient = new AzureCosmosDBClient("DataCop", "PartitionedTestRun");
            var    minEndTime  = DateTime.UtcNow.AddDays(-18);
            string queryString = "CosmosWorkerTrace_CL ";

            queryString += @"| where TagId_g == 'a83c16b8-c7c1-4676-b6b0-2dd8b4ca2a14' ";
            queryString += @"| where Message endswith 'Success\'.' ";
            queryString += @"| where TimeGenerated > ago(1d) ";
            queryString += @"| project TestRunId_g";
            var queryResult    = datacopLogProvider.GetQueryresult(queryString);
            var testRunIdJsons = JArray.Parse(JsonConvert.SerializeObject(queryResult));

            Console.WriteLine("Output testRun messages: ");
            Dictionary <string, JObject> datasetDict = new Dictionary <string, JObject>();

            foreach (var testRunIdJson in testRunIdJsons)
            {
                JObject fallbackTestRunJson = new JObject();
                var     testRunId           = testRunIdJson["TestRunId_g"].ToString();
                fallbackTestRunJson["testRunId"] = testRunId;
                Console.WriteLine(testRunId);
                var messageQueryString = @"CosmosWorkerTrace_CL" +
                                         @"| where TagId_g == 'e21c2015-72c2-4ff2-84b6-31b1aa441f14'" +
                                         $"| where TestRunId_g == '{testRunId}'" +
                                         @"| project Message";
                var    messageQueryResult = datacopLogProvider.GetQueryresult(messageQueryString);
                var    messageJsons       = JArray.Parse(JsonConvert.SerializeObject(messageQueryResult));
                JArray messages           = new JArray();
                foreach (var messageJson in messageJsons)
                {
                    messages.Add(messageJson["Message"]);
                }
                fallbackTestRunJson["messages"] = messages;

                var testRunQuery = $"SELECT * FROM c WHERE c.id = '{testRunId}'";
                var testRuns     = testRunCosmosDBClient.GetAllDocumentsInQueryAsync <JObject>(testRunQuery).Result;
                var datasetId    = testRuns[0]["datasetId"].ToString();
                if (!datasetDict.ContainsKey(datasetId))
                {
                    datasetDict.Add(datasetId, new JObject());
                    var succeedTestRunQuery = $"SELECT c.id FROM c WHERE c.datasetId = '{datasetId}' and c.endTime > '{minEndTime:o}' order by c.createTime desc";
                    var succeedTestRuns     = testRunCosmosDBClient.GetAllDocumentsInQueryAsync <JObject>(succeedTestRunQuery).Result;
                    datasetDict[datasetId]["succeedTestRunIds"] = JArray.FromObject(succeedTestRuns.Select(s => s["id"].ToString()));
                    datasetDict[datasetId]["fallbackTestRuns"]  = new JArray();
                }

                ((JArray)datasetDict[datasetId]["fallbackTestRuns"]).Add(fallbackTestRunJson);
                //jObject["datasetId"] = datasetId;
            }

            JArray result = new JArray();

            foreach (var datasetPair in datasetDict)
            {
                var jObject      = new JObject();
                var datasetId    = datasetPair.Key;
                var testRunsInfo = datasetPair.Value;

                var fallbackTestRuns  = (JArray)testRunsInfo["fallbackTestRuns"];
                var succeedTestRunIds = testRunsInfo["succeedTestRunIds"];
                jObject["datasetId"]               = datasetId;
                jObject["succeedTestRunIds"]       = succeedTestRunIds;
                jObject["fallbackTestRunIds"]      = new JArray();
                jObject["fallbackTestRunMessages"] = new JArray();
                foreach (var fallbackTestRun in fallbackTestRuns)
                {
                    ((JArray)jObject["fallbackTestRunIds"]).Add(fallbackTestRun["testRunId"]);
                    foreach (var message in (JArray)fallbackTestRun["messages"])
                    {
                        ((JArray)jObject["fallbackTestRunMessages"]).Add(message);
                    }
                }

                result.Add(jObject);
            }
            File.WriteAllText(@"D:\data\company_work\M365\IDEAs\datacop\cosmosworker\fallback.json", result.ToString());
        }