Skip to content

Commit

Permalink
Add support for GLB active-passive failover config (#688)
Browse files Browse the repository at this point in the history
  • Loading branch information
asaha2 committed May 8, 2024
1 parent 3aab0b7 commit 324ea1c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
10 changes: 8 additions & 2 deletions load_balancers.go
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,10 @@ type GLBSettings struct {
TargetPort uint32 `json:"target_port"`
// CDNSettings is the CDN configurations
CDN *CDNSettings `json:"cdn"`
// RegionPriorities embeds regional priority information for regional active-passive failover policy
RegionPriorities map[string]uint32 `json:"region_priorities,omitempty"`
// FailoverThreshold embeds failover threshold percentage for regional active-passive failover policy
FailoverThreshold uint32 `json:"failover_threshold,omitempty"`
}

// String creates a human-readable description of a GLBSettings
Expand All @@ -299,8 +303,10 @@ func (s GLBSettings) String() string {

func (s GLBSettings) deepCopy() *GLBSettings {
settings := &GLBSettings{
TargetProtocol: s.TargetProtocol,
TargetPort: s.TargetPort,
TargetProtocol: s.TargetProtocol,
TargetPort: s.TargetPort,
RegionPriorities: s.RegionPriorities,
FailoverThreshold: s.FailoverThreshold,
}
if s.CDN != nil {
settings.CDN = &CDNSettings{IsEnabled: s.CDN.IsEnabled}
Expand Down
23 changes: 16 additions & 7 deletions load_balancers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,12 @@ var lbCreateJSONResponse = `
"target_port": 80,
"cdn": {
"is_enabled": true
}
},
"region_priorities": {
"nyc1": 1,
"nyc2": 2
},
"failover_threshold": 10
},
"target_load_balancer_ids": [
"8268a81c-fcf5-423e-a337-bbfe95817f24",
Expand Down Expand Up @@ -539,9 +544,11 @@ func TestLoadBalancers_Create(t *testing.T) {
{Name: "test-domain-2", IsManaged: true, CertificateID: "test-cert-id-2"},
},
GLBSettings: &GLBSettings{
TargetProtocol: "HTTP",
TargetPort: 80,
CDN: &CDNSettings{IsEnabled: true},
TargetProtocol: "HTTP",
TargetPort: 80,
CDN: &CDNSettings{IsEnabled: true},
RegionPriorities: map[string]uint32{"nyc1": 1, "nyc2": 2},
FailoverThreshold: 10,
},
TargetLoadBalancerIDs: []string{"8268a81c-fcf5-423e-a337-bbfe95817f24", "8268a81c-fcf6-423e-a337-bbfe95817f24"},
}
Expand Down Expand Up @@ -624,9 +631,11 @@ func TestLoadBalancers_Create(t *testing.T) {
{Name: "test-domain-2", IsManaged: true, CertificateID: "test-cert-id-2"},
},
GLBSettings: &GLBSettings{
TargetProtocol: "HTTP",
TargetPort: 80,
CDN: &CDNSettings{IsEnabled: true},
TargetProtocol: "HTTP",
TargetPort: 80,
CDN: &CDNSettings{IsEnabled: true},
RegionPriorities: map[string]uint32{"nyc1": 1, "nyc2": 2},
FailoverThreshold: 10,
},
TargetLoadBalancerIDs: []string{"8268a81c-fcf5-423e-a337-bbfe95817f24", "8268a81c-fcf6-423e-a337-bbfe95817f24"},
}
Expand Down

0 comments on commit 324ea1c

Please sign in to comment.