summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-02-20 00:12:01 +0800
committerGitHub <noreply@github.com>2023-02-20 00:12:01 +0800
commitc53ad052d8bd040ecd269d9757ce9885396a04af (patch)
tree7142da12dc9511445c76d3bf5616f1c220441a84 /routers
parent2b02343e218755c36c6a45da8a53c06dfff843a1 (diff)
downloadgitea-c53ad052d8bd040ecd269d9757ce9885396a04af.tar.gz
gitea-c53ad052d8bd040ecd269d9757ce9885396a04af.zip
Refactor the setting to make unit test easier (#22405)
Some bugs caused by less unit tests in fundamental packages. This PR refactor `setting` package so that create a unit test will be easier than before. - All `LoadFromXXX` files has been splited as two functions, one is `InitProviderFromXXX` and `LoadCommonSettings`. The first functions will only include the code to create or new a ini file. The second function will load common settings. - It also renames all functions in setting from `newXXXService` to `loadXXXSetting` or `loadXXXFrom` to make the function name less confusing. - Move `XORMLog` to `SQLLog` because it's a better name for that. Maybe we should finally move these `loadXXXSetting` into the `XXXInit` function? Any idea? --------- Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: delvh <dev.lh@web.de>
Diffstat (limited to 'routers')
-rw-r--r--routers/api/v1/repo/main_test.go4
-rw-r--r--routers/common/middleware.go4
-rw-r--r--routers/init.go6
-rw-r--r--routers/install/install.go4
-rw-r--r--routers/install/setting.go14
-rw-r--r--routers/private/manager.go6
-rw-r--r--routers/private/ssh_log.go2
-rw-r--r--routers/web/admin/config.go12
8 files changed, 27 insertions, 25 deletions
diff --git a/routers/api/v1/repo/main_test.go b/routers/api/v1/repo/main_test.go
index 543fb922d6..c7466c493f 100644
--- a/routers/api/v1/repo/main_test.go
+++ b/routers/api/v1/repo/main_test.go
@@ -13,8 +13,8 @@ import (
)
func TestMain(m *testing.M) {
- setting.LoadForTest()
- setting.NewQueueService()
+ setting.InitProviderAndLoadCommonSettingsForTest()
+ setting.LoadQueueSettings()
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", "..", ".."),
SetUp: webhook_service.Init,
diff --git a/routers/common/middleware.go b/routers/common/middleware.go
index d664bfccfa..4f9d43c362 100644
--- a/routers/common/middleware.go
+++ b/routers/common/middleware.go
@@ -50,11 +50,11 @@ func Middlewares() []func(http.Handler) http.Handler {
handlers = append(handlers, middleware.StripSlashes)
- if !setting.DisableRouterLog {
+ if !setting.Log.DisableRouterLog {
handlers = append(handlers, routing.NewLoggerHandler())
}
- if setting.EnableAccessLog {
+ if setting.Log.EnableAccessLog {
handlers = append(handlers, context.AccessLogger())
}
diff --git a/routers/init.go b/routers/init.go
index ab2e2a0bb7..6a51de669a 100644
--- a/routers/init.go
+++ b/routers/init.go
@@ -73,7 +73,7 @@ func mustInitCtx(ctx context.Context, fn func(ctx context.Context) error) {
// InitGitServices init new services for git, this is also called in `contrib/pr/checkout.go`
func InitGitServices() {
- setting.NewServices()
+ setting.LoadSettings()
mustInit(storage.Init)
mustInit(repo_service.Init)
}
@@ -119,7 +119,7 @@ func GlobalInitInstalled(ctx context.Context) {
log.Info("AppPath: %s", setting.AppPath)
log.Info("AppWorkPath: %s", setting.AppWorkPath)
log.Info("Custom path: %s", setting.CustomPath)
- log.Info("Log path: %s", setting.LogRootPath)
+ log.Info("Log path: %s", setting.Log.RootPath)
log.Info("Configuration file: %s", setting.CustomConf)
log.Info("Run Mode: %s", util.ToTitleCase(setting.RunMode))
log.Info("Gitea v%s%s", setting.AppVer, setting.AppBuiltWith)
@@ -127,7 +127,7 @@ func GlobalInitInstalled(ctx context.Context) {
// Setup i18n
translation.InitLocales(ctx)
- setting.NewServices()
+ setting.LoadSettings()
mustInit(storage.Init)
mailer.NewContext(ctx)
diff --git a/routers/install/install.go b/routers/install/install.go
index 34ed5c355b..a3d64e5f73 100644
--- a/routers/install/install.go
+++ b/routers/install/install.go
@@ -134,7 +134,7 @@ func Install(ctx *context.Context) {
form.SSHPort = setting.SSH.Port
form.HTTPPort = setting.HTTPPort
form.AppURL = setting.AppURL
- form.LogRootPath = setting.LogRootPath
+ form.LogRootPath = setting.Log.RootPath
// E-mail service settings
if setting.MailService != nil {
@@ -467,7 +467,7 @@ func SubmitInstall(ctx *context.Context) {
cfg.Section("session").Key("PROVIDER").SetValue("file")
cfg.Section("log").Key("MODE").SetValue("console")
- cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel.String())
+ cfg.Section("log").Key("LEVEL").SetValue(setting.Log.Level.String())
cfg.Section("log").Key("ROOT_PATH").SetValue(form.LogRootPath)
cfg.Section("log").Key("ROUTER").SetValue("console")
diff --git a/routers/install/setting.go b/routers/install/setting.go
index b76219f45d..68984f1e78 100644
--- a/routers/install/setting.go
+++ b/routers/install/setting.go
@@ -15,20 +15,21 @@ import (
// PreloadSettings preloads the configuration to check if we need to run install
func PreloadSettings(ctx context.Context) bool {
- setting.LoadAllowEmpty()
+ setting.InitProviderAllowEmpty()
+ setting.LoadCommonSettings()
if !setting.InstallLock {
log.Info("AppPath: %s", setting.AppPath)
log.Info("AppWorkPath: %s", setting.AppWorkPath)
log.Info("Custom path: %s", setting.CustomPath)
- log.Info("Log path: %s", setting.LogRootPath)
+ log.Info("Log path: %s", setting.Log.RootPath)
log.Info("Configuration file: %s", setting.CustomConf)
log.Info("Prepare to run install page")
translation.InitLocales(ctx)
if setting.EnableSQLite3 {
log.Info("SQLite3 is supported")
}
- setting.InitDBConfig()
- setting.NewServicesForInstall()
+
+ setting.LoadSettingsForInstall()
svg.Init()
}
@@ -37,8 +38,9 @@ func PreloadSettings(ctx context.Context) bool {
// reloadSettings reloads the existing settings and starts up the database
func reloadSettings(ctx context.Context) {
- setting.LoadFromExisting()
- setting.InitDBConfig()
+ setting.InitProviderFromExistingFile()
+ setting.LoadCommonSettings()
+ setting.LoadDBSetting()
if setting.InstallLock {
if err := common.InitDBEngine(ctx); err == nil {
log.Info("ORM engine initialization successful!")
diff --git a/routers/private/manager.go b/routers/private/manager.go
index f15da298d6..a56fe9d123 100644
--- a/routers/private/manager.go
+++ b/routers/private/manager.go
@@ -116,11 +116,11 @@ func AddLogger(ctx *context.PrivateContext) {
}
if _, ok := opts.Config["level"]; !ok {
- opts.Config["level"] = setting.LogLevel
+ opts.Config["level"] = setting.Log.Level
}
if _, ok := opts.Config["stacktraceLevel"]; !ok {
- opts.Config["stacktraceLevel"] = setting.StacktraceLogLevel
+ opts.Config["stacktraceLevel"] = setting.Log.StacktraceLogLevel
}
if opts.Mode == "file" {
@@ -135,7 +135,7 @@ func AddLogger(ctx *context.PrivateContext) {
}
}
- bufferLen := setting.Cfg.Section("log").Key("BUFFER_LEN").MustInt64(10000)
+ bufferLen := setting.Log.BufferLength
byteConfig, err := json.Marshal(opts.Config)
if err != nil {
log.Error("Failed to marshal log configuration: %v %v", opts.Config, err)
diff --git a/routers/private/ssh_log.go b/routers/private/ssh_log.go
index 54604ad554..eacfa18f05 100644
--- a/routers/private/ssh_log.go
+++ b/routers/private/ssh_log.go
@@ -15,7 +15,7 @@ import (
// SSHLog hook to response ssh log
func SSHLog(ctx *context.PrivateContext) {
- if !setting.EnableSSHLog {
+ if !setting.Log.EnableSSHLog {
ctx.Status(http.StatusOK)
return
}
diff --git a/routers/web/admin/config.go b/routers/web/admin/config.go
index 73ce4cb990..2566cbe42b 100644
--- a/routers/web/admin/config.go
+++ b/routers/web/admin/config.go
@@ -117,7 +117,7 @@ func Config(ctx *context.Context) {
ctx.Data["AppUrl"] = setting.AppURL
ctx.Data["Domain"] = setting.Domain
ctx.Data["OfflineMode"] = setting.OfflineMode
- ctx.Data["DisableRouterLog"] = setting.DisableRouterLog
+ ctx.Data["DisableRouterLog"] = setting.Log.DisableRouterLog
ctx.Data["RunUser"] = setting.RunUser
ctx.Data["RunMode"] = util.ToTitleCase(setting.RunMode)
ctx.Data["GitVersion"] = git.VersionInfo()
@@ -125,7 +125,7 @@ func Config(ctx *context.Context) {
ctx.Data["RepoRootPath"] = setting.RepoRootPath
ctx.Data["CustomRootPath"] = setting.CustomPath
ctx.Data["StaticRootPath"] = setting.StaticRootPath
- ctx.Data["LogRootPath"] = setting.LogRootPath
+ ctx.Data["LogRootPath"] = setting.Log.RootPath
ctx.Data["ScriptType"] = setting.ScriptType
ctx.Data["ReverseProxyAuthUser"] = setting.ReverseProxyAuthUser
ctx.Data["ReverseProxyAuthEmail"] = setting.ReverseProxyAuthEmail
@@ -183,10 +183,10 @@ func Config(ctx *context.Context) {
ctx.Data["EnvVars"] = envVars
ctx.Data["Loggers"] = setting.GetLogDescriptions()
- ctx.Data["EnableAccessLog"] = setting.EnableAccessLog
- ctx.Data["AccessLogTemplate"] = setting.AccessLogTemplate
- ctx.Data["DisableRouterLog"] = setting.DisableRouterLog
- ctx.Data["EnableXORMLog"] = setting.EnableXORMLog
+ ctx.Data["EnableAccessLog"] = setting.Log.EnableAccessLog
+ ctx.Data["AccessLogTemplate"] = setting.Log.AccessLogTemplate
+ ctx.Data["DisableRouterLog"] = setting.Log.DisableRouterLog
+ ctx.Data["EnableXORMLog"] = setting.Log.EnableXORMLog
ctx.Data["LogSQL"] = setting.Database.LogSQL
ctx.HTML(http.StatusOK, tplConfig)