/// <summary> /// Filters the deployments at subscription scope. /// </summary> /// <param name="options">The filtering options</param> /// <returns>The filtered list of deployments</returns> public virtual List <PSDeployment> FilterDeploymentsAtSubscriptionScope(FilterDeploymentOptions options) { List <PSDeployment> deployments = new List <PSDeployment>(); string name = options.DeploymentName; List <string> excludedProvisioningStates = options.ExcludedProvisioningStates ?? new List <string>(); if (!string.IsNullOrEmpty(name)) { deployments.Add(ResourceManagementClient.Deployments.GetAtSubscriptionScope(name).ToPSDeployment()); } else { var result = ResourceManagementClient.Deployments.ListAtSubscriptionScope(); deployments.AddRange(result.Select(d => d.ToPSDeployment())); while (!string.IsNullOrEmpty(result.NextPageLink)) { result = ResourceManagementClient.Deployments.ListAtSubscriptionScopeNext(result.NextPageLink); deployments.AddRange(result.Select(d => d.ToPSDeployment())); } } if (excludedProvisioningStates.Count > 0) { return(deployments.Where(d => excludedProvisioningStates .All(s => !s.Equals(d.ProvisioningState, StringComparison.OrdinalIgnoreCase))).ToList()); } else { return(deployments); } }
/// <summary> /// Cancels the active deployment. /// </summary> /// <param name="deploymentName">Deployment name</param> public virtual void CancelDeploymentAtSubscriptionScope(string deploymentName) { if (string.IsNullOrEmpty(deploymentName)) { throw new ArgumentException(string.Format(ProjectResources.NoDeploymentToCancel, deploymentName)); } FilterDeploymentOptions options = new FilterDeploymentOptions { DeploymentName = deploymentName, ExcludedProvisioningStates = new List <string> { ProvisioningState.Failed.ToString(), ProvisioningState.Succeeded.ToString() } }; List <PSDeployment> deployments = this.FilterDeploymentsAtSubscriptionScope(options); if (deployments.Count == 0) { throw new ArgumentException(string.Format(ProjectResources.NoRunningDeploymentsAtSubscriptionScope, deploymentName)); } else { ResourceManagementClient.Deployments.CancelAtSubscriptionScope(deployments.First().DeploymentName); } }
protected override void OnProcessRecord() { ConfirmAction( ProjectResources.DeleteDeploymentMessage, Name, () => { var options = new FilterDeploymentOptions(DeploymentScopeType.ManagementGroup) { ManagementGroupId = !string.IsNullOrEmpty(this.ManagementGroupId) ? this.ManagementGroupId : !string.IsNullOrEmpty(this.Id) ? ResourceIdUtility.GetManagementGroupId(this.Id) : this.InputObject.ManagementGroupId, DeploymentName = !string.IsNullOrEmpty(this.Name) ? this.Name : !string.IsNullOrEmpty(this.Id) ? ResourceIdUtility.GetDeploymentName(this.Id) : this.InputObject.DeploymentName }; this.ResourceManagerSdkClient.DeleteDeploymentAtManagementGroup(options.ManagementGroupId, options.DeploymentName); if (this.PassThru.IsPresent) { WriteObject(true); } }); }
public void GetSepcificResourcesGroupDeployment() { FilterDeploymentOptions options = new FilterDeploymentOptions() { DeploymentName = deploymentName, ResourceGroupName = resourceGroupName }; FilterDeploymentOptions actual = new FilterDeploymentOptions(); List <PSResourceGroupDeployment> result = new List <PSResourceGroupDeployment>(); PSResourceGroupDeployment expected = new PSResourceGroupDeployment() { DeploymentName = deploymentName, CorrelationId = "123", ResourceGroupName = resourceGroupName, Mode = DeploymentMode.Incremental }; result.Add(expected); resourcesClientMock.Setup(f => f.FilterResourceGroupDeployments(It.IsAny <FilterDeploymentOptions>())) .Returns(result) .Callback((FilterDeploymentOptions o) => { actual = o; }); cmdlet.ResourceGroupName = resourceGroupName; cmdlet.Name = deploymentName; cmdlet.ExecuteCmdlet(); commandRuntimeMock.Verify(f => f.WriteObject(result, true), Times.Once()); Assert.Equal(options.DeploymentName, actual.DeploymentName); Assert.Equal(options.ExcludedProvisioningStates, actual.ExcludedProvisioningStates); Assert.Equal(options.ProvisioningStates, actual.ProvisioningStates); Assert.Equal(options.ResourceGroupName, actual.ResourceGroupName); }
/// <summary> /// Executes the cmdlet. /// </summary> protected override void OnProcessRecord() { base.OnProcessRecord(); var options = new FilterDeploymentOptions(DeploymentScopeType.Tenant) { DeploymentName = !string.IsNullOrEmpty(this.DeploymentName) ? this.DeploymentName : this.DeploymentObject.DeploymentName }; if (ShouldProcess(options.DeploymentName, VerbsData.Save)) { var template = ResourceManagerSdkClient.GetDeploymentTemplateAtTenantScope(options.DeploymentName); string path = FileUtility.SaveTemplateFile( templateName: options.DeploymentName, contents: template, outputPath: string.IsNullOrEmpty(this.Path) ? System.IO.Path.Combine(CurrentPath(), options.DeploymentName) : this.TryResolvePath(this.Path), overwrite: this.Force, shouldContinue: ShouldContinue); WriteObject(new PSTemplatePath() { Path = path }); } }
public override void ExecuteCmdlet() { FilterDeploymentOptions options = new FilterDeploymentOptions() { DeploymentName = Name ?? (string.IsNullOrEmpty(Id) ? null : ResourceIdUtility.GetResourceName(Id)) }; WriteObject(ResourceManagerSdkClient.FilterDeploymentsAtSubscriptionScope(options), true); }
protected override void OnProcessRecord() { FilterDeploymentOptions options = new FilterDeploymentOptions(DeploymentScopeType.Subscription) { DeploymentName = this.Name ?? (string.IsNullOrEmpty(this.Id) ? null : ResourceIdUtility.GetResourceName(this.Id)) }; WriteObject(ResourceManagerSdkClient.FilterDeployments(options), true); }
public override void ExecuteCmdlet() { FilterDeploymentOptions options = new FilterDeploymentOptions(DeploymentScopeType.Tenant) { DeploymentName = this.Name ?? (string.IsNullOrEmpty(this.Id) ? null : ResourceIdUtility.GetDeploymentName(this.Id)) }; WriteObject(ResourceManagerSdkClient.FilterDeployments(options), true); }
public override void ExecuteCmdlet() { FilterDeploymentOptions options = new FilterDeploymentOptions(DeploymentScopeType.ResourceGroup) { ResourceGroupName = ResourceGroupName ?? ResourceIdUtility.GetResourceGroupName(Id), DeploymentName = Name ?? (string.IsNullOrEmpty(Id) ? null : ResourceIdUtility.GetResourceName(Id)) }; WriteObject(ResourceManagerSdkClient.FilterResourceGroupDeployments(options), true); }
public override void ExecuteCmdlet() { var options = new FilterDeploymentOptions(DeploymentScopeType.Tenant) { DeploymentName = !string.IsNullOrEmpty(this.DeploymentName) ? this.DeploymentName : this.DeploymentObject.DeploymentName }; var deploymentOperations = ResourceManagerSdkClient.ListDeploymentOperationsAtTenantScope( options.DeploymentName, this.OperationId); WriteObject(deploymentOperations, true); }
protected override void OnProcessRecord() { var options = new FilterDeploymentOptions(DeploymentScopeType.ManagementGroup) { ManagementGroupId = !string.IsNullOrEmpty(this.ManagementGroupId) ? this.ManagementGroupId : this.DeploymentObject.ManagementGroupId, DeploymentName = !string.IsNullOrEmpty(this.DeploymentName) ? this.DeploymentName : this.DeploymentObject.DeploymentName }; var deploymentOperations = ResourceManagerSdkClient.ListDeploymentOperationsAtManagementGroup( options.ManagementGroupId, options.DeploymentName, this.OperationId); WriteObject(deploymentOperations, true); }
public override void ExecuteCmdlet() { var options = new FilterDeploymentOptions(DeploymentScopeType.ResourceGroup) { ResourceGroupName = !string.IsNullOrEmpty(this.ResourceGroupName) ? this.ResourceGroupName : ResourceIdUtility.GetResourceGroupName(Id), DeploymentName = !string.IsNullOrEmpty(this.Name) ? this.Name : ResourceIdUtility.GetResourceName(Id) }; ConfirmAction( ProjectResources.CancelDeploymentMessage, ResourceGroupName, () => ResourceManagerSdkClient.CancelDeployment(options)); WriteObject(true); }
public override void ExecuteCmdlet() { var options = new FilterDeploymentOptions(DeploymentScopeType.Subscription) { DeploymentName = !string.IsNullOrEmpty(this.Name) ? this.Name : !string.IsNullOrEmpty(this.Id) ? ResourceIdUtility.GetResourceName(this.Id) : this.InputObject.DeploymentName }; ConfirmAction( ProjectResources.CancelDeploymentMessage, this.Name, () => ResourceManagerSdkClient.CancelDeployment(options)); if (this.PassThru.IsPresent) { WriteObject(true); } }
protected override void OnProcessRecord() { var options = new FilterDeploymentOptions(DeploymentScopeType.Tenant) { DeploymentName = !string.IsNullOrEmpty(this.Name) ? this.Name : !string.IsNullOrEmpty(this.Id) ? ResourceIdUtility.GetDeploymentName(this.Id) : this.InputObject.DeploymentName }; ConfirmAction( ProjectResources.CancelDeploymentMessage, this.Name, () => ResourceManagerSdkClient.CancelDeployment(options)); if (this.PassThru.IsPresent) { WriteObject(true); } }
/// <summary> /// Cancels the active deployment. /// </summary> /// <param name="resourceGroup">The resource group name</param> /// <param name="deploymentName">Deployment name</param> public virtual void CancelDeployment(string resourceGroup, string deploymentName) { FilterDeploymentOptions options = new FilterDeploymentOptions { DeploymentName = deploymentName, ResourceGroupName = resourceGroup }; if (string.IsNullOrEmpty(deploymentName)) { options.ExcludedProvisioningStates = new List <string> { ProvisioningState.Failed.ToString(), ProvisioningState.Succeeded.ToString() }; } List <PSResourceGroupDeployment> deployments = FilterResourceGroupDeployments(options); if (deployments.Count == 0) { if (string.IsNullOrEmpty(deploymentName)) { throw new ArgumentException(string.Format(ProjectResources.NoDeploymentToCancel, deploymentName)); } else { throw new ArgumentException(string.Format(ProjectResources.NoRunningDeployments, resourceGroup)); } } else if (deployments.Count == 1) { ResourceManagementClient.Deployments.Cancel(resourceGroup, deployments.First().DeploymentName); } else { throw new ArgumentException(ProjectResources.MultipleRunningDeployment); } }
public override void ExecuteCmdlet() { ConfirmAction( ProjectResources.DeleteDeploymentMessage, Name, () => { var options = new FilterDeploymentOptions(DeploymentScopeType.Tenant) { DeploymentName = !string.IsNullOrEmpty(this.Name) ? this.Name : !string.IsNullOrEmpty(this.Id) ? ResourceIdUtility.GetDeploymentName(this.Id) : this.InputObject.DeploymentName }; this.ResourceManagerSdkClient.DeleteDeploymentAtTenantScope(options.DeploymentName); if (this.PassThru.IsPresent) { WriteObject(true); } }); }