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); } }
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>()); } }