/// <summary> /// Executes the cmdlet. /// </summary> public override void ExecuteCmdlet() { string resourceUri = string.Empty; string recommendationId = string.Empty; WriteVerbose(Resources.SuppressionRemove); AzureOperationResponse <IPage <SuppressionContract> > suppressionList = null; // This i used for the recommendation call, to collect supression ID data associated. // AzureOperationResponse<IPage<ResourceRecommendationBase>> recommendationList = null; IList <PsAzureAdvisorResourceRecommendationBase> responseRecommendationList = new List <PsAzureAdvisorResourceRecommendationBase>(); List <PsAzureAdvisorResourceRecommendationBase> responseRecommendation = new List <PsAzureAdvisorResourceRecommendationBase>(); AzureOperationResponse <ResourceRecommendationBase> recommendation = null; IEnumerable <PsAzureAdvisorSuppressionContract> psSuppressionContractList = null; var response = new List <AzureOperationResponse>(); switch (this.ParameterSetName) { case IdParameterSet: resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(this.ResourceId); recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.ResourceId); if (ShouldProcess(recommendationId, string.Format(Resources.EnableRecommendationWarningMessage, this.RecommendationName))) { responseRecommendation.AddRange(this.SuppressionDelete(resourceUri, recommendationId)); } break; case NameParameterSet: recommendation = this.ResourceAdvisorClient.Recommendations.GetWithHttpMessagesAsync("subscriptions/" + this.ResourceAdvisorClient.SubscriptionId, this.RecommendationName).Result; resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(recommendation.Body.Id); suppressionList = this.ResourceAdvisorClient.Suppressions.ListWithHttpMessagesAsync().Result; psSuppressionContractList = PsAzureAdvisorSuppressionContract.FromSuppressionContractList(suppressionList.Body.AsEnumerable()); if (ShouldProcess(this.RecommendationName, string.Format(Resources.EnableRecommendationWarningMessage, this.RecommendationName))) { responseRecommendation.AddRange(this.SuppressionDelete(resourceUri, this.RecommendationName)); } break; case InputObjectParameterSet: // Parse out the Subscription-ID, Recommendation-ID from the ResourceId parameter. resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(this.InputObject.Id); recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.InputObject.Id); if (ShouldProcess(recommendationId, string.Format(Resources.EnableRecommendationWarningMessage, recommendationId))) { responseRecommendation.AddRange(this.SuppressionDelete(resourceUri, recommendationId)); } break; } this.WriteObject(responseRecommendation, true); }
/// <summary> /// Executes the cmdlet. /// </summary> public override void ExecuteCmdlet() { string resourceUri = string.Empty; string recommendationId = string.Empty; SuppressionContract suppressionContract = null; WriteVerbose(Resources.SuppressionCreate); // This list contains all the response for the azure-operation List <AzureOperationResponse <SuppressionContract> > azureOperationResponseSuppression = new List <AzureOperationResponse <SuppressionContract> >(); var returnSuppressionContract = new List <PsAzureAdvisorSuppressionContract>(); // Create the suppression contract suppressionContract = new SuppressionContract(null, DefaultSuppressionName, null, null, this.Days == 0 ? string.Empty : this.Days.ToString()); switch (this.ParameterSetName) { case IdParameterSet: // parse out the Subscription-ID, Recommendation-ID form the ResourceId parameter. resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(this.ResourceId); recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.ResourceId); if (ShouldProcess(recommendationId, string.Format(Resources.DisableRecommendationWarningMessage, recommendationId))) { azureOperationResponseSuppression.Add(this.ResourceAdvisorClient.Suppressions.CreateWithHttpMessagesAsync(resourceUri, recommendationId, DefaultSuppressionName, suppressionContract).Result); } break; case NameParameterSet: AzureOperationResponse <ResourceRecommendationBase> recommendation = this.ResourceAdvisorClient.Recommendations.GetWithHttpMessagesAsync("subscriptions/" + this.ResourceAdvisorClient.SubscriptionId, this.RecommendationName).Result; resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(recommendation.Body.Id); // Make a get recommendation for this Name and get the ID if (ShouldProcess(this.RecommendationName, string.Format(Resources.DisableRecommendationWarningMessage, this.RecommendationName))) { azureOperationResponseSuppression.Add(this.ResourceAdvisorClient.Suppressions.CreateWithHttpMessagesAsync(resourceUri, this.RecommendationName, DefaultSuppressionName, suppressionContract).Result); } break; case InputObjectParameterSet: // Parse out the Subscription-ID, Recommendation-ID from the ResourceId parameter. resourceUri = RecommendationHelper.GetFullResourceUriFromResourceID(this.InputObject.ResourceId); recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.InputObject.ResourceId); if (ShouldProcess(recommendationId, string.Format(Resources.DisableRecommendationWarningMessage, recommendationId))) { azureOperationResponseSuppression.Add(this.ResourceAdvisorClient.Suppressions.CreateWithHttpMessagesAsync(resourceUri, recommendationId, DefaultSuppressionName, suppressionContract).Result); } break; } // Get the supresssion details from the suppression Get API, the response does not have the data for the suppression-name, resourceid. if (azureOperationResponseSuppression.Count > 0) { AzureOperationResponse <IPage <SuppressionContract> > suppressionList = this.ResourceAdvisorClient.Suppressions.ListWithHttpMessagesAsync().Result; IEnumerable <PsAzureAdvisorSuppressionContract> psSuppressionContractList = PsAzureAdvisorSuppressionContract.FromSuppressionContractList(suppressionList.Body.AsEnumerable()); foreach (AzureOperationResponse <SuppressionContract> azureOperationResponse in azureOperationResponseSuppression) { foreach (PsAzureAdvisorSuppressionContract contractItem in psSuppressionContractList) { // Match the supression-ID if (azureOperationResponse.Body.SuppressionId == contractItem.SuppressionId) { returnSuppressionContract.Add(contractItem); } } } } this.WriteObject(returnSuppressionContract, true); }