Ejemplo n.º 1
0
        /// <summary>
        /// Creates an Azure SQL Database Copy with Legacy SDK (Hyak SDK)
        /// </summary>
        /// <param name="copyResourceGroup">The name of the resource group</param>
        /// <param name="copyServerName">The name of the Azure SQL Server</param>
        /// <param name="model">The input parameters for the create/update operation</param>
        /// <returns>The Azure SQL Database Copy object</returns>
        internal AzureSqlDatabaseCopyModel CopyDatabase(string copyResourceGroup, string copyServerName, AzureSqlDatabaseCopyModel model)
        {
            var resp = ReplicationCommunicator.CreateCopy(copyResourceGroup, copyServerName, model.CopyDatabaseName, new DatabaseCreateOrUpdateParameters()
            {
                Location   = model.CopyLocation,
                Properties = new DatabaseCreateOrUpdateProperties()
                {
                    SourceDatabaseId = string.Format(AzureReplicationLinkModel.SourceIdTemplate, _subscription.Id.ToString(),
                                                     model.ResourceGroupName, model.ServerName, model.DatabaseName),
                    CreateMode      = Management.Sql.LegacySdk.Models.DatabaseCreateMode.Copy,
                    ElasticPoolName = model.ElasticPoolName,
                    RequestedServiceObjectiveName = model.ServiceObjectiveName,
                }
            });

            return(CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(model.CopyResourceGroupName, model.CopyServerName, model.CopyDatabaseName,
                                                                             model.ResourceGroupName, model.ServerName, model.DatabaseName, resp));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates an Azure SQL Database Copy with new AutoRest SDK
        /// </summary>
        /// <param name="copyResourceGroup">The name of the resource group</param>
        /// <param name="copyServerName">The name of the Azure SQL server</param>
        /// <param name="model">The input parameters for the create/update operation</param>
        /// <returns></returns>
        internal AzureSqlDatabaseCopyModel CopyDatabaseWithNewSdk(string copyResourceGroup, string copyServerName, AzureSqlDatabaseCopyModel model)
        {
            // Construct the ARM resource Id of the pool
            string elasticPoolId = string.IsNullOrWhiteSpace(model.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant(
                _subscription.Id,
                copyResourceGroup,
                copyServerName,
                model.ElasticPoolName);

            // Create copy of the database
            var resp = ReplicationCommunicator.CreateCopy(copyResourceGroup, copyServerName, model.CopyDatabaseName, new Management.Sql.Models.Database(model.CopyLocation, tags: model.Tags)
            {
                CreateMode       = Management.Sql.Models.CreateMode.Copy,
                SourceDatabaseId = string.Format(AzureReplicationLinkModel.SourceIdTemplate, _subscription.Id.ToString(),
                                                 model.ResourceGroupName, model.ServerName, model.DatabaseName),
                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
            });

            return(CreateDatabaseCopyModelFromResponse(model.CopyResourceGroupName, model.CopyServerName, model.ResourceGroupName,
                                                       model.ServerName, model.DatabaseName, resp));
        }