72
}
73
74
>
func (cfg *LiteServerConfig) apply(serverConfig *config.Config) {
lite_server.go
75
>
sqliteConfig := config.SQL{
76
>
PluginName: sqliteplugin.PluginName,
77
>
ConnectAttributes: make(map[string]string),
78
>
DatabaseName: cfg.DatabaseFilePath,
79
>
}
80
>
if cfg.Ephemeral {
81
>
sqliteConfig.ConnectAttributes["mode"] = "memory"
82
>
sqliteConfig.ConnectAttributes["cache"] = "shared"
83
>
// TODO(jlegrone): investigate whether a randomized db name is necessary when running in shared cache mode:
84
>
// https://www.sqlite.org/sharedcache.html
85
>
sqliteConfig.DatabaseName = fmt.Sprintf("%d", rand.Intn(9999999))
86
>
} else {
87
sqliteConfig.ConnectAttributes["mode"] = "rwc"
88
}
89
91
sqliteConfig.ConnectAttributes["_"+k] = v
92
}
93
95
>
cfg.FrontendPort = freeport.MustGetFreePort()
96
>
}
97
>
if cfg.MetricsPort == 0 {
98
>
cfg.MetricsPort = freeport.MustGetFreePort()
99
>
}
100
>
pprofPort := freeport.MustGetFreePort()
101
>
102
>
serverConfig.Global.Membership = config.Membership{
103
>
MaxJoinDuration: 30 * time.Second,
104
>
BroadcastAddress: localBroadcastAddress,
105
>
}
106
>
serverConfig.Global.Metrics = &metrics.Config{
107
>
Prometheus: &metrics.PrometheusConfig{
108
>
ListenAddress: fmt.Sprintf("%s:%d", cfg.FrontendIP, cfg.MetricsPort),
109
>
HandlerPath: "/metrics",
110
>
},
111
>
}
112
>
serverConfig.Global.PProf = config.PProf{Port: pprofPort}
113
>
serverConfig.Persistence = config.Persistence{
114
>
DefaultStore: sqliteplugin.PluginName,
115
>
VisibilityStore: sqliteplugin.PluginName,
116
>
NumHistoryShards: 1,
117
>
DataStores: map[string]config.DataStore{
118
>
sqliteplugin.PluginName: {SQL: &sqliteConfig},
119
>
},
120
>
}
121
>
serverConfig.ClusterMetadata = &cluster.Config{
122
>
EnableGlobalNamespace: false,
123
>
FailoverVersionIncrement: 10,
124
>
MasterClusterName: "active",
125
>
CurrentClusterName: "active",
126
>
ClusterInformation: map[string]cluster.ClusterInformation{
127
>
"active": {
128
>
Enabled: true,
129
>
InitialFailoverVersion: 1,
130
>
RPCAddress: fmt.Sprintf("%s:%d", localBroadcastAddress, cfg.FrontendPort),
131
>
},
132
>
},
133
>
}
134
>
serverConfig.DCRedirectionPolicy = config.DCRedirectionPolicy{
135
>
Policy: "noop",
136
>
}
137
>
serverConfig.Services = map[string]config.Service{
138
>
"frontend": cfg.mustGetService(0),
139
>
"history": cfg.mustGetService(1),
140
>
"matching": cfg.mustGetService(2),
141
>
"worker": cfg.mustGetService(3),
142
>
}
143
>
serverConfig.Archival = config.Archival{
144
>
History: config.HistoryArchival{
145
>
State: "disabled",
146
>
EnableRead: false,
147
>
Provider: nil,
148
>
},
149
>
Visibility: config.VisibilityArchival{
150
>
State: "disabled",
151
>
EnableRead: false,
152
>
Provider: nil,
153
>
},
154
>
}
155
>
// TODO(dnr): Figure out why server fails to start when PublicClient is not set with error:
156
>
// panic: Client must be created with client.Dial() or client.NewLazyClient()
157
>
// See also: https://github.com/temporalio/temporal/pull/4026#discussion_r1149808018
158
>
serverConfig.PublicClient = config.PublicClient{
159
>
HostPort: fmt.Sprintf("%s:%d", localBroadcastAddress, cfg.FrontendPort),
160
>
}
161
>
serverConfig.NamespaceDefaults = config.NamespaceDefaults{
162
>
Archival: config.ArchivalNamespaceDefaults{
163
>
History: config.HistoryArchivalNamespaceDefaults{
164
>
State: "disabled",
165
>
},
166
>
Visibility: config.VisibilityArchivalNamespaceDefaults{
167
>
State: "disabled",
168
>
},
169
>
},
170
>
}
171
}
172
174
>
if cfg.BaseConfig == nil {
175
>
cfg.BaseConfig = &config.Config{}
176
>
}
177
>
if cfg.Logger == nil {
178
cfg.Logger = log.NewZapLogger(log.BuildZapLogger(log.Config{
179
Stdout: true,