From 54f0293f0ab73f357f545f8e05d16f9b254aba5e Mon Sep 17 00:00:00 2001 From: Jonas Date: Sat, 8 Apr 2017 17:27:26 +0200 Subject: Mirror sync interval specified as duration string (#1407) * Sync interval specifed as duration string * Changed mirror interval text * make fmt * Add MinInterval for mirror sync * Use duration internally * Changed min default to 10m * make fmt * Incorrect default * Removed defaults in MustDuration() * Add Mirror interval migration * Default values corrected * Use transaction during migration * Change http 500 to page with error message * Cleanup session.commit() --- modules/auth/repo_form.go | 2 +- modules/setting/setting.go | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'modules') diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go index 7fdb5e67e2..dd3fbff7bf 100644 --- a/modules/auth/repo_form.go +++ b/modules/auth/repo_form.go @@ -88,7 +88,7 @@ type RepoSettingForm struct { RepoName string `binding:"Required;AlphaDashDot;MaxSize(100)"` Description string `binding:"MaxSize(255)"` Website string `binding:"Url;MaxSize(255)"` - Interval int + Interval string MirrorAddress string Private bool EnablePrune bool diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 5a0666ade2..c2e08b0c14 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -417,10 +417,9 @@ var ( } // Mirror settings - Mirror = struct { - DefaultInterval int - }{ - DefaultInterval: 8, + Mirror struct { + DefaultInterval time.Duration + MinInterval time.Duration } // API settings @@ -886,14 +885,20 @@ please consider changing to GITEA_CUSTOM`) log.Fatal(4, "Failed to map Cron settings: %v", err) } else if err = Cfg.Section("git").MapTo(&Git); err != nil { log.Fatal(4, "Failed to map Git settings: %v", err) - } else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil { - log.Fatal(4, "Failed to map Mirror settings: %v", err) } else if err = Cfg.Section("api").MapTo(&API); err != nil { log.Fatal(4, "Failed to map API settings: %v", err) } - if Mirror.DefaultInterval <= 0 { - Mirror.DefaultInterval = 24 + sec = Cfg.Section("mirror") + Mirror.MinInterval = sec.Key("MIN_INTERVAL").MustDuration(10 * time.Minute) + Mirror.DefaultInterval = sec.Key("DEFAULT_INTERVAL").MustDuration(8 * time.Hour) + if Mirror.MinInterval.Minutes() < 1 { + log.Warn("Mirror.MinInterval is too low") + Mirror.MinInterval = 1 * time.Minute + } + if Mirror.DefaultInterval < Mirror.MinInterval { + log.Warn("Mirror.DefaultInterval is less than Mirror.MinInterval") + Mirror.DefaultInterval = time.Hour * 8 } Langs = Cfg.Section("i18n").Key("LANGS").Strings(",") -- cgit v1.2.3