public async Task <Response <RecommendedElasticPool> > GetAsync(string resourceGroupName, string serverName, string recommendedElasticPoolName, CancellationToken cancellationToken = default)
        {
            if (resourceGroupName == null)
            {
                throw new ArgumentNullException(nameof(resourceGroupName));
            }
            if (serverName == null)
            {
                throw new ArgumentNullException(nameof(serverName));
            }
            if (recommendedElasticPoolName == null)
            {
                throw new ArgumentNullException(nameof(recommendedElasticPoolName));
            }

            using var message = CreateGetRequest(resourceGroupName, serverName, recommendedElasticPoolName);
            await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false);

            switch (message.Response.Status)
            {
            case 200:
            {
                RecommendedElasticPool value = default;
                using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false);

                value = RecommendedElasticPool.DeserializeRecommendedElasticPool(document.RootElement);
                return(Response.FromValue(value, message.Response));
            }
Example #2
0
 /// <summary>
 /// Validate recommended elastic pool properties
 /// </summary>
 /// <param name="recommendedElasticPool">Recommended elastic pool object</param>
 /// <param name="name">Name</param>
 /// <param name="type">Type</param>
 /// <param name="edition">Edition</param>
 /// <param name="dtu">Dtu</param>
 /// <param name="databaseDtuMin">Dtu min</param>
 /// <param name="databaseDtuMax">Dtu max</param>
 /// <param name="storageMB">Storage MB</param>
 /// <param name="observationPeriodStart">Observation start</param>
 /// <param name="observationPeriodEnd">Observation end</param>
 /// <param name="maxObservedDtu">Max observed Dtu</param>
 /// <param name="maxObservedStorageMB">Max observed storage MB</param>
 private void ValidateRecommendedElasticPool(RecommendedElasticPool recommendedElasticPool, string name, string type, string edition, float dtu, float databaseDtuMin, float databaseDtuMax, float storageMB, DateTime observationPeriodStart, DateTime observationPeriodEnd, float maxObservedDtu, float maxObservedStorageMB)
 {
     Assert.Equal(recommendedElasticPool.Name, name);
     Assert.Equal(recommendedElasticPool.Type, type);
     Assert.Equal(recommendedElasticPool.Properties.DatabaseEdition, edition);
     Assert.Equal(recommendedElasticPool.Properties.Dtu, dtu, 2);
     Assert.Equal(recommendedElasticPool.Properties.DatabaseDtuMin, databaseDtuMin, 2);
     Assert.Equal(recommendedElasticPool.Properties.DatabaseDtuMax, databaseDtuMax, 2);
     Assert.Equal(recommendedElasticPool.Properties.StorageMB, storageMB, 2);
     Assert.Equal(recommendedElasticPool.Properties.ObservationPeriodStart, observationPeriodStart);
     Assert.Equal(recommendedElasticPool.Properties.ObservationPeriodEnd, observationPeriodEnd);
     Assert.Equal(recommendedElasticPool.Properties.MaxObservedDtu, maxObservedDtu, 2);
     Assert.Equal(recommendedElasticPool.Properties.MaxObservedStorageMB, maxObservedStorageMB, 2);
 }
Example #3
0
        /// <summary>
        /// Converts the response from the service to a powershell database object
        /// </summary>
        /// <param name="pool">The service response</param>
        /// <returns>The converted model</returns>
        private UpgradeRecommendedElasticPoolProperties CreateRecommendedElasticPoolPropertiesFromResponse(RecommendedElasticPool pool)
        {
            var model = new UpgradeRecommendedElasticPoolProperties();

            model.DatabaseCollection = pool.Properties.Databases.Select(database => database.Name).ToList();
            model.DatabaseDtuMax     = (int)pool.Properties.DatabaseDtuMax;
            model.DatabaseDtuMin     = (int)pool.Properties.DatabaseDtuMin;
            model.Dtu                 = (int)pool.Properties.Dtu;
            model.Edition             = pool.Properties.DatabaseEdition;
            model.IncludeAllDatabases = false;
            model.Name                = pool.Name;
            return(model);
        }