podterminal/pods/garbageCollector.go

49 lines
936 B
Go

package pods
import (
"log"
"time"
"github.com/containers/podman/v4/pkg/bindings/volumes"
"github.com/spf13/viper"
)
// GarbageCollector is a goroutine that cleans up old Containers
func GarbageCollector() error {
if viper.GetBool("timeout_on_restart") {
timeoutExistingContainers()
}
for {
err := Cleanup()
if err != nil {
return err
}
time.Sleep(time.Minute * 10)
}
}
func timeoutExistingContainers() {
var oldContainers []string
for _, container := range containerList() {
oldContainers = append(oldContainers, container.ID)
}
OldContainers = append(OldContainers, oldContainers...)
log.Println("old Containers: ", oldContainers)
}
func pruneVolumes() error {
results, err := volumes.Prune(Socket, nil)
if err != nil {
return err
}
resultLen := len(results)
for i, result := range results {
log.Printf("[%d/%d] %s %d MB", i, resultLen, result.Id, result.Size/1024/1024)
}
return nil
}