/// <summary> /// Converts the response from the service to a powershell DatabaseCopy object /// </summary> /// <param name="copyResourceGroupName">The copy's resource group name</param> /// <param name="copyServerName">The copy's Azure SQL Server name</param> /// <param name="copyDatabaseName">The copy's database 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="elasticPoolName">The copy's target elastic pool</param> /// <param name="serviceLevelObjective">The copy's nondefault service level objective</param> /// <param name="response">The database create response</param> /// <returns>A powershell DatabaseCopy object</returns> private AzureSqlDatabaseCopyModel CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(string copyResourceGroupName, string copyServerName, string copyDatabaseName, string resourceGroupName, string serverName, string databaseName, Management.Sql.Models.DatabaseCreateOrUpdateResponse response) { // the response does not contain the majority of the information we wish to expose to the user, so most of the data is passed from the inputs. AzureSqlDatabaseCopyModel model = new AzureSqlDatabaseCopyModel(); model.CopyResourceGroupName = copyResourceGroupName; model.CopyServerName = copyServerName; model.CopyDatabaseName = response.Database.Name; model.ResourceGroupName = resourceGroupName; model.ServerName = serverName; model.DatabaseName = databaseName; model.Location = GetServerLocation(resourceGroupName, serverName); model.CopyLocation = response.Database.Location; model.CreationDate = response.Database.Properties.CreationDate; return model; }
/// <summary> /// Creates an Azure SQL Database Copy /// </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, Util.GenerateTracingId(), 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.Models.DatabaseCreateMode.Copy, ElasticPoolName = model.ElasticPoolName, RequestedServiceObjectiveName = model.ServiceObjectiveName, } }); return CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(model.CopyResourceGroupName, model.CopyServerName, model.CopyDatabaseName, model.ResourceGroupName, model.ServerName, model.DatabaseName, resp); }