145
ctx context.Context,
146
task *replicationspb.NamespaceTaskAttributes,
148
>
// task already validated
149
>
err := h.validateNamespaceStatus(task.Info.State)
150
>
if err != nil {
151
return err
152
}
153
155
>
Namespace: &persistencespb.NamespaceDetail{
156
>
Info: &persistencespb.NamespaceInfo{
157
>
Id: task.GetId(),
158
>
Name: task.Info.GetName(),
159
>
State: task.Info.GetState(),
160
>
Description: task.Info.GetDescription(),
161
>
Owner: task.Info.GetOwnerEmail(),
162
>
Data: task.Info.Data,
163
>
},
164
>
Config: &persistencespb.NamespaceConfig{
165
>
Retention: task.Config.GetWorkflowExecutionRetentionTtl(),
166
>
HistoryArchivalState: task.Config.GetHistoryArchivalState(),
167
>
HistoryArchivalUri: task.Config.GetHistoryArchivalUri(),
168
>
VisibilityArchivalState: task.Config.GetVisibilityArchivalState(),
169
>
VisibilityArchivalUri: task.Config.GetVisibilityArchivalUri(),
170
>
CustomSearchAttributeAliases: task.Config.GetCustomSearchAttributeAliases(),
171
>
},
172
>
ReplicationConfig: &persistencespb.NamespaceReplicationConfig{
173
>
ActiveClusterName: task.ReplicationConfig.GetActiveClusterName(),
174
>
Clusters: ConvertClusterReplicationConfigFromProto(task.ReplicationConfig.Clusters),
175
>
State: task.ReplicationConfig.GetState(),
176
>
FailoverHistory: ConvertFailoverHistoryToPersistenceProto(task.GetFailoverHistory()),
177
>
},
178
>
ConfigVersion: task.GetConfigVersion(),
179
>
FailoverVersion: task.GetFailoverVersion(),
180
>
},
181
>
IsGlobalNamespace: true, // local namespace will not be replicated
182
>
}
183
>
184
>
_, err = h.metadataManager.CreateNamespace(ctx, request)
185
>
if err != nil {
186
// SQL and Cassandra handle namespace UUID collision differently
187
// here, whenever seeing a error replicating a namespace