mirror of
https://github.com/project-zot/zot.git
synced 2026-06-15 20:07:55 +08:00
make gc periodic
Signed-off-by: Andreea-Lupu <andreealupu1470@yahoo.com>
This commit is contained in:
committed by
Ramkumar Chinchani
parent
89c5f4f604
commit
5e35dfa28f
+17
-3
@@ -209,9 +209,23 @@ func validateConfiguration(config *config.Config) error {
|
||||
return errors.ErrBadConfig
|
||||
}
|
||||
|
||||
if !config.Storage.GC && config.Storage.GCDelay != 0 {
|
||||
log.Warn().Err(errors.ErrBadConfig).
|
||||
Msg("garbage-collect delay specified without enabling garbage-collect, will be ignored")
|
||||
if config.Storage.GCInterval < 0 {
|
||||
log.Error().Err(errors.ErrBadConfig).
|
||||
Msgf("invalid garbage-collect interval %v specified", config.Storage.GCInterval)
|
||||
|
||||
return errors.ErrBadConfig
|
||||
}
|
||||
|
||||
if !config.Storage.GC {
|
||||
if config.Storage.GCDelay != 0 {
|
||||
log.Warn().Err(errors.ErrBadConfig).
|
||||
Msg("garbage-collect delay specified without enabling garbage-collect, will be ignored")
|
||||
}
|
||||
|
||||
if config.Storage.GCInterval != 0 {
|
||||
log.Warn().Err(errors.ErrBadConfig).
|
||||
Msg("periodic garbage-collect interval specified without enabling garbage-collect, will be ignored")
|
||||
}
|
||||
}
|
||||
|
||||
// check authorization config, it should have basic auth enabled or ldap
|
||||
|
||||
@@ -312,6 +312,8 @@ func TestGC(t *testing.T) {
|
||||
err = cli.LoadConfiguration(config, "../../examples/config-gc.json")
|
||||
So(err, ShouldBeNil)
|
||||
So(config.Storage.GCDelay, ShouldNotEqual, storage.DefaultGCDelay)
|
||||
err = cli.LoadConfiguration(config, "../../examples/config-gc-periodic.json")
|
||||
So(err, ShouldBeNil)
|
||||
})
|
||||
|
||||
Convey("Test GC config corner cases", t, func(c C) {
|
||||
@@ -336,6 +338,26 @@ func TestGC(t *testing.T) {
|
||||
So(err, ShouldBeNil)
|
||||
})
|
||||
|
||||
Convey("GC interval without GC", func() {
|
||||
config := config.New()
|
||||
err = json.Unmarshal(contents, config)
|
||||
config.Storage.GC = false
|
||||
config.Storage.GCDelay = 0
|
||||
config.Storage.GCInterval = 24 * time.Hour
|
||||
|
||||
file, err := ioutil.TempFile("", "gc-config-*.json")
|
||||
So(err, ShouldBeNil)
|
||||
defer os.Remove(file.Name())
|
||||
|
||||
contents, err = json.MarshalIndent(config, "", " ")
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
err = ioutil.WriteFile(file.Name(), contents, 0o600)
|
||||
So(err, ShouldBeNil)
|
||||
err = cli.LoadConfiguration(config, file.Name())
|
||||
So(err, ShouldBeNil)
|
||||
})
|
||||
|
||||
Convey("Negative GC delay", func() {
|
||||
config := config.New()
|
||||
err = json.Unmarshal(contents, config)
|
||||
@@ -371,6 +393,24 @@ func TestGC(t *testing.T) {
|
||||
So(err, ShouldBeNil)
|
||||
So(config.Storage.GCDelay, ShouldEqual, 0)
|
||||
})
|
||||
|
||||
Convey("Negative GC interval", func() {
|
||||
config := config.New()
|
||||
err = json.Unmarshal(contents, config)
|
||||
config.Storage.GCInterval = -1 * time.Second
|
||||
|
||||
file, err := ioutil.TempFile("", "gc-config-*.json")
|
||||
So(err, ShouldBeNil)
|
||||
defer os.Remove(file.Name())
|
||||
|
||||
contents, err = json.MarshalIndent(config, "", " ")
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
err = ioutil.WriteFile(file.Name(), contents, 0o600)
|
||||
So(err, ShouldBeNil)
|
||||
err = cli.LoadConfiguration(config, file.Name())
|
||||
So(err, ShouldNotBeNil)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user