@@ -573,7 +573,7 @@ def _get_database_identity(
573573def _failover_group_update_common (
574574 instance ,
575575 failover_policy = None ,
576- grace_period = None , ):
576+ grace_period = None ):
577577 '''
578578 Updates the failover group grace period and failover policy. Common logic for both Sterling and Managed Instance
579579 '''
@@ -642,6 +642,11 @@ class FailoverPolicyType(Enum):
642642 manual = 'Manual'
643643
644644
645+ class FailoverReadOnlyEndpointPolicy (Enum ):
646+ enabled = 'Enabled'
647+ disabled = 'Disabled'
648+
649+
645650class FailoverGroupDatabasesSecondaryType (Enum ):
646651 geo = 'Geo'
647652 standby = 'Standby'
@@ -6509,7 +6514,10 @@ def failover_group_create(
65096514 partner_resource_group = None ,
65106515 failover_policy = FailoverPolicyType .manual .value ,
65116516 grace_period = 1 ,
6512- add_db = None ):
6517+ add_db = None ,
6518+ partner_server_ids = None ,
6519+ ro_failover_policy = FailoverReadOnlyEndpointPolicy .disabled .value ,
6520+ ro_endpoint_target = None ):
65136521 '''
65146522 Creates a failover group.
65156523 '''
@@ -6542,14 +6550,24 @@ def failover_group_create(
65426550 add_db ,
65436551 [])
65446552
6553+ if partner_server_ids is not None :
6554+ print (partner_server_ids )
6555+ partner_servers = [PartnerInfo (id = p ) for p in partner_server_ids ]
6556+ else :
6557+ partner_servers = [partner_server ]
6558+
6559+ if ro_endpoint_target is None :
6560+ ro_endpoint_target = partner_server_id
6561+
65456562 failover_group_params = FailoverGroup (
6546- partner_servers = [ partner_server ] ,
6563+ partner_servers = partner_servers ,
65476564 databases = databases ,
65486565 read_write_endpoint = FailoverGroupReadWriteEndpoint (
65496566 failover_policy = failover_policy ,
65506567 failover_with_data_loss_grace_period_minutes = grace_period ),
65516568 read_only_endpoint = FailoverGroupReadOnlyEndpoint (
6552- failover_policy = "Disabled" )
6569+ failover_policy = ro_failover_policy ,
6570+ target_server = ro_endpoint_target )
65536571 )
65546572
65556573 if secondary_type is not None :
@@ -6571,7 +6589,10 @@ def failover_group_update(
65716589 failover_policy = None ,
65726590 grace_period = None ,
65736591 add_db = None ,
6574- remove_db = None ):
6592+ remove_db = None ,
6593+ ro_endpoint_target = None ,
6594+ ro_failover_policy = None ,
6595+ partner_server_ids = None ):
65756596 '''
65766597 Updates the failover group.
65776598 '''
@@ -6599,6 +6620,13 @@ def failover_group_update(
65996620 if secondary_type is not None :
66006621 instance .secondary_type = secondary_type
66016622
6623+ if partner_server_ids is not None :
6624+ instance .partner_servers = [PartnerInfo (id = p ) for p in partner_server_ids ]
6625+
6626+ instance .read_only_endpoint = FailoverGroupReadOnlyEndpoint (
6627+ failover_policy = ro_failover_policy if ro_failover_policy is not None else instance .read_only_endpoint .failover_policy ,
6628+ target_server = ro_endpoint_target if ro_endpoint_target is not None else instance .read_only_endpoint .target_server )
6629+
66026630 return instance
66036631
66046632
0 commit comments