Example #1
0
        public async Task <List <ActionResult> > Execute(DeploymentTaskExecutionParams execParams)
        {
            var managedCert = ManagedCertificate.GetManagedCertificate(execParams.Subject);

            try
            {
                var webhookConfig = new Shared.Utils.Webhook.WebhookConfig
                {
                    Url         = execParams.Settings.Parameters.FirstOrDefault(p => p.Key == "url")?.Value,
                    Method      = execParams.Settings.Parameters.FirstOrDefault(p => p.Key == "method")?.Value,
                    ContentType = execParams.Settings.Parameters.FirstOrDefault(p => p.Key == "contenttype")?.Value,
                    ContentBody = execParams.Settings.Parameters.FirstOrDefault(p => p.Key == "contentbody")?.Value
                };

                if (!execParams.IsPreviewOnly)
                {
                    var webHookResult = await Certify.Shared.Utils.Webhook.SendRequest(webhookConfig, managedCert, managedCert.LastRenewalStatus != RequestState.Error);

                    var msg = $"Webhook invoked: Url: {webhookConfig.Url}, Success: {webHookResult.Success}, StatusCode: {webHookResult.StatusCode}";

                    execParams.Log.Information(msg);

                    return(new List <ActionResult> {
                        new ActionResult(msg, true)
                    });
                }
                else
                {
                    return(await Validate(execParams));
                }
            }
            catch (Exception exp)
            {
                return(new List <ActionResult> {
                    new ActionResult("Webhook call failed: " + exp.ToString(), false)
                });
            }
        }
Example #2
0
        public async Task <List <ActionResult> > Execute(ILog log, object subject, DeploymentTaskConfig settings, Dictionary <string, string> credentials, bool isPreviewOnly, DeploymentProviderDefinition definition)
        {
            var managedCert = ManagedCertificate.GetManagedCertificate(subject);

            try
            {
                var webhookConfig = new Shared.Utils.Webhook.WebhookConfig
                {
                    Url         = settings.Parameters.FirstOrDefault(p => p.Key == "url")?.Value,
                    Method      = settings.Parameters.FirstOrDefault(p => p.Key == "method")?.Value,
                    ContentType = settings.Parameters.FirstOrDefault(p => p.Key == "contenttype")?.Value,
                    ContentBody = settings.Parameters.FirstOrDefault(p => p.Key == "contentbody")?.Value
                };

                if (!isPreviewOnly)
                {
                    var webHookResult = await Certify.Shared.Utils.Webhook.SendRequest(webhookConfig, managedCert, managedCert.LastRenewalStatus != RequestState.Error);

                    var msg = $"Webhook invoked: Url: {webhookConfig.Url}, Success: {webHookResult.Success}, StatusCode: {webHookResult.StatusCode}";

                    log.Information(msg);

                    return(new List <ActionResult> {
                        new ActionResult(msg, true)
                    });
                }
                else
                {
                    return(await Validate(managedCert, settings, credentials, definition));
                }
            }
            catch (Exception exp)
            {
                return(new List <ActionResult> {
                    new ActionResult("Webhook call failed: " + exp.ToString(), false)
                });
            }
        }