/// <summary> /// Create a sync member /// </summary> /// <param name="model">AzureSqlSyncMemberModel object</param> /// <param name="databaseType">The type of member database</param> /// <param name="password">The password of member database</param> /// <returns>Created AzureSqlSyncGroupModel object</returns> internal AzureSqlSyncMemberModel CreateSyncMember(AzureSqlSyncMemberModel model, string syncAgentId) { Management.Sql.Models.SyncMember properties = new Management.Sql.Models.SyncMember() { SyncDirection = model.SyncDirection, DatabaseType = model.MemberDatabaseType, }; if (properties.DatabaseType == DatabaseTypeEnum.AzureSqlDatabase.ToString()) { properties.DatabaseName = model.MemberDatabaseName; properties.ServerName = model.MemberServerName; properties.UserName = model.MemberDatabaseUserName; properties.Password = model.MemberDatabasePassword == null ? null : AzureSqlServerAdapter.Decrypt(model.MemberDatabasePassword); properties.UsePrivateLinkConnection = model.UsePrivateLinkConnection; properties.SyncMemberAzureDatabaseResourceId = model.SyncMemberAzureDatabaseResourceId; } else { properties.SqlServerDatabaseId = model.SqlServerDatabaseId == null ? null : (Guid?)Guid.Parse(model.SqlServerDatabaseId); properties.SyncAgentId = model.SyncAgentId; } var createResp = Communicator.CreateSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, model.SyncMemberName, syncAgentId, properties); // Workaround for Rest API return response value incorrect issue. Remove this line after backend fix is deployed var resp = Communicator.GetSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, new SyncMemberGeneralParameters() { SyncGroupName = model.SyncGroupName, SyncMemberName = model.SyncMemberName, }); return(CreateSyncMemberModelFromResponse(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, resp)); }
/// <summary> /// Update a sync member /// </summary> /// <param name="model">AzureSqlSyncMemberModel object</param> /// <param name="databaseType">The type of member database</param> /// <param name="password">The password of member database</param> /// <returns>Updated AzureSqlSyncGroupModel object</returns> internal AzureSqlSyncMemberModel UpdateSyncMember(AzureSqlSyncMemberModel model) { Management.Sql.Models.SyncMember properties = new Management.Sql.Models.SyncMember() { DatabaseType = model.MemberDatabaseType, DatabaseName = model.MemberDatabaseName, ServerName = model.MemberServerName, UserName = model.MemberDatabaseUserName, Password = model.MemberDatabasePassword == null ? null : AzureSqlServerAdapter.Decrypt(model.MemberDatabasePassword), UsePrivateLinkConnection = model.UsePrivateLinkConnection, SyncMemberAzureDatabaseResourceId = model.SyncMemberAzureDatabaseResourceId }; var updateResp = Communicator.UpdateSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, model.SyncMemberName, properties); // Workaround for Rest API return response value incorrect issue. Remove this line after backend fix is deployed var resp = Communicator.GetSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, new SyncMemberGeneralParameters() { SyncGroupName = model.SyncGroupName, SyncMemberName = model.SyncMemberName, }); return(CreateSyncMemberModelFromResponse(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, resp)); }
/// <summary> /// Converts the response from the service to a powershell sync member object /// </summary> /// <param name="resourceGroupName">The resource group the sync member is in</param> /// <param name="serverName">The name of the server</param> /// <param name="databaseName">The name of the database</param> /// <param name="syncMember">The sync member object from the response</param> /// <returns>The converted model</returns> public static AzureSqlSyncMemberModel CreateSyncMemberModelFromResponse(string resourceGroupName, string serverName, string databaseName, string syncGroupName, Management.Sql.Models.SyncMember syncMember) { return(new AzureSqlSyncMemberModel(resourceGroupName, serverName, databaseName, syncGroupName, syncMember)); }
/// <summary> /// Update an existing sync member /// </summary> public Management.Sql.Models.SyncMember UpdateSyncMember(string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, Management.Sql.Models.SyncMember parameters) { return(GetCurrentSqlClient().SyncMembers.Update(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters)); }
/// <summary> /// Create a new sync member /// </summary> public Management.Sql.Models.SyncMember CreateSyncMember(string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, string syncAgentId, Management.Sql.Models.SyncMember parameters) { Management.Sql.SqlManagementClient client = GetCurrentSqlClient(); if (syncAgentId != null) { parameters.SyncAgentId = string.Format("/subscriptions/{0}/{1}", Subscription.Id, syncAgentId); } return(client.SyncMembers.CreateOrUpdate(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters)); }