Browse Source

Feature #3398: Redefine global mirror interval (#3409)

* add mirror::GLOBAL_INTERVAL on app.ini

* rename key to DEFAULT_INTERVAL

* add key on default app.ini + move code
Thibault Meyer 8 years ago
parent
commit
fc68fb951c
3 changed files with 16 additions and 2 deletions
  1. 4 0
      conf/app.ini
  2. 2 2
      models/repo.go
  3. 10 0
      modules/setting/setting.go

+ 4 - 0
conf/app.ini

@@ -359,6 +359,10 @@ CLONE = 300
 PULL = 300
 GC = 60
 
+[mirror]
+; Default interval in hours between each check
+DEFAULT_INTERVAL = 24
+
 [api]
 ; Max number of items will response in a page
 MAX_RESPONSE_ITEMS = 50

+ 2 - 2
models/repo.go

@@ -724,9 +724,9 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) {
 	if opts.IsMirror {
 		if _, err = x.InsertOne(&Mirror{
 			RepoID:      repo.ID,
-			Interval:    24,
+			Interval:    setting.Mirror.DefaultInterval,
 			EnablePrune: true,
-			NextUpdate:  time.Now().Add(24 * time.Hour),
+			NextUpdate:  time.Now().Add(time.Duration(setting.Mirror.DefaultInterval) * time.Hour),
 		}); err != nil {
 			return repo, fmt.Errorf("InsertOne: %v", err)
 		}

+ 10 - 0
modules/setting/setting.go

@@ -208,6 +208,10 @@ var (
 		} `ini:"git.timeout"`
 	}
 
+	Mirror struct {
+		DefaultInterval int
+	}
+
 	// API settings
 	API struct {
 		MaxResponseItems int
@@ -514,6 +518,12 @@ func NewContext() {
 		log.Fatal(4, "Fail to map Git settings: %v", err)
 	} else if err = Cfg.Section("api").MapTo(&API); err != nil {
 		log.Fatal(4, "Fail to map API settings: %v", err)
+	} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil {
+		log.Fatal(4, "Fail to map API settings: %v", err)
+	}
+
+	if Mirror.DefaultInterval <= 0 {
+		Mirror.DefaultInterval = 24
 	}
 
 	Langs = Cfg.Section("i18n").Key("LANGS").Strings(",")