public static void RenewalInProgress(RenewalParameters renewalParams) { if (!TelemetryHelper.TelemetryInitialized) { return; } if (renewalParams == null) { TelemetryHelper.TrackInternalError(new ArgumentNullException(nameof(renewalParams))); return; } foreach (var host in renewalParams.Hosts) // normalize events so only one per host is fired { TelemetryHelper.Client.TrackEvent( "CertRenewal", new Dictionary <string, string> { { "subscriptionId", renewalParams.SubscriptionId.ToString() }, { "tenantId", renewalParams.TenantId }, { "resourceGroup", renewalParams.ResourceGroup }, { "webApp", renewalParams.WebApp }, { "host", host }, { "email", TelemetryHelper.Hash(renewalParams.Email) }, { "clientId", renewalParams.ClientId.ToString() }, { "useIpBasedSsl", renewalParams.UseIpBasedSsl.ToString() }, { "acmeBaseUri", renewalParams.AcmeBaseUri == null ? "[DEFAULT]" : renewalParams.AcmeBaseUri.ToString() }, }, new Dictionary <string, double> { { "rsaKeyLength", renewalParams.RsaKeyLength }, }); } }
public async Task NotifyAsync(RenewalParameters renewalParams) { if (renewalParams == null) { throw new ArgumentNullException(nameof(renewalParams)); } if (m_apiKey == null) { Trace.TraceWarning( "E-mail notification for web app {0} skipped because the '{1}' connection string was not set", renewalParams.WebApp, Constants.SendGridApiKey); return; } var message = MailHelper.CreateSingleEmail( new EmailAddress("*****@*****.**", "Azure Web App Let's Encrypt Renewer"), new EmailAddress(renewalParams.Email), "SSL Certificate renewal complete for web app: " + renewalParams.WebApp, "Renewal parameters:" + Environment.NewLine + renewalParams, null); Trace.TraceInformation("Sending e-mail notification for {0}... ", renewalParams.WebApp); await new SendGridClient(m_apiKey).SendEmailAsync(message); Trace.TraceInformation("Finished sending e-mail notification for: {0}", renewalParams.WebApp); }
public RenewalParameters Read(string[] args) { if (args == null) { throw new ArgumentNullException(nameof(args)); } ParserResult <Options> parserResult; using (var parser = new Parser()) { parserResult = parser.ParseArguments <Options>(args); } if (parserResult.Tag != ParserResultType.Parsed) { throw new ArgumentParsingException("Could not parse command-line arguments", GetUsage(parserResult)); } var parsed = ((Parsed <Options>)parserResult).Value; RenewalParameters renewalParameters; try { renewalParameters = new RenewalParameters( parsed.SubscriptionId, parsed.TenantId, parsed.ResourceGroup, parsed.WebApp, parsed.Hosts, parsed.Email, parsed.ClientId, parsed.ClientSecret, parsed.ServicePlanResourceGroup, groupName: null, parsed.SiteSlotName, parsed.OtherWebAppResourceGroup, parsed.OtherWebApp, parsed.OtherSlotName, parsed.StorageConnectionString, parsed.StorageContainer, parsed.UseIpBasedSsl, parsed.RsaKeyLength, parsed.AcmeBaseUri, parsed.RenewXNumberOfDaysBeforeExpiration, parsed.AzureAuthenticationEndpoint, parsed.AzureTokenAudience, parsed.AzureManagementEndpoint, parsed.AzureDefaultWebsiteDomainName); } catch (ArgumentException e) { throw new ArgumentValidationException(e); } return(renewalParameters); }
public Task NotifyAsync(RenewalParameters renewalParams) { if (renewalParams == null) { throw new ArgumentNullException(nameof(renewalParams)); } return(NotifyAsyncCore(renewalParams)); }
private async Task NotifyAsyncCore(RenewalParameters renewalParams) { if (m_apiKey == null) { Trace.TraceWarning( "E-mail notification for web app {0} skipped because the '{1}' connection string was not set", renewalParams.WebApp, Constants.SendGridApiKey); return; } var message = MailHelper.CreateSingleEmail( new EmailAddress(renewalParams.FromEmail, name: $"Azure Web App Let's Encrypt Renewer"), new EmailAddress(renewalParams.ToEmail), "SSL Certificate renewal complete for web app: " + renewalParams.WebApp, "Renewal parameters:" + Environment.NewLine + renewalParams, null); Trace.TraceInformation("Sending e-mail notification for {0}... ", renewalParams.WebApp); await new SendGridClient(m_apiKey).SendEmailAsync(message).ConfigureAwait(false); Trace.TraceInformation("Finished sending e-mail notification for: {0}", renewalParams.WebApp); }
public Task Renew(RenewalParameters renewalParams) { m_renewalParams.Enqueue(renewalParams); return(Task.CompletedTask); }