示例#1
0
        private async Task WarmupBackend(string cm, string id, string user, string password, WarmupConfig config)
        {
            var authenticatedClient = new SitecoreLoginService(Log).GetSitecoreClient(cm, id, user, password);

            foreach (var entry in config.sitecore)
            {
                await LoadUrl(cm, entry.url, authenticatedClient);
            }
        }
示例#2
0
        public static async Task <List <SitecoreJobStatus> > Run()
        {
            try
            {
                var cm                  = Environment.GetEnvironmentVariable("HOST_CM");
                var user                = Environment.GetEnvironmentVariable("ADMIN_USER_NAME");
                var password            = Environment.GetEnvironmentVariable("ADMIN_PASSWORD");
                var id                  = Environment.GetEnvironmentVariable("HOST_ID");
                var authenticatedClient = new SitecoreLoginService(Log).GetSitecoreClient(cm, id, user, password);
                var status              = await authenticatedClient.DownloadStringTaskAsync($"{cm}/sitecore/admin/jobs.aspx?refresh=5");

                var jobsPage = new HtmlAgilityPack.HtmlDocument();
                jobsPage.LoadHtml(status);
                var statusTableNode = jobsPage.DocumentNode.SelectNodes("//*[@id=\"Form1\"]/div[3]/table[1]")
                                      .FirstOrDefault();

                Log.LogInformation($"{DateTime.UtcNow} Job status:");
                var results   = new List <SitecoreJobStatus>();
                var titleNode = statusTableNode?.PreviousSibling?.PreviousSibling?.PreviousSibling;
                if (titleNode?.InnerText == "Running jobs:")
                {
                    foreach (HtmlNode row in statusTableNode.SelectNodes("tr"))
                    {
                        HtmlNodeCollection cells = row.SelectNodes("td");
                        var jobStatus            = new SitecoreJobStatus()
                        {
                            Title    = GetJobName(cells[2].InnerText),
                            Added    = cells[1].InnerText,
                            Progress = cells[3].InnerText
                        };
                        results.Add(jobStatus);
                        Log.LogInformation($"{jobStatus.Title} {jobStatus.Added} - {jobStatus.Progress}");
                    }
                }

                return(results);
            }
            catch (Exception ex)
            {
                Log.LogError("Failed to retrieve running jobs. ", ex);
                return(new List <SitecoreJobStatus>());
            }
        }