/// <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));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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);
        }