public async Task <List <ActionResult> > ValidateDeploymentTask(ManagedCertificate managedCertificate, DeploymentTaskConfig taskConfig) { var credentialsManager = new CredentialsManager(); var provider = DeploymentTaskProviderFactory.Create(taskConfig.TaskTypeId.ToLower(), _pluginManager.DeploymentTaskProviders); Dictionary <string, string> credentials = null; if (!string.IsNullOrEmpty(taskConfig.ChallengeCredentialKey)) { credentials = await credentialsManager.GetUnlockedCredentialsDictionary(taskConfig.ChallengeCredentialKey); } try { var validationResult = await provider.Validate(managedCertificate, taskConfig, credentials, provider.GetDefinition()); return(validationResult); } catch (Exception exp) { return(new List <ActionResult> { new ActionResult("Failed to validate task: " + exp.ToString(), false) }); } }
public async Task <List <ActionResult> > ValidateDeploymentTask(ManagedCertificate managedCertificate, DeploymentTaskConfig taskConfig) { var credentialsManager = new CredentialsManager(); var provider = DeploymentTaskProviderFactory.Create(taskConfig.TaskTypeId.ToLower(), _pluginManager.DeploymentTaskProviders); Dictionary <string, string> credentials = null; if (!string.IsNullOrEmpty(taskConfig.ChallengeCredentialKey)) { credentials = await credentialsManager.GetUnlockedCredentialsDictionary(taskConfig.ChallengeCredentialKey); } return(await provider.Validate(managedCertificate, taskConfig, credentials, provider.GetDefinition())); }
public async Task <List <ActionStep> > PerformDeploymentTask(ILog log, string managedCertificateId, string taskId, bool isPreviewOnly, bool skipDeferredTasks) { var steps = new List <ActionStep>(); var managedCert = await GetManagedCertificate(managedCertificateId); if (managedCert == null) { steps.Add(new ActionStep { HasError = true, Title = "Deployment", Description = "Managed certificate not found. Could not deploy." }); } if (log == null) { log = ManagedCertificateLog.GetLogger(managedCert.Id, _loggingLevelSwitch); } // perform or preview each task var credentialsManager = new CredentialsManager(); var deploymentTasks = new List <DeploymentTask>(); var taskList = managedCert.DeploymentTasks?.Where(t => string.IsNullOrEmpty(taskId) || taskId == t.Id); foreach (var taskConfig in taskList) { // add task to execution list unless the task is deferred and we are currently skipping deferred tasks if (!taskConfig.IsDeferred || (taskConfig.IsDeferred && !skipDeferredTasks)) { try { var provider = DeploymentTaskProviderFactory.Create(taskConfig.TaskTypeId.ToLower(), _pluginManager.DeploymentTaskProviders); Dictionary <string, string> credentials = null; if (!string.IsNullOrEmpty(taskConfig.ChallengeCredentialKey)) { credentials = await credentialsManager.GetUnlockedCredentialsDictionary(taskConfig.ChallengeCredentialKey); } var deploymentTask = new DeploymentTask(provider, taskConfig, credentials); deploymentTasks.Add(deploymentTask); } catch (Exception exp) { steps.Add(new ActionStep { HasError = true, Title = "Deployment Task: " + taskConfig.TaskName, Description = "Cannot create task provider for deployment task: " + exp.ToString() }); } } } foreach (var task in deploymentTasks) { var results = await task.Execute(log, managedCert, isPreviewOnly : isPreviewOnly); foreach (var r in results) { steps.Add(new ActionStep { HasError = !r.IsSuccess, Description = r.Message }); } } return(steps); }