in cleanup.go [436:488]
func doCycle(client DockerClient, lowFreeSpace, freeSpace, lowFreeFiles, freeFiles uint64) error {
err := updateImages(client)
if err != nil {
logrus.Warningln("Failed to update images:", err)
return err
}
err = updateContainers(client)
if err != nil {
logrus.Warningln("Failed to update caches:", err)
return err
}
diskSpace, err := client.DiskSpace(opts.MonitorPath)
if err != nil {
logrus.Warningln("Failed to verify disk space:", err)
return err
}
if diskSpace.BytesFree >= lowFreeSpace && diskSpace.FilesFree >= lowFreeFiles {
if diskSpace.BytesFree >= lowFreeSpace {
logrus.Debugln("Nothing to free. Current free disk space", humanize.Bytes(diskSpace.BytesFree),
"is above the lower bound", humanize.Bytes(lowFreeSpace))
}
if diskSpace.FilesFree >= lowFreeFiles {
logrus.Debugln("Nothing to free. Current free files count", diskSpace.FilesFree,
"is above the lower bound", lowFreeFiles)
}
return nil
}
if diskSpace.BytesFree < lowFreeSpace {
logrus.Warningln("Freeing disk space. The disk space is below the lower bound:", humanize.Bytes(diskSpace.BytesFree),
"trying to free up to:", humanize.Bytes(freeSpace))
}
if diskSpace.FilesFree < lowFreeSpace {
logrus.Warningln("Freeing files count. The free file count is below the lower bound:", diskSpace.FilesFree,
"trying to free up to:", freeFiles)
}
freeSpaceErr := doFreeSpace(client, freeSpace, freeFiles)
if freeSpaceErr != nil {
logrus.Warningln("Failed to free disk space:", freeSpaceErr)
}
currentDiskSpace, err := client.DiskSpace(opts.MonitorPath)
if err == nil {
logrus.Infoln("Freed",
"bytes:", humanize.Bytes(currentDiskSpace.BytesFree-diskSpace.BytesFree),
"files:", currentDiskSpace.FilesFree-diskSpace.FilesFree)
}
return freeSpaceErr
}