/// <summary> /// Gets the list of configurations associated with the current subscription in scope. /// </summary> /// <param name="advisorClient">Advisor Client</param> /// <returns>List of PsAzureAdvisorResourceRecommendationBase</returns> public List <PsAzureAdvisorConfigurationData> GetAllConfiguratioFromClient(IAdvisorManagementClient advisorClient) { AzureOperationResponse <IPage <ConfigData> > configurationOperationResponse = null; List <ConfigData> entirePageLinkRecommendationData = new List <ConfigData>(); string nextPageLink = string.Empty; do { if (string.IsNullOrEmpty(nextPageLink)) { configurationOperationResponse = advisorClient.Configurations.ListBySubscriptionWithHttpMessagesAsync().Result; } else { configurationOperationResponse = advisorClient.Configurations.ListBySubscriptionNextWithHttpMessagesAsync(nextPageLink).Result; } nextPageLink = configurationOperationResponse.Body.NextPageLink; // Add current page items to the List entirePageLinkRecommendationData.AddRange(configurationOperationResponse.Body.ToList()); }while (!string.IsNullOrEmpty(nextPageLink)); // Convert to PsAzureAdvisorResourceRecommendationBase list and return return(PsAzureAdvisorConfigurationData.GetFromConfigurationData(entirePageLinkRecommendationData)); }
/// <summary> /// Checks if the given psConfigData is of subscription level configuration. /// </summary> /// <param name="psConfigData">PsAzureAdvisorConfigurationData to be checked.</param> /// <returns> if subscription level configuration, else false.</returns> public static bool IsConfigurationSubscriptionLevel(PsAzureAdvisorConfigurationData psConfigData) { bool isConfigurationSubscriptionLevel = false; string subscriptionId = GetSubscriptionIdFromSubscriptionLevelConfig(psConfigData.Id); isConfigurationSubscriptionLevel = string.IsNullOrEmpty(subscriptionId) ? false : true; return(isConfigurationSubscriptionLevel); }
/// <summary> /// Checks if the given psConfigData is of resource-group level configuration. /// </summary> /// <param name="psConfigData">PsAzureAdvisorConfigurationData to be checked.</param> /// <returns>True if resource-group level configuration, else false.</returns> public static bool IsConfigurationResourceGroupLevel(PsAzureAdvisorConfigurationData psConfigData) { bool isConfigurationResourceGroupLevel = false; string resourceGroupName = RecommendationHelper.GetResourceGroupFromResourceID(psConfigData.Id); isConfigurationResourceGroupLevel = string.IsNullOrEmpty(resourceGroupName) ? false : true; return(isConfigurationResourceGroupLevel); }
/// <summary> /// Get the PsAzureAdvisorConfigurationData for the current subscription. /// </summary> /// <returns>A PsAzureAdvisorConfigurationData</returns> private PsAzureAdvisorConfigurationData GetConfigurationDataForCurrentSubscription() { PsAzureAdvisorConfigurationData returnConfigurationData = null; AzureOperationResponse <IPage <ConfigData> > azureOperationResponse = this.ResourceAdvisorClient.Configurations.ListBySubscriptionWithHttpMessagesAsync().Result; foreach (ConfigData entry in azureOperationResponse.Body) { if (entry.Name.Equals(this.ResourceAdvisorClient.SubscriptionId)) { returnConfigurationData = PsAzureAdvisorConfigurationData.GetFromConfigurationData(entry); } } return(returnConfigurationData); }
/// <summary> /// Get the PsAzureAdvisorConfigurationData for the given resource-group. /// </summary> /// <param name="resourceGroupName">Resource group name</param> /// <returns>A PsAzureAdvisorConfigurationData</returns> private PsAzureAdvisorConfigurationData GetConfigurationDataForResourceGroup(string resourceGroupName) { PsAzureAdvisorConfigurationData returnConfigurationData = null; AzureOperationResponse <IEnumerable <ConfigData> > azureOperationResponse = this.ResourceAdvisorClient.Configurations.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName).Result; foreach (ConfigData entry in azureOperationResponse.Body) { if (entry.Id.Contains("-" + resourceGroupName)) { // We will have only one configruation for the given RG name returnConfigurationData = PsAzureAdvisorConfigurationData.GetFromConfigurationData(entry); } } return(returnConfigurationData); }
/// <summary> /// Get the PsAzureAdvisorConfigurationData for the current subscription. /// </summary> /// <returns>A PsAzureAdvisorConfigurationData</returns> private PsAzureAdvisorConfigurationData GetConfigurationDataForCurrentSubscription() { PsAzureAdvisorConfigurationData returnConfigurationData = null; ConfigurationResource configResourceClient = new ConfigurationResource(); List <PsAzureAdvisorConfigurationData> psConfigDataList = configResourceClient.GetAllConfiguratioFromClient(this.ResourceAdvisorClient); foreach (PsAzureAdvisorConfigurationData entry in psConfigDataList) { if (entry.Name.Equals(this.ResourceAdvisorClient.SubscriptionId)) { returnConfigurationData = entry; } } return(returnConfigurationData); }
/// <summary> /// Sets the configuration of the current subscription with the given user configuration. /// </summary> /// <param name="configData">Configuration Properties</param> /// <returns>List of PsAzureAdvisorConfigurationData</returns> public List <PsAzureAdvisorConfigurationData> CreateConfigurationBySubscription(ConfigData configData) { List <PsAzureAdvisorConfigurationData> results = new List <PsAzureAdvisorConfigurationData>(); AzureOperationResponse <ARMErrorResponseBody> response = null; AzureOperationResponse <IPage <ConfigData> > azureOperationResponseBySubscription = null; response = this.ResourceAdvisorClient.Configurations.CreateInSubscriptionWithHttpMessagesAsync(configData).Result; azureOperationResponseBySubscription = this.ResourceAdvisorClient.Configurations.ListBySubscriptionWithHttpMessagesAsync().Result; foreach (ConfigData entry in azureOperationResponseBySubscription.Body) { if (entry.Name.Equals(this.ResourceAdvisorClient.SubscriptionId)) { results.Add(PsAzureAdvisorConfigurationData.GetFromConfigurationData(entry)); } } return(results); }
/// <summary> /// Sets the configuration of the current subscription with the given user configuration. /// </summary> /// <param name="configData">Configuration Properties</param> /// <param name="resourceGroupName">Name of the resourceGroup</param> /// <returns>List of PsAzureAdvisorConfigurationData</returns> public List <PsAzureAdvisorConfigurationData> CreateConfigurationByResourceGroup(ConfigData configData, string resourceGroupName) { List <PsAzureAdvisorConfigurationData> results = new List <PsAzureAdvisorConfigurationData>(); AzureOperationResponse <ARMErrorResponseBody> response = null; AzureOperationResponse <IEnumerable <ConfigData> > azureOperationResponse = null; response = this.ResourceAdvisorClient.Configurations.CreateInResourceGroupWithHttpMessagesAsync(configData, resourceGroupName).Result; azureOperationResponse = this.ResourceAdvisorClient.Configurations.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName).Result; foreach (ConfigData entry in azureOperationResponse.Body) { if (entry.Id.Contains("-" + resourceGroupName)) { results.Add(PsAzureAdvisorConfigurationData.GetFromConfigurationData(entry)); } } return(results); }
/// <summary> /// Executes the cmdlet. /// </summary> public override void ExecuteCmdlet() { IEnumerable <ConfigData> responseData = null; List <PsAzureAdvisorConfigurationData> returnPsConfigData = new List <PsAzureAdvisorConfigurationData>(); if (string.IsNullOrEmpty(this.ResourceGroupName)) { responseData = this.ResourceAdvisorClient.Configurations.ListBySubscriptionWithHttpMessagesAsync().Result.Body.AsEnumerable(); } else { responseData = this.ResourceAdvisorClient.Configurations.ListByResourceGroupWithHttpMessagesAsync(this.ResourceGroupName).Result.Body; } // Parse the response data from the API to PS object foreach (ConfigData configData in responseData) { returnPsConfigData.Add(PsAzureAdvisorConfigurationData.GetFromConfigurationData(configData)); } this.WriteObject(returnPsConfigData, true); }