mirror of
https://github.com/offen/docker-volume-backup.git
synced 2024-11-10 00:30:29 +01:00
Frederik Ring
c3daeacecb
* Query for labeled services as well * Try scaling down services * Scale services back up * Use progress tool from Docker CLI * In test, label both services * Clean up error and log messages * Document scale-up/down approach in docs * Downgrade Docker CLI to match client * Document services stats * Do not rely on PreviousSpec for storing desired replica count * Log warnings from Docker when updating services * Check whether container and service labels collide * Document script behavior on label collision * Add additional check if all containers have been removed * Scale services concurrently * Move docker interaction code into own file * Factor out code for service updating * Time out after five minutes of not reaching desired container count * Inline handling of in-swarm container level restart * Timer is more suitable for timeout race * Timeout when scaling down services should be configurable * Choose better filename * Reflect changes in naming * Rename and deprecate BACKUP_STOP_CONTAINER_LABEL * Improve logging * Further simplify logging
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
// Copyright 2022 - Offen Authors <hioffen@posteo.de>
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
// ContainersStats stats about the docker containers
|
|
type ContainersStats struct {
|
|
All uint
|
|
ToStop uint
|
|
Stopped uint
|
|
StopErrors uint
|
|
}
|
|
|
|
// ServicesStats contains info about Swarm services that have been
|
|
// operated upon
|
|
type ServicesStats struct {
|
|
All uint
|
|
ToScaleDown uint
|
|
ScaledDown uint
|
|
ScaleDownErrors uint
|
|
}
|
|
|
|
// BackupFileStats stats about the created backup file
|
|
type BackupFileStats struct {
|
|
Name string
|
|
FullPath string
|
|
Size uint64
|
|
}
|
|
|
|
// StorageStats stats about the status of an archival directory
|
|
type StorageStats struct {
|
|
Total uint
|
|
Pruned uint
|
|
PruneErrors uint
|
|
}
|
|
|
|
// Stats global stats regarding script execution
|
|
type Stats struct {
|
|
sync.Mutex
|
|
StartTime time.Time
|
|
EndTime time.Time
|
|
TookTime time.Duration
|
|
LockedTime time.Duration
|
|
LogOutput *bytes.Buffer
|
|
Containers ContainersStats
|
|
Services ServicesStats
|
|
BackupFile BackupFileStats
|
|
Storages map[string]StorageStats
|
|
}
|