Skip to content

Commit

Permalink
Compatibility layer fix (#1120)
Browse files Browse the repository at this point in the history
* Add integration test for domain update

* Fix protoUpdateDomainRequest for compatibility layer
  • Loading branch information
vytautas-karpavicius committed Aug 18, 2021
1 parent 88d9c90 commit eb5bff7
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 46 deletions.
94 changes: 50 additions & 44 deletions internal/compatibility/request.go
Expand Up @@ -494,50 +494,56 @@ func protoUpdateDomainRequest(t *shared.UpdateDomainRequest) *apiv1.UpdateDomain
}
fields := []string{}

if description := t.GetUpdatedInfo().Description; description != nil {
request.Description = *description
fields = append(fields, DomainUpdateDescriptionField)
}
if email := t.GetUpdatedInfo().OwnerEmail; email != nil {
request.OwnerEmail = *email
fields = append(fields, DomainUpdateOwnerEmailField)
}
if data := t.GetUpdatedInfo().Data; data != nil {
request.Data = data
fields = append(fields, DomainUpdateDataField)
}
if retention := t.GetConfiguration().WorkflowExecutionRetentionPeriodInDays; retention != nil {
request.WorkflowExecutionRetentionPeriod = daysToDuration(retention)
fields = append(fields, DomainUpdateRetentionPeriodField)
}
//if t.EmitMetric != nil {} - DEPRECATED
if badBinaries := t.GetConfiguration().BadBinaries; badBinaries != nil {
request.BadBinaries = protoBadBinaries(badBinaries)
fields = append(fields, DomainUpdateBadBinariesField)
}
if historyArchivalStatus := t.GetConfiguration().HistoryArchivalStatus; historyArchivalStatus != nil {
request.HistoryArchivalStatus = protoArchivalStatus(historyArchivalStatus)
fields = append(fields, DomainUpdateHistoryArchivalStatusField)
}
if historyArchivalURI := t.GetConfiguration().HistoryArchivalURI; historyArchivalURI != nil {
request.HistoryArchivalUri = *historyArchivalURI
fields = append(fields, DomainUpdateHistoryArchivalURIField)
}
if visibilityArchivalStatus := t.GetConfiguration().VisibilityArchivalStatus; visibilityArchivalStatus != nil {
request.VisibilityArchivalStatus = protoArchivalStatus(visibilityArchivalStatus)
fields = append(fields, DomainUpdateVisibilityArchivalStatusField)
}
if visibilityArchivalURI := t.GetConfiguration().VisibilityArchivalURI; visibilityArchivalURI != nil {
request.VisibilityArchivalUri = *visibilityArchivalURI
fields = append(fields, DomainUpdateVisibilityArchivalURIField)
}
if activeClusterName := t.GetReplicationConfiguration().ActiveClusterName; activeClusterName != nil {
request.ActiveClusterName = *activeClusterName
fields = append(fields, DomainUpdateActiveClusterNameField)
}
if clusters := t.GetReplicationConfiguration().Clusters; clusters != nil {
request.Clusters = protoClusterReplicationConfigurationArray(clusters)
fields = append(fields, DomainUpdateClustersField)
if updatedInfo := t.GetUpdatedInfo(); updatedInfo != nil {
if updatedInfo.Description != nil {
request.Description = *updatedInfo.Description
fields = append(fields, DomainUpdateDescriptionField)
}
if updatedInfo.OwnerEmail != nil {
request.OwnerEmail = *updatedInfo.OwnerEmail
fields = append(fields, DomainUpdateOwnerEmailField)
}
if updatedInfo.Data != nil {
request.Data = updatedInfo.Data
fields = append(fields, DomainUpdateDataField)
}
}
if configuration := t.GetConfiguration(); configuration != nil {
if configuration.WorkflowExecutionRetentionPeriodInDays != nil {
request.WorkflowExecutionRetentionPeriod = daysToDuration(configuration.WorkflowExecutionRetentionPeriodInDays)
fields = append(fields, DomainUpdateRetentionPeriodField)
}
//if t.EmitMetric != nil {} - DEPRECATED
if configuration.BadBinaries != nil {
request.BadBinaries = protoBadBinaries(configuration.BadBinaries)
fields = append(fields, DomainUpdateBadBinariesField)
}
if configuration.HistoryArchivalStatus != nil {
request.HistoryArchivalStatus = protoArchivalStatus(configuration.HistoryArchivalStatus)
fields = append(fields, DomainUpdateHistoryArchivalStatusField)
}
if configuration.HistoryArchivalURI != nil {
request.HistoryArchivalUri = *configuration.HistoryArchivalURI
fields = append(fields, DomainUpdateHistoryArchivalURIField)
}
if configuration.VisibilityArchivalStatus != nil {
request.VisibilityArchivalStatus = protoArchivalStatus(configuration.VisibilityArchivalStatus)
fields = append(fields, DomainUpdateVisibilityArchivalStatusField)
}
if configuration.VisibilityArchivalURI != nil {
request.VisibilityArchivalUri = *configuration.VisibilityArchivalURI
fields = append(fields, DomainUpdateVisibilityArchivalURIField)
}
}
if replicationConfiguration := t.GetReplicationConfiguration(); replicationConfiguration != nil {
if replicationConfiguration.ActiveClusterName != nil {
request.ActiveClusterName = *replicationConfiguration.ActiveClusterName
fields = append(fields, DomainUpdateActiveClusterNameField)
}
if replicationConfiguration.Clusters != nil {
request.Clusters = protoClusterReplicationConfigurationArray(replicationConfiguration.Clusters)
fields = append(fields, DomainUpdateClustersField)
}
}
if t.DeleteBadBinary != nil {
request.DeleteBadBinary = *t.DeleteBadBinary
Expand Down
21 changes: 19 additions & 2 deletions test/integration_test.go
Expand Up @@ -49,6 +49,7 @@ type IntegrationTestSuite struct {
config Config
rpcClient *rpcClient
libClient client.Client
domainClient client.DomainClient
activities *Activities
workflows *Workflows
worker worker.Worker
Expand Down Expand Up @@ -106,6 +107,7 @@ func (ts *IntegrationTestSuite) SetupSuite() {
&client.Options{
ContextPropagators: []workflow.ContextPropagator{NewStringMapPropagator([]string{testContextKey})},
})
ts.domainClient = client.NewDomainClient(ts.rpcClient.Interface, &client.Options{})
ts.registerDomain()
}

Expand Down Expand Up @@ -453,13 +455,28 @@ func (ts *IntegrationTestSuite) TestInspectLocalActivityInfo() {
ts.Nil(err)
}

func (ts *IntegrationTestSuite) TestDomainUpdate() {
ctx, cancel := context.WithTimeout(context.Background(), ctxTimeout)
defer cancel()
name := domainName
description := "test-description"
err := ts.domainClient.Update(ctx, &shared.UpdateDomainRequest{
Name: &name,
UpdatedInfo: &shared.UpdateDomainInfo{Description: &description},
})
ts.NoError(err)

domain, err := ts.domainClient.Describe(ctx, name)
ts.NoError(err)
ts.Equal(description, *domain.DomainInfo.Description)
}

func (ts *IntegrationTestSuite) registerDomain() {
client := client.NewDomainClient(ts.rpcClient.Interface, &client.Options{})
ctx, cancel := context.WithTimeout(context.Background(), ctxTimeout)
defer cancel()
name := domainName
retention := int32(1)
err := client.Register(ctx, &shared.RegisterDomainRequest{
err := ts.domainClient.Register(ctx, &shared.RegisterDomainRequest{
Name: &name,
WorkflowExecutionRetentionPeriodInDays: &retention,
})
Expand Down

0 comments on commit eb5bff7

Please sign in to comment.