Ejemplo n.º 1
0
        /// <summary>
        /// Construct AzureSqlDatabaseModel from Management.Sql.Models.Database object
        /// </summary>
        /// <param name="resourceGroup">Resource group</param>
        /// <param name="serverName">Server name</param>
        /// <param name="database">Database object</param>
        public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database)
        {
            Guid            id      = Guid.Empty;
            DatabaseEdition edition = DatabaseEdition.None;

            ResourceGroupName           = resourceGroup;
            ServerName                  = serverName;
            CollationName               = database.Properties.Collation;
            CreationDate                = database.Properties.CreationDate;
            CurrentServiceObjectiveName = database.Properties.ServiceObjective;
            MaxSizeBytes                = database.Properties.MaxSizeBytes;
            DatabaseName                = database.Name;
            Status              = database.Properties.Status;
            Tags                = database.Tags as Dictionary <string, string>;
            ElasticPoolName     = database.Properties.ElasticPoolName;
            Location            = database.Location;
            ResourceId          = database.Id;
            CreateMode          = database.Properties.CreateMode;
            EarliestRestoreDate = database.Properties.EarliestRestoreDate;

            Guid.TryParse(database.Properties.CurrentServiceObjectiveId, out id);
            CurrentServiceObjectiveId = id;

            Guid.TryParse(database.Properties.DatabaseId, out id);
            DatabaseId = id;

            Enum.TryParse <DatabaseEdition>(database.Properties.Edition, true, out edition);
            Edition = edition;

            Guid.TryParse(database.Properties.RequestedServiceObjectiveId, out id);
            RequestedServiceObjectiveId = id;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Construct AzureSqlDatabaseModel from Management.Sql.LegacySdk.Models.Database object
        /// </summary>
        /// <param name="resourceGroup">Resource group</param>
        /// <param name="serverName">Server name</param>
        /// <param name="database">Database object</param>
        public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database)
        {
            DatabaseEdition   edition   = DatabaseEdition.None;
            DatabaseReadScale readScale = DatabaseReadScale.Enabled;

            ResourceGroupName           = resourceGroup;
            ServerName                  = serverName;
            CollationName               = database.Collation;
            CreationDate                = database.CreationDate.Value;
            CurrentServiceObjectiveName = database.ServiceLevelObjective;
            MaxSizeBytes                = long.Parse(database.MaxSizeBytes);
            DatabaseName                = database.Name;
            Status              = database.Status;
            Tags                = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false);
            ElasticPoolName     = database.ElasticPoolName;
            Location            = database.Location;
            ResourceId          = database.Id;
            CreateMode          = database.CreateMode;
            EarliestRestoreDate = database.EarliestRestoreDate;

            CurrentServiceObjectiveId = database.CurrentServiceObjectiveId.Value;

            DatabaseId = database.DatabaseId.Value;

            Enum.TryParse <DatabaseEdition>(database.Edition, true, out edition);
            Edition = edition;

            RequestedServiceObjectiveId = database.RequestedServiceObjectiveId.Value;

            Enum.TryParse <DatabaseReadScale>(database.ReadScale.ToString(), true, out readScale);
            ReadScale = readScale;
        }
        /// <summary>
        /// Restore a given Sql Azure Database
        /// </summary>
        /// <param name="resourceGroup">The name of the resource group</param>
        /// <param name="restorePointInTime">A point to time to restore to (for PITR and dropped DB restore)</param>
        /// <param name="resourceId">The resource ID of the DB to restore (live, geo backup, deleted database, long term retention backup, etc.)</param>
        /// <param name="model">An object modeling the database to create via restore</param>
        /// <returns>Restored database object</returns>
        internal AzureSqlDatabaseModel RestoreDatabase(string resourceGroup, DateTime restorePointInTime, string resourceId, AzureSqlDatabaseModel model)
        {
            if (model.CreateMode.Equals("RestoreLongTermRetentionBackup", StringComparison.OrdinalIgnoreCase) && CultureInfo.CurrentCulture.CompareInfo.IndexOf(resourceId, "/providers/Microsoft.Sql", CompareOptions.IgnoreCase) >= 0)
            {
                // LongTermRetentionV2 Restore
                //
                Management.Sql.Models.Database database = Communicator.RestoreDatabase(resourceGroup, model.ServerName, model.DatabaseName, resourceId, model);

                return(new AzureSqlDatabaseModel(resourceGroup, model.ServerName, database));
            }
            else
            {
                DatabaseCreateOrUpdateParameters parameters = new DatabaseCreateOrUpdateParameters()
                {
                    Location   = model.Location,
                    Properties = new DatabaseCreateOrUpdateProperties()
                    {
                        Edition = model.Edition == DatabaseEdition.None ? null : model.Edition.ToString(),
                        RequestedServiceObjectiveId             = model.RequestedServiceObjectiveId,
                        ElasticPoolName                         = model.ElasticPoolName,
                        RequestedServiceObjectiveName           = model.RequestedServiceObjectiveName,
                        SourceDatabaseId                        = resourceId,
                        RecoveryServicesRecoveryPointResourceId = resourceId,
                        RestorePointInTime                      = restorePointInTime,
                        CreateMode = model.CreateMode
                    }
                };
                var resp = Communicator.LegacyRestoreDatabase(resourceGroup, model.ServerName, model.DatabaseName, parameters);
                return(AzureSqlDatabaseAdapter.CreateDatabaseModelFromResponse(resourceGroup, model.ServerName, resp));
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Creates UpgradeDatabaseHint from database object by using same edition and SLO from upgrade hint.
 /// </summary>
 /// <param name="database">Database object</param>
 /// <returns>Returns UpgradeDatabaseHint</returns>
 private RecommendedDatabaseProperties CreateUpgradeDatabaseHint(Management.Sql.Models.Database database)
 {
     return(new RecommendedDatabaseProperties()
     {
         Name = database.Name,
         TargetEdition = SloToEdition(database.Properties.UpgradeHint.TargetServiceLevelObjective),
         TargetServiceLevelObjective = database.Properties.UpgradeHint.TargetServiceLevelObjective
     });
 }
        /// <summary>
        /// Restore a given Sql Azure Database
        /// </summary>
        /// <param name="resourceGroup">The name of the resource group</param>
        /// <param name="restorePointInTime">A point to time to restore to (for PITR and dropped DB restore)</param>
        /// <param name="resourceId">The resource ID of the DB to restore (live, geo backup, deleted database, long term retention backup, etc.)</param>
        /// <param name="model">An object modeling the database to create via restore</param>
        /// <returns>Restored database object</returns>
        internal AzureSqlDatabaseModel RestoreDatabase(string resourceGroup, DateTime restorePointInTime, string resourceId, AzureSqlDatabaseModel model)
        {
            // Construct the ARM resource Id of the pool
            string elasticPoolId = string.IsNullOrWhiteSpace(model.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant(
                _subscription.Id,
                resourceGroup,
                model.ServerName,
                model.ElasticPoolName);

            // Restore database
            var dbModel = new Management.Sql.Models.Database()
            {
                Location           = model.Location,
                CreateMode         = model.CreateMode,
                RestorePointInTime = restorePointInTime,
                ElasticPoolId      = elasticPoolId,
                Sku = string.IsNullOrWhiteSpace(model.SkuName) ? null : new Management.Sql.Models.Sku()
                {
                    Name     = model.SkuName,
                    Tier     = model.Edition,
                    Family   = model.Family,
                    Capacity = model.Capacity
                },
                LicenseType = model.LicenseType
            };

            if (model.CreateMode.Equals(Management.Sql.Models.CreateMode.Recovery))
            {
                dbModel.SourceDatabaseId                = resourceId;
                dbModel.RecoverableDatabaseId           = resourceId;
                dbModel.RecoveryServicesRecoveryPointId = resourceId;
            }
            else if (model.CreateMode.Equals(Management.Sql.Models.CreateMode.Restore))
            {
                dbModel.RestorableDroppedDatabaseId     = resourceId;
                dbModel.RecoveryServicesRecoveryPointId = resourceId;
            }
            else if (model.CreateMode.Equals(Management.Sql.Models.CreateMode.RestoreLongTermRetentionBackup) && resourceId.Contains("/providers/Microsoft.Sql"))
            {
                // LTR V2
                dbModel.LongTermRetentionBackupResourceId = resourceId;
                dbModel.SourceDatabaseId = resourceId;
            }
            else
            {
                dbModel.SourceDatabaseId = resourceId;
                dbModel.RecoveryServicesRecoveryPointId = resourceId;
            }

            Management.Sql.Models.Database database = Communicator.RestoreDatabase(resourceGroup, model.ServerName, model.DatabaseName, dbModel);

            return(new AzureSqlDatabaseModel(resourceGroup, model.ServerName, database));
        }
        /// <summary>
        /// Restore a given Sql Azure Database
        /// </summary>
        /// <param name="resourceGroup">The name of the resource group</param>
        /// <param name="restorePointInTime">A point to time to restore to (for PITR and dropped DB restore)</param>
        /// <param name="resourceId">The resource ID of the DB to restore (live, geo backup, deleted database, long term retention backup, etc.)</param>
        /// <param name="model">An object modeling the database to create via restore</param>
        /// <returns>Restored database object</returns>
        internal AzureSqlDatabaseModel RestoreDatabase(string resourceGroup, DateTime restorePointInTime, string resourceId, AzureSqlDatabaseModel model)
        {
            // Construct the ARM resource Id of the pool
            string elasticPoolId = string.IsNullOrWhiteSpace(model.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant(
                _subscription.Id,
                resourceGroup,
                model.ServerName,
                model.ElasticPoolName);

            // Restore database
            var dbModel = new Management.Sql.Models.Database()
            {
                Location           = model.Location,
                CreateMode         = model.CreateMode,
                RestorePointInTime = restorePointInTime,
                ElasticPoolId      = elasticPoolId,
                Sku = string.IsNullOrWhiteSpace(model.SkuName) ? null : new Management.Sql.Models.Sku()
                {
                    Name     = model.SkuName,
                    Tier     = model.Edition,
                    Family   = model.Family,
                    Capacity = model.Capacity
                },
                LicenseType = model.LicenseType,
                RequestedBackupStorageRedundancy = model.RequestedBackupStorageRedundancy,
                ZoneRedundant = model.ZoneRedundant,
            };

            if (model.CreateMode == Management.Sql.Models.CreateMode.Recovery)
            {
                dbModel.RecoverableDatabaseId = resourceId;
            }
            else if (model.CreateMode == Management.Sql.Models.CreateMode.Restore)
            {
                dbModel.RestorableDroppedDatabaseId = resourceId;
            }
            else if (model.CreateMode == Management.Sql.Models.CreateMode.PointInTimeRestore)
            {
                dbModel.SourceDatabaseId = resourceId;
            }
            else if (model.CreateMode == Management.Sql.Models.CreateMode.RestoreLongTermRetentionBackup)
            {
                dbModel.LongTermRetentionBackupResourceId = resourceId;
            }
            else
            {
                throw new ArgumentException("Restore mode not supported");
            }

            Management.Sql.Models.Database database = Communicator.RestoreDatabase(resourceGroup, model.ServerName, model.DatabaseName, dbModel);

            return(new AzureSqlDatabaseModel(resourceGroup, model.ServerName, database));
        }
Ejemplo n.º 7
0
 private bool IsDatabaseInServiceTierForPolicy(DatabaseAuditingPolicyModel model, string clientId)
 {
     AzureSqlDatabaseCommunicator dbCommunicator = new AzureSqlDatabaseCommunicator(Context);
     Management.Sql.Models.Database database = dbCommunicator.Get(model.ResourceGroupName, model.ServerName, model.DatabaseName, clientId);
     DatabaseEdition edition = DatabaseEdition.None;
     Enum.TryParse<DatabaseEdition>(database.Properties.Edition, true, out edition);
     if (edition == DatabaseEdition.Basic || edition == DatabaseEdition.Standard || edition == DatabaseEdition.Premium || edition == DatabaseEdition.DataWarehouse)
     {
         return true;
     }
     return false;
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Construct AzureSqlDatabaseModel from Management.Sql.Database object
        /// </summary>
        /// <param name="resourceGroup">Resource group</param>
        /// <param name="serverName">Server name</param>
        /// <param name="database">Database object</param>
        public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database)
        {
            ResourceGroupName = resourceGroup;
            ServerName        = serverName;
            CollationName     = database.Collation;
            CreationDate      = database.CreationDate.Value;
            MaxSizeBytes      = (long)database.MaxSizeBytes;
            DatabaseName      = database.Name;
            Status            = database.Status;
            Tags                = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false);
            ElasticPoolName     = database.ElasticPoolName;
            Location            = database.Location;
            ResourceId          = database.Id;
            CreateMode          = database.CreateMode;
            EarliestRestoreDate = database.EarliestRestoreDate;

            CurrentServiceObjectiveName = database.CurrentServiceObjectiveName;

            DatabaseId = database.DatabaseId.Value;

            Edition = database.Edition;

            RequestedServiceObjectiveName = database.RequestedServiceObjectiveName;

            DatabaseReadScale readScale;

            if (Enum.TryParse <DatabaseReadScale>(database.ReadScale.ToString(), true, out readScale))
            {
                ReadScale = readScale;
            }

            ZoneRedundant = database.ZoneRedundant;

            Capacity = database.Sku == null ? (int?)null : database.Sku.Capacity;

            Family = database.Sku == null ? null : database.Sku.Family;

            SkuName = database.Sku == null ? null : database.Sku.Name;

            LicenseType = database.LicenseType;

            AutoPauseDelayInMinutes          = database.AutoPauseDelay;
            MinimumCapacity                  = database.MinCapacity;
            HighAvailabilityReplicaCount     = database.HighAvailabilityReplicaCount;
            CurrentBackupStorageRedundancy   = database.CurrentBackupStorageRedundancy;
            RequestedBackupStorageRedundancy = database.RequestedBackupStorageRedundancy;
            SecondaryType = database.SecondaryType;
            MaintenanceConfigurationId = database.MaintenanceConfigurationId;
            EnableLedger = database.IsLedgerOn;
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Construct AzureSqlDatabaseModel from Management.Sql.Database object
        /// </summary>
        /// <param name="resourceGroup">Resource group</param>
        /// <param name="serverName">Server name</param>
        /// <param name="database">Database object</param>
        public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database)
        {
            DatabaseReadScale readScale = DatabaseReadScale.Enabled;

            ResourceGroupName = resourceGroup;
            ServerName        = serverName;
            CollationName     = database.Collation;
            CreationDate      = database.CreationDate.Value;
            MaxSizeBytes      = (long)database.MaxSizeBytes;
            DatabaseName      = database.Name;
            Status            = database.Status;
            Tags                = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false);
            ElasticPoolName     = database.ElasticPoolName;
            Location            = database.Location;
            ResourceId          = database.Id;
            CreateMode          = database.CreateMode;
            EarliestRestoreDate = database.EarliestRestoreDate;

            CurrentServiceObjectiveName = database.CurrentServiceObjectiveName;

            DatabaseId = database.DatabaseId.Value;

            Edition = database.Edition;

            RequestedServiceObjectiveName = database.RequestedServiceObjectiveName;

            Enum.TryParse <DatabaseReadScale>(database.ReadScale.ToString(), true, out readScale);
            ReadScale = readScale;

            ZoneRedundant = database.ZoneRedundant;

            Capacity = database.Sku == null ? (int?)null : database.Sku.Capacity;

            Family = database.Sku == null ? null : database.Sku.Family;

            SkuName = database.Sku == null ? null : database.Sku.Name;

            LicenseType = database.LicenseType;
        }
 /// <summary>
 /// Converts the response from the service to a powershell database object
 /// </summary>
 /// <param name="resourceGroup">The resource group the server is in</param>
 /// <param name="serverName">The name of the Azure Sql Database Server</param>
 /// <param name="database">The service response</param>
 /// <returns>The converted model</returns>
 public static AzureSqlDatabaseModel CreateDatabaseModelFromResponse(string resourceGroup, string serverName, Management.Sql.Models.Database database)
 {
     return(new AzureSqlDatabaseModel(resourceGroup, serverName, database));
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Restore a given Sql Azure Database
 /// </summary>
 /// <param name="resourceGroup">The name of the resource group</param>
 /// <param name="serverName">The name of the Azure SQL Server</param>
 /// <param name="databaseName">The name of the Azure SQL database</param>
 /// <param name="model">Sql Database Model with required parameters</param>
 /// <returns>Restored database object</returns>
 public Management.Sql.Models.Database RestoreDatabase(string resourceGroupName, string serverName, string databaseName, Management.Sql.Models.Database model)
 {
     return(GetCurrentSqlClient().Databases.CreateOrUpdate(resourceGroupName, serverName, databaseName, model));
 }
        /// <summary>
        /// Converts the response from the service to a powershell DatabaseCopy object
        /// </summary>
        /// <param name="copyResourceGroup">The copy's resource group name</param>
        /// <param name="copyServerName">The copy's Azure SQL Server name</param>
        /// <param name="resourceGroupName">The source's resource group name</param>
        /// <param name="serverName">The source's Azure SQL Server name</param>
        /// <param name="databaseName">The source database name</param>
        /// <param name="response">The database create response</param>
        /// <returns>A powershell DatabaseCopy object</returns>
        private AzureSqlDatabaseCopyModel CreateDatabaseCopyModelFromResponse(string copyResourceGroup, string copyServerName, string resourceGroupName,
                                                                              string serverName, string databaseName, Management.Sql.Models.Database database)
        {
            AzureSqlDatabaseCopyModel model = new AzureSqlDatabaseCopyModel();

            model.CopyResourceGroupName = copyResourceGroup;
            model.CopyServerName        = copyServerName;
            model.CopyDatabaseName      = database.Name;
            model.ResourceGroupName     = resourceGroupName;
            model.ServerName            = serverName;
            model.DatabaseName          = databaseName;
            model.Location     = GetServerLocation(resourceGroupName, serverName);
            model.CopyLocation = database.Location;
            model.CreationDate = database.CreationDate.Value;
            model.LicenseType  = database.LicenseType;

            return(model);
        }
        /// <summary>
        /// Restore a given Sql Azure Database
        /// </summary>
        /// <param name="resourceGroup">The name of the resource group</param>
        /// <param name="restorePointInTime">A point to time to restore to (for PITR and dropped DB restore)</param>
        /// <param name="resourceId">The resource ID of the DB to restore (live, geo backup, deleted database, long term retention backup, etc.)</param>
        /// <param name="model">An object modeling the database to create via restore</param>
        /// <param name="isCrossSubscriptionRestore">Is cross subscription restore</param>
        /// <param name="customHeaders">Custom headers</param>
        /// <returns>Restored database object</returns>
        internal AzureSqlDatabaseModel RestoreDatabase(string resourceGroup, DateTime restorePointInTime, string resourceId, AzureSqlDatabaseModel model, bool isCrossSubscriptionRestore, Dictionary <string, List <string> > customHeaders = null)
        {
            // Construct the ARM resource Id of the pool
            string elasticPoolId = string.IsNullOrWhiteSpace(model.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant(
                _subscription.Id,
                resourceGroup,
                model.ServerName,
                model.ElasticPoolName);

            // Restore database
            var dbModel = new Management.Sql.Models.Database()
            {
                Location           = model.Location,
                CreateMode         = model.CreateMode,
                RestorePointInTime = restorePointInTime,
                ElasticPoolId      = elasticPoolId,
                Sku = string.IsNullOrWhiteSpace(model.SkuName) ? null : new Management.Sql.Models.Sku()
                {
                    Name     = model.SkuName,
                    Tier     = model.Edition,
                    Family   = model.Family,
                    Capacity = model.Capacity
                },
                LicenseType = model.LicenseType,
                RequestedBackupStorageRedundancy = model.RequestedBackupStorageRedundancy,
                ZoneRedundant = model.ZoneRedundant,
            };

            // check if restore operation is cross subscription or same subscription
            if (isCrossSubscriptionRestore)
            {
                // cross subscription path
                if (dbModel.CreateMode != Management.Sql.Models.CreateMode.Recovery &&
                    dbModel.CreateMode != Management.Sql.Models.CreateMode.Restore &&
                    dbModel.CreateMode != Management.Sql.Models.CreateMode.PointInTimeRestore)
                {
                    throw new ArgumentException("Restore mode not supported for cross subscription restore. Supported restore modes for cross subscription are Recovery, Restore, PointInTimeRestore.");
                }

                dbModel.SourceResourceId = resourceId;
            }
            else
            {
                // same subscription path
                if (model.CreateMode == Management.Sql.Models.CreateMode.Recovery)
                {
                    dbModel.RecoverableDatabaseId = resourceId;
                }
                else if (model.CreateMode == Management.Sql.Models.CreateMode.Restore)
                {
                    dbModel.RestorableDroppedDatabaseId = resourceId;
                }
                else if (model.CreateMode == Management.Sql.Models.CreateMode.PointInTimeRestore)
                {
                    dbModel.SourceDatabaseId = resourceId;
                }
                else if (model.CreateMode == Management.Sql.Models.CreateMode.RestoreLongTermRetentionBackup)
                {
                    dbModel.LongTermRetentionBackupResourceId = resourceId;
                }
                else
                {
                    throw new ArgumentException("Restore mode not supported");
                }
            }

            Management.Sql.Models.Database database = Communicator.RestoreDatabase(resourceGroup, model.ServerName, model.DatabaseName, dbModel, customHeaders);

            return(new AzureSqlDatabaseModel(resourceGroup, model.ServerName, database));
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Construct AzureSqlDatabaseModelExpanded from Management.Sql.Models.Database object
 /// </summary>
 /// <param name="resourceGroup">Resource group</param>
 /// <param name="serverName">Server name</param>
 /// <param name="database">Database object</param>
 public AzureSqlDatabaseModelExpanded(string resourceGroup, string serverName, Management.Sql.Models.Database database) : base(resourceGroup, serverName, database)
 {
     if (database.Properties.ServiceTierAdvisors != null &&
         database.Properties.ServiceTierAdvisors.Count > 0)
     {
         ServiceTierAdvisor = database.Properties.ServiceTierAdvisors[0].Properties;
     }
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Restore a given Sql Azure Database
 /// </summary>
 /// <param name="resourceGroup">The name of the resource group</param>
 /// <param name="serverName">The name of the Azure SQL Server</param>
 /// <param name="databaseName">The name of the Azure SQL database</param>
 /// <param name="model">Sql Database Model with required parameters</param>
 /// <param name="customHeaders">Custom headers</param>
 /// <returns>Restored database object</returns>
 public Management.Sql.Models.Database RestoreDatabase(string resourceGroupName, string serverName, string databaseName, Management.Sql.Models.Database model, Dictionary <string, List <string> > customHeaders = null)
 {
     if (customHeaders == null)
     {
         // Execute the create call without the custom headers.
         return(GetCurrentSqlClient().Databases.CreateOrUpdate(resourceGroupName, serverName, databaseName, model));
     }
     else
     {
         // Execute the create call and pass the custom headers.
         using (var _result = GetCurrentSqlClient().Databases.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, serverName, databaseName, model, customHeaders).ConfigureAwait(false).GetAwaiter().GetResult())
         {
             return(_result.Body);
         }
     }
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Creates a copy of a Azure SQL Database with new Autorest SDK
 /// </summary>
 public Management.Sql.Models.Database CreateCopy(string resourceGroupName, string serverName, string databaseName, Management.Sql.Models.Database parameters)
 {
     return(GetCurrentSqlClient().Databases.CreateOrUpdate(resourceGroupName, serverName, databaseName, parameters));
 }
Ejemplo n.º 17
0
        /// <summary>
        /// Converts the response from the service to a powershell DatabaseCopy object
        /// </summary>
        /// <param name="copyResourceGroup">The copy's resource group name</param>
        /// <param name="copyServerName">The copy's Azure SQL Server name</param>
        /// <param name="resourceGroupName">The source's resource group name</param>
        /// <param name="serverName">The source's Azure SQL Server name</param>
        /// <param name="databaseName">The source database name</param>
        /// <param name="response">The database create response</param>
        /// <returns>A powershell DatabaseCopy object</returns>
        private AzureSqlDatabaseCopyModel CreateDatabaseCopyModelFromResponse(string copyResourceGroup, string copyServerName, string resourceGroupName,
                                                                              string serverName, string databaseName, Management.Sql.Models.Database database)
        {
            AzureSqlDatabaseCopyModel model = new AzureSqlDatabaseCopyModel();

            model.CopyResourceGroupName = copyResourceGroup;
            model.CopyServerName        = copyServerName;
            model.CopyDatabaseName      = database.Name;
            model.ResourceGroupName     = resourceGroupName;
            model.ServerName            = serverName;
            model.DatabaseName          = databaseName;
            model.Location                = GetServerLocation(resourceGroupName, serverName);
            model.CopyLocation            = database.Location;
            model.CreationDate            = database.CreationDate.Value;
            model.LicenseType             = database.LicenseType;
            model.BackupStorageRedundancy = MapInternalBackupStorageRedundancyToExternal(database.StorageAccountType);

            return(model);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Converts the response from the service to a powershell database object
        /// </summary>
        /// <param name="resourceGroupName">The resource group the server is in</param>
        /// <param name="serverName">The name of the Azure Sql Database Server</param>
        /// <param name="database">The service response</param>
        /// <returns>The converted model</returns>
        public static AzureSqlDatabaseModel CreateDatabaseModelFromResponse(string resourceGroup, string serverName, Management.Sql.Models.Database database)
        {
            AzureSqlDatabaseModel model = new AzureSqlDatabaseModel();
            Guid            id          = Guid.Empty;
            DatabaseEdition edition     = DatabaseEdition.None;

            model.ResourceGroupName = resourceGroup;
            model.ServerName        = serverName;
            model.CollationName     = database.Properties.Collation;
            model.CreationDate      = database.Properties.CreationDate;
            model.CurrentServiceLevelObjectiveName = database.Properties.ServiceObjective;
            model.MaxSizeBytes    = database.Properties.MaxSizeBytes;
            model.DatabaseName    = database.Name;
            model.Status          = database.Properties.Status;
            model.Tags            = database.Tags as Dictionary <string, string>;
            model.ElasticPoolName = database.Properties.ElasticPoolName;
            model.Location        = database.Location;

            Guid.TryParse(database.Properties.CurrentServiceObjectiveId, out id);
            model.CurrentServiceObjectiveId = id;

            Guid.TryParse(database.Properties.DatabaseId, out id);
            model.DatabaseId = id;

            Enum.TryParse <DatabaseEdition>(database.Properties.Edition, true, out edition);
            model.Edition = edition;

            Guid.TryParse(database.Properties.RequestedServiceObjectiveId, out id);
            model.RequestedServiceObjectiveId = id;

            return(model);
        }