예제 #1
0
        /// <summary>
        /// Updates managed instance link
        /// </summary>
        /// <param name="model">The input parameters for the update operation</param>
        /// <returns>The updated Azure Sql Managed Instance Link</returns>
        internal AzureSqlManagedInstanceLinkModel UpdateManagedInstanceLink(AzureSqlManagedInstanceLinkModel model)
        {
            var resp = Communicator.Update(model.ResourceGroupName, model.InstanceName, model.Name, new Management.Sql.Models.DistributedAvailabilityGroup
            {
                ReplicationMode = model.ReplicationMode,
            });

            return(CreateManagedInstanceLinkModelFromResponse(model.ResourceGroupName, model.InstanceName, resp));
        }
예제 #2
0
        /// <summary>
        /// Creates a new managed instance link
        /// </summary>
        /// <param name="model">The input parameters for the create/update operation</param>
        /// <returns>The upserted Azure Sql Managed Instance Link</returns>
        internal AzureSqlManagedInstanceLinkModel CreateManagedInstanceLink(AzureSqlManagedInstanceLinkModel model)
        {
            var resp = Communicator.CreateOrUpdate(model.ResourceGroupName, model.InstanceName, model.Name, new Management.Sql.Models.DistributedAvailabilityGroup
            {
                TargetDatabase = model.TargetDatabase,
                SourceEndpoint = model.SourceEndpoint,
                PrimaryAvailabilityGroupName   = model.PrimaryAvailabilityGroupName,
                SecondaryAvailabilityGroupName = model.SecondaryAvailabilityGroupName,
            });

            return(CreateManagedInstanceLinkModelFromResponse(model.ResourceGroupName, model.InstanceName, resp));
        }
예제 #3
0
        /// <summary>
        /// Convert a Management.Sql.Models.DistributedAvailabilityGroup to AzureSqlManagedInstanceLinkModel
        /// </summary>
        /// <param name="resp">The management client distributed availiability group response to convert</param>
        /// <returns>The converted managed instance link model</returns>
        private static AzureSqlManagedInstanceLinkModel CreateManagedInstanceLinkModelFromResponse(string resourceGroupName, string instanceName, Management.Sql.Models.DistributedAvailabilityGroup managedInstanceLink)
        {
            AzureSqlManagedInstanceLinkModel managedInstanceLinkModel = new AzureSqlManagedInstanceLinkModel()
            {
                ResourceGroupName = resourceGroupName,
                InstanceName      = instanceName,
                Id              = managedInstanceLink.Id,
                Type            = managedInstanceLink.Type,
                Name            = managedInstanceLink.Name,
                TargetDatabase  = managedInstanceLink.TargetDatabase,
                SourceEndpoint  = managedInstanceLink.SourceEndpoint,
                ReplicationMode = managedInstanceLink.ReplicationMode,
                PrimaryAvailabilityGroupName   = managedInstanceLink.PrimaryAvailabilityGroupName,
                SecondaryAvailabilityGroupName = managedInstanceLink.SecondaryAvailabilityGroupName,
                DistributedAvailabilityGroupId = managedInstanceLink.DistributedAvailabilityGroupId,
                SourceReplicaId = managedInstanceLink.SourceReplicaId,
                TargetReplicaId = managedInstanceLink.TargetReplicaId,
                LinkState       = managedInstanceLink.LinkState,
                LastHardenedLsn = managedInstanceLink.LastHardenedLsn,
            };

            return(managedInstanceLinkModel);
        }