Skip to content

Commit 3b3498a

Browse files
authored
Move namespace handler to service/frontend (#3855)
1 parent dc257ce commit 3b3498a

12 files changed

+206
-213
lines changed

common/namespace/archivalConfigStateMachine.go

+42-42
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,21 @@ import (
3434
// Logically this class can be thought of as part of namespaceHandler.
3535

3636
type (
37-
// ArchivalState represents the state of archival config
37+
// ArchivalConfigState represents the state of archival config
3838
// the only invalid state is {URI="", state=enabled}
3939
// once URI is set it is immutable
40-
ArchivalState struct {
40+
ArchivalConfigState struct {
4141
State enumspb.ArchivalState
4242
URI string
4343
}
4444

45-
// ArchivalEvent represents a change request to archival config state
45+
// ArchivalConfigEvent represents a change request to archival config state
4646
// the only restriction placed on events is that defaultURI is not empty
4747
// state can be nil, enabled, or disabled (nil indicates no update by user is being attempted)
48-
ArchivalEvent struct {
49-
defaultURI string
48+
ArchivalConfigEvent struct {
49+
DefaultURI string
5050
URI string
51-
state enumspb.ArchivalState
51+
State enumspb.ArchivalState
5252
}
5353
)
5454

@@ -60,31 +60,31 @@ var (
6060
errURIUpdate = serviceerror.NewInvalidArgument("Cannot update existing archival URI")
6161
)
6262

63-
func neverEnabledState() *ArchivalState {
64-
return &ArchivalState{
63+
func NeverEnabledState() *ArchivalConfigState {
64+
return &ArchivalConfigState{
6565
URI: "",
6666
State: enumspb.ARCHIVAL_STATE_DISABLED,
6767
}
6868
}
6969

70-
func (e *ArchivalEvent) validate() error {
71-
if len(e.defaultURI) == 0 {
70+
func (e *ArchivalConfigEvent) Validate() error {
71+
if len(e.DefaultURI) == 0 {
7272
return errInvalidEvent
7373
}
7474
return nil
7575
}
7676

77-
func (s *ArchivalState) validate() error {
77+
func (s *ArchivalConfigState) validate() error {
7878
if s.State == enumspb.ARCHIVAL_STATE_ENABLED && len(s.URI) == 0 {
7979
return errInvalidState
8080
}
8181
return nil
8282
}
8383

84-
func (s *ArchivalState) getNextState(
85-
e *ArchivalEvent,
84+
func (s *ArchivalConfigState) GetNextState(
85+
e *ArchivalConfigEvent,
8686
URIValidationFunc func(URI string) error,
87-
) (nextState *ArchivalState, changed bool, err error) {
87+
) (nextState *ArchivalConfigState, changed bool, err error) {
8888
defer func() {
8989
// ensure that any existing URI name was not mutated
9090
if nextState != nil && len(s.URI) != 0 && s.URI != nextState.URI {
@@ -120,7 +120,7 @@ func (s *ArchivalState) getNextState(
120120
if err := s.validate(); err != nil {
121121
return nil, false, err
122122
}
123-
if err := e.validate(); err != nil {
123+
if err := e.Validate(); err != nil {
124124
return nil, false, err
125125
}
126126

@@ -151,90 +151,90 @@ func (s *ArchivalState) getNextState(
151151

152152
// state 1
153153
if s.State == enumspb.ARCHIVAL_STATE_ENABLED && stateURISet {
154-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
154+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
155155
return s, false, nil
156156
}
157-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
157+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
158158
return s, false, nil
159159
}
160-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
161-
return &ArchivalState{
160+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
161+
return &ArchivalConfigState{
162162
State: enumspb.ARCHIVAL_STATE_DISABLED,
163163
URI: s.URI,
164164
}, true, nil
165165
}
166-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
167-
return &ArchivalState{
166+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
167+
return &ArchivalConfigState{
168168
State: enumspb.ARCHIVAL_STATE_DISABLED,
169169
URI: s.URI,
170170
}, true, nil
171171
}
172-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
172+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
173173
return s, false, nil
174174
}
175-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
175+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
176176
return s, false, nil
177177
}
178178
}
179179

180180
// state 2
181181
if s.State == enumspb.ARCHIVAL_STATE_DISABLED && stateURISet {
182-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
183-
return &ArchivalState{
182+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
183+
return &ArchivalConfigState{
184184
URI: s.URI,
185185
State: enumspb.ARCHIVAL_STATE_ENABLED,
186186
}, true, nil
187187
}
188-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
189-
return &ArchivalState{
188+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
189+
return &ArchivalConfigState{
190190
State: enumspb.ARCHIVAL_STATE_ENABLED,
191191
URI: s.URI,
192192
}, true, nil
193193
}
194-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
194+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
195195
return s, false, nil
196196
}
197-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
197+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
198198
return s, false, nil
199199
}
200-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
200+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
201201
return s, false, nil
202202
}
203-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
203+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
204204
return s, false, nil
205205
}
206206
}
207207

208208
// state 3
209209
if s.State == enumspb.ARCHIVAL_STATE_DISABLED && !stateURISet {
210-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
211-
return &ArchivalState{
210+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && eventURISet {
211+
return &ArchivalConfigState{
212212
State: enumspb.ARCHIVAL_STATE_ENABLED,
213213
URI: e.URI,
214214
}, true, nil
215215
}
216-
if e.state == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
217-
return &ArchivalState{
216+
if e.State == enumspb.ARCHIVAL_STATE_ENABLED && !eventURISet {
217+
return &ArchivalConfigState{
218218
State: enumspb.ARCHIVAL_STATE_ENABLED,
219-
URI: e.defaultURI,
219+
URI: e.DefaultURI,
220220
}, true, nil
221221
}
222-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
223-
return &ArchivalState{
222+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && eventURISet {
223+
return &ArchivalConfigState{
224224
State: enumspb.ARCHIVAL_STATE_DISABLED,
225225
URI: e.URI,
226226
}, true, nil
227227
}
228-
if e.state == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
228+
if e.State == enumspb.ARCHIVAL_STATE_DISABLED && !eventURISet {
229229
return s, false, nil
230230
}
231-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
232-
return &ArchivalState{
231+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && eventURISet {
232+
return &ArchivalConfigState{
233233
State: enumspb.ARCHIVAL_STATE_DISABLED,
234234
URI: e.URI,
235235
}, true, nil
236236
}
237-
if e.state == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
237+
if e.State == enumspb.ARCHIVAL_STATE_UNSPECIFIED && !eventURISet {
238238
return s, false, nil
239239
}
240240
}

common/namespace/attrValidator.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ type (
4141
}
4242
)
4343

44-
// newAttrValidator create a new namespace attr validator
45-
func newAttrValidator(
44+
// NewAttrValidator create a new namespace attr validator
45+
func NewAttrValidator(
4646
clusterMetadata cluster.Metadata,
4747
) *AttrValidatorImpl {
4848

@@ -51,7 +51,7 @@ func newAttrValidator(
5151
}
5252
}
5353

54-
func (d *AttrValidatorImpl) validateNamespaceConfig(config *persistencespb.NamespaceConfig) error {
54+
func (d *AttrValidatorImpl) ValidateNamespaceConfig(config *persistencespb.NamespaceConfig) error {
5555
if config.HistoryArchivalState == enumspb.ARCHIVAL_STATE_ENABLED && len(config.HistoryArchivalUri) == 0 {
5656
return errInvalidArchivalConfig
5757
}
@@ -61,7 +61,7 @@ func (d *AttrValidatorImpl) validateNamespaceConfig(config *persistencespb.Names
6161
return nil
6262
}
6363

64-
func (d *AttrValidatorImpl) validateNamespaceReplicationConfigForLocalNamespace(
64+
func (d *AttrValidatorImpl) ValidateNamespaceReplicationConfigForLocalNamespace(
6565
replicationConfig *persistencespb.NamespaceReplicationConfig,
6666
) error {
6767

@@ -88,7 +88,7 @@ func (d *AttrValidatorImpl) validateNamespaceReplicationConfigForLocalNamespace(
8888
return nil
8989
}
9090

91-
func (d *AttrValidatorImpl) validateNamespaceReplicationConfigForGlobalNamespace(
91+
func (d *AttrValidatorImpl) ValidateNamespaceReplicationConfigForGlobalNamespace(
9292
replicationConfig *persistencespb.NamespaceReplicationConfig,
9393
) error {
9494

common/namespace/attrValidator_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (s *attrValidatorSuite) SetupTest() {
6161
s.controller = gomock.NewController(s.T())
6262
s.mockClusterMetadata = cluster.NewMockMetadata(s.controller)
6363

64-
s.validator = newAttrValidator(s.mockClusterMetadata)
64+
s.validator = NewAttrValidator(s.mockClusterMetadata)
6565
}
6666

6767
func (s *attrValidatorSuite) TearDownTest() {
@@ -91,7 +91,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForLocalNames
9191
cluster.TestAllClusterInfo,
9292
).AnyTimes()
9393

94-
err := s.validator.validateNamespaceReplicationConfigForLocalNamespace(
94+
err := s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
9595
&persistencespb.NamespaceReplicationConfig{
9696
ActiveClusterName: cluster.TestAlternativeClusterName,
9797
Clusters: []string{
@@ -101,7 +101,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForLocalNames
101101
)
102102
s.IsType(&serviceerror.InvalidArgument{}, err)
103103

104-
err = s.validator.validateNamespaceReplicationConfigForLocalNamespace(
104+
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
105105
&persistencespb.NamespaceReplicationConfig{
106106
ActiveClusterName: cluster.TestAlternativeClusterName,
107107
Clusters: []string{
@@ -112,7 +112,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForLocalNames
112112
)
113113
s.IsType(&serviceerror.InvalidArgument{}, err)
114114

115-
err = s.validator.validateNamespaceReplicationConfigForLocalNamespace(
115+
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
116116
&persistencespb.NamespaceReplicationConfig{
117117
ActiveClusterName: cluster.TestCurrentClusterName,
118118
Clusters: []string{
@@ -123,7 +123,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForLocalNames
123123
)
124124
s.IsType(&serviceerror.InvalidArgument{}, err)
125125

126-
err = s.validator.validateNamespaceReplicationConfigForLocalNamespace(
126+
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
127127
&persistencespb.NamespaceReplicationConfig{
128128
ActiveClusterName: cluster.TestCurrentClusterName,
129129
Clusters: []string{
@@ -142,7 +142,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForGlobalName
142142
cluster.TestAllClusterInfo,
143143
).AnyTimes()
144144

145-
err := s.validator.validateNamespaceReplicationConfigForGlobalNamespace(
145+
err := s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
146146
&persistencespb.NamespaceReplicationConfig{
147147
ActiveClusterName: cluster.TestCurrentClusterName,
148148
Clusters: []string{
@@ -152,7 +152,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForGlobalName
152152
)
153153
s.NoError(err)
154154

155-
err = s.validator.validateNamespaceReplicationConfigForGlobalNamespace(
155+
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
156156
&persistencespb.NamespaceReplicationConfig{
157157
ActiveClusterName: cluster.TestAlternativeClusterName,
158158
Clusters: []string{
@@ -162,7 +162,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForGlobalName
162162
)
163163
s.NoError(err)
164164

165-
err = s.validator.validateNamespaceReplicationConfigForGlobalNamespace(
165+
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
166166
&persistencespb.NamespaceReplicationConfig{
167167
ActiveClusterName: cluster.TestAlternativeClusterName,
168168
Clusters: []string{
@@ -173,7 +173,7 @@ func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForGlobalName
173173
)
174174
s.NoError(err)
175175

176-
err = s.validator.validateNamespaceReplicationConfigForGlobalNamespace(
176+
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
177177
&persistencespb.NamespaceReplicationConfig{
178178
ActiveClusterName: cluster.TestCurrentClusterName,
179179
Clusters: []string{

common/namespace/errors.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ import (
2929
)
3030

3131
var (
32-
// err indicating that this cluster is not the master, so cannot do namespace registration or update
33-
errNotMasterCluster = serviceerror.NewInvalidArgument("Cluster is not master cluster, cannot do namespace registration or namespace update.")
34-
errActiveClusterNotInClusters = serviceerror.NewInvalidArgument("Active cluster is not contained in all clusters.")
35-
errCannotDoNamespaceFailoverAndUpdate = serviceerror.NewInvalidArgument("Cannot set active cluster to current cluster when other parameters are set.")
36-
errInvalidRetentionPeriod = serviceerror.NewInvalidArgument("A valid retention period is not set on request.")
37-
errInvalidArchivalConfig = serviceerror.NewInvalidArgument("Invalid to enable archival without specifying a uri.")
32+
errActiveClusterNotInClusters = serviceerror.NewInvalidArgument("Active cluster is not contained in all clusters.")
33+
errInvalidArchivalConfig = serviceerror.NewInvalidArgument("Invalid to enable archival without specifying a uri.")
3834
)

common/namespace/namespace.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,17 @@ func (ns *Namespace) Clone(ms ...Mutation) *Namespace {
114114

115115
// VisibilityArchivalState observes the visibility archive configuration (state
116116
// and URI) for this namespace.
117-
func (ns *Namespace) VisibilityArchivalState() ArchivalState {
118-
return ArchivalState{
117+
func (ns *Namespace) VisibilityArchivalState() ArchivalConfigState {
118+
return ArchivalConfigState{
119119
State: ns.config.VisibilityArchivalState,
120120
URI: ns.config.VisibilityArchivalUri,
121121
}
122122
}
123123

124124
// HistoryArchivalState observes the history archive configuration (state and
125125
// URI) for this namespace.
126-
func (ns *Namespace) HistoryArchivalState() ArchivalState {
127-
return ArchivalState{
126+
func (ns *Namespace) HistoryArchivalState() ArchivalConfigState {
127+
return ArchivalConfigState{
128128
State: ns.config.HistoryArchivalState,
129129
URI: ns.config.HistoryArchivalUri,
130130
}

common/namespace/replicationTaskExecutor.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func (h *namespaceReplicationTaskExecutorImpl) handleNamespaceCreationReplicatio
172172
},
173173
ReplicationConfig: &persistencespb.NamespaceReplicationConfig{
174174
ActiveClusterName: task.ReplicationConfig.GetActiveClusterName(),
175-
Clusters: convertClusterReplicationConfigFromProto(task.ReplicationConfig.Clusters),
175+
Clusters: ConvertClusterReplicationConfigFromProto(task.ReplicationConfig.Clusters),
176176
},
177177
ConfigVersion: task.GetConfigVersion(),
178178
FailoverVersion: task.GetFailoverVersion(),
@@ -288,7 +288,7 @@ func (h *namespaceReplicationTaskExecutorImpl) handleNamespaceUpdateReplicationT
288288
if task.Config.GetBadBinaries() != nil {
289289
request.Namespace.Config.BadBinaries = task.Config.GetBadBinaries()
290290
}
291-
request.Namespace.ReplicationConfig.Clusters = convertClusterReplicationConfigFromProto(task.ReplicationConfig.Clusters)
291+
request.Namespace.ReplicationConfig.Clusters = ConvertClusterReplicationConfigFromProto(task.ReplicationConfig.Clusters)
292292
request.Namespace.ConfigVersion = task.GetConfigVersion()
293293
}
294294
if resp.Namespace.FailoverVersion < task.GetFailoverVersion() {
@@ -323,7 +323,7 @@ func (h *namespaceReplicationTaskExecutorImpl) validateNamespaceReplicationTask(
323323
return nil
324324
}
325325

326-
func convertClusterReplicationConfigFromProto(
326+
func ConvertClusterReplicationConfigFromProto(
327327
input []*replicationpb.ClusterReplicationConfig,
328328
) []string {
329329
var output []string

0 commit comments

Comments
 (0)