Skip to content

Commit ba6fe77

Browse files
Update domain api mappers to support ActiveClusters field (#1446)
1 parent 59410c7 commit ba6fe77

File tree

8 files changed

+83
-1
lines changed

8 files changed

+83
-1
lines changed

internal/compatibility/proto/request.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ const (
519519
DomainUpdateVisibilityArchivalURIField = "visibility_archival_uri"
520520
DomainUpdateActiveClusterNameField = "active_cluster_name"
521521
DomainUpdateClustersField = "clusters"
522+
DomainUpdateActiveClustersField = "active_clusters"
522523
DomainUpdateDeleteBadBinaryField = "delete_bad_binary"
523524
DomainUpdateFailoverTimeoutField = "failover_timeout"
524525
)
@@ -583,6 +584,10 @@ func UpdateDomainRequest(t *shared.UpdateDomainRequest) *apiv1.UpdateDomainReque
583584
request.Clusters = ClusterReplicationConfigurationArray(replicationConfiguration.Clusters)
584585
fields = append(fields, DomainUpdateClustersField)
585586
}
587+
if replicationConfiguration.ActiveClusters != nil {
588+
request.ActiveClusters = ActiveClusters(replicationConfiguration.ActiveClusters)
589+
fields = append(fields, DomainUpdateActiveClustersField)
590+
}
586591
}
587592
if t.DeleteBadBinary != nil {
588593
request.DeleteBadBinary = *t.DeleteBadBinary

internal/compatibility/proto/response.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func DescribeDomainResponse(t *shared.DescribeDomainResponse) *apiv1.DescribeDom
6262
if repl := t.ReplicationConfiguration; repl != nil {
6363
domain.ActiveClusterName = repl.GetActiveClusterName()
6464
domain.Clusters = ClusterReplicationConfigurationArray(repl.Clusters)
65+
domain.ActiveClusters = ActiveClusters(repl.ActiveClusters)
6566
}
6667
return &apiv1.DescribeDomainResponse{Domain: &domain}
6768
}
@@ -341,6 +342,7 @@ func UpdateDomainResponse(t *shared.UpdateDomainResponse) *apiv1.UpdateDomainRes
341342
if repl := t.ReplicationConfiguration; repl != nil {
342343
domain.ActiveClusterName = repl.GetActiveClusterName()
343344
domain.Clusters = ClusterReplicationConfigurationArray(repl.Clusters)
345+
domain.ActiveClusters = ActiveClusters(repl.ActiveClusters)
344346
}
345347
return &apiv1.UpdateDomainResponse{
346348
Domain: domain,

internal/compatibility/proto/types.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ func DescribeDomainResponseDomain(t *shared.DescribeDomainResponse) *apiv1.Domai
552552
if repl := t.ReplicationConfiguration; repl != nil {
553553
domain.ActiveClusterName = repl.GetActiveClusterName()
554554
domain.Clusters = ClusterReplicationConfigurationArray(repl.Clusters)
555+
domain.ActiveClusters = ActiveClusters(repl.ActiveClusters)
555556
}
556557
return &domain
557558
}
@@ -695,3 +696,21 @@ func ActivityLocalDispatchInfoMap(t map[string]*shared.ActivityLocalDispatchInfo
695696
}
696697
return v
697698
}
699+
700+
func ActiveClusters(ac *shared.ActiveClusters) *apiv1.ActiveClusters {
701+
if ac == nil {
702+
return nil
703+
}
704+
705+
regToCl := make(map[string]*apiv1.ActiveClusterInfo)
706+
for reg, clusterInfo := range ac.ActiveClustersByRegion {
707+
regToCl[reg] = &apiv1.ActiveClusterInfo{
708+
ActiveClusterName: clusterInfo.GetActiveClusterName(),
709+
FailoverVersion: clusterInfo.GetFailoverVersion(),
710+
}
711+
}
712+
713+
return &apiv1.ActiveClusters{
714+
RegionToCluster: regToCl,
715+
}
716+
}

internal/compatibility/testdata/domain.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ var (
8181
VisibilityArchivalUri: VisibilityArchivalURI,
8282
ActiveClusterName: ClusterName1,
8383
Clusters: ClusterReplicationConfigurationArray,
84+
ActiveClusters: ActiveClusters,
8485
}
8586
ClusterReplicationConfiguration = apiv1.ClusterReplicationConfiguration{
8687
ClusterName: ClusterName1,
@@ -92,4 +93,16 @@ var (
9293
"Region1": ClusterName1,
9394
"Region2": ClusterName2,
9495
}
96+
ActiveClusters = &apiv1.ActiveClusters{
97+
RegionToCluster: map[string]*apiv1.ActiveClusterInfo{
98+
"Region1": &apiv1.ActiveClusterInfo{
99+
ActiveClusterName: ClusterName1,
100+
FailoverVersion: 0,
101+
},
102+
"Region2": &apiv1.ActiveClusterInfo{
103+
ActiveClusterName: ClusterName2,
104+
FailoverVersion: 0,
105+
},
106+
},
107+
}
95108
)

internal/compatibility/testdata/service.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,29 @@ var (
7272
VisibilityArchivalStatus: ArchivalStatus,
7373
VisibilityArchivalUri: VisibilityArchivalURI,
7474
ActiveClusterName: ClusterName1,
75+
ActiveClusters: ActiveClusters,
7576
Clusters: ClusterReplicationConfigurationArray,
7677
SecurityToken: SecurityToken,
7778
DeleteBadBinary: DeleteBadBinary,
7879
FailoverTimeout: Duration1,
79-
UpdateMask: &gogo.FieldMask{Paths: []string{"description", "owner_email", "data", "workflow_execution_retention_period", "bad_binaries", "history_archival_status", "history_archival_uri", "visibility_archival_status", "visibility_archival_uri", "active_cluster_name", "clusters", "delete_bad_binary", "failover_timeout"}},
80+
UpdateMask: &gogo.FieldMask{
81+
Paths: []string{
82+
"description",
83+
"owner_email",
84+
"data",
85+
"workflow_execution_retention_period",
86+
"bad_binaries",
87+
"history_archival_status",
88+
"history_archival_uri",
89+
"visibility_archival_status",
90+
"visibility_archival_uri",
91+
"active_cluster_name",
92+
"clusters",
93+
"active_clusters",
94+
"delete_bad_binary",
95+
"failover_timeout",
96+
},
97+
},
8098
}
8199
UpdateDomainResponse = apiv1.UpdateDomainResponse{
82100
Domain: &Domain,

internal/compatibility/thrift/request.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ const (
509509
DomainUpdateVisibilityArchivalURIField = "visibility_archival_uri"
510510
DomainUpdateActiveClusterNameField = "active_cluster_name"
511511
DomainUpdateClustersField = "clusters"
512+
DomainUpdateActiveClustersField = "active_clusters"
512513
DomainUpdateDeleteBadBinaryField = "delete_bad_binary"
513514
DomainUpdateFailoverTimeoutField = "failover_timeout"
514515
)
@@ -556,6 +557,9 @@ func UpdateDomainRequest(t *apiv1.UpdateDomainRequest) *shared.UpdateDomainReque
556557
if fs.isSet(DomainUpdateActiveClusterNameField) {
557558
request.ReplicationConfiguration.ActiveClusterName = &t.ActiveClusterName
558559
}
560+
if fs.isSet(DomainUpdateActiveClustersField) {
561+
request.ReplicationConfiguration.ActiveClusters = ActiveClusters(t.ActiveClusters)
562+
}
559563
if fs.isSet(DomainUpdateClustersField) {
560564
request.ReplicationConfiguration.Clusters = ClusterReplicationConfigurationArray(t.Clusters)
561565
}

internal/compatibility/thrift/response.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ func DescribeDomainResponse(t *apiv1.DescribeDomainResponse) *shared.DescribeDom
6060
ReplicationConfiguration: &shared.DomainReplicationConfiguration{
6161
ActiveClusterName: &t.Domain.ActiveClusterName,
6262
Clusters: ClusterReplicationConfigurationArray(t.Domain.Clusters),
63+
ActiveClusters: ActiveClusters(t.Domain.ActiveClusters),
6364
},
6465
FailoverVersion: &t.Domain.FailoverVersion,
6566
IsGlobalDomain: &t.Domain.IsGlobalDomain,
@@ -353,6 +354,7 @@ func UpdateDomainResponse(t *apiv1.UpdateDomainResponse) *shared.UpdateDomainRes
353354
ReplicationConfiguration: &shared.DomainReplicationConfiguration{
354355
ActiveClusterName: &t.Domain.ActiveClusterName,
355356
Clusters: ClusterReplicationConfigurationArray(t.Domain.Clusters),
357+
ActiveClusters: ActiveClusters(t.Domain.ActiveClusters),
356358
},
357359
FailoverVersion: &t.Domain.FailoverVersion,
358360
IsGlobalDomain: &t.Domain.IsGlobalDomain,

internal/compatibility/thrift/types.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@ func DescribeDomainResponseDomain(t *apiv1.Domain) *shared.DescribeDomainRespons
561561
ReplicationConfiguration: &shared.DomainReplicationConfiguration{
562562
ActiveClusterName: &t.ActiveClusterName,
563563
Clusters: ClusterReplicationConfigurationArray(t.Clusters),
564+
ActiveClusters: ActiveClusters(t.ActiveClusters),
564565
},
565566
FailoverVersion: &t.FailoverVersion,
566567
IsGlobalDomain: &t.IsGlobalDomain,
@@ -706,3 +707,21 @@ func ActivityLocalDispatchInfoMap(t map[string]*apiv1.ActivityLocalDispatchInfo)
706707
}
707708
return v
708709
}
710+
711+
func ActiveClusters(ac *apiv1.ActiveClusters) *shared.ActiveClusters {
712+
if ac == nil {
713+
return nil
714+
}
715+
716+
clByRegion := make(map[string]*shared.ActiveClusterInfo)
717+
for region, clInfo := range ac.RegionToCluster {
718+
clByRegion[region] = &shared.ActiveClusterInfo{
719+
ActiveClusterName: &clInfo.ActiveClusterName,
720+
FailoverVersion: &clInfo.FailoverVersion,
721+
}
722+
}
723+
724+
return &shared.ActiveClusters{
725+
ActiveClustersByRegion: clByRegion,
726+
}
727+
}

0 commit comments

Comments
 (0)