2018-02-05 21:05:59 +00:00
|
|
|
package events // import "github.com/docker/docker/api/types/events"
|
2016-09-06 18:18:12 +00:00
|
|
|
|
|
|
|
const (
|
API: add "prune" events
This patch adds a new "prune" event type to indicate that pruning of a resource
type completed.
This event-type can be used on systems that want to perform actions after
resources have been cleaned up. For example, Docker Desktop performs an fstrim
after resources are deleted (https://github.com/linuxkit/linuxkit/tree/v0.7/pkg/trim-after-delete).
While the current (remove, destroy) events can provide information on _most_
resources, there is currently no event triggered after the BuildKit build-cache
is cleaned.
Prune events have a `reclaimed` attribute, indicating the amount of space that
was reclaimed (in bytes). The attribute can be used, for example, to use as a
threshold for performing fstrim actions. Reclaimed space for `network` events
will always be 0, but the field is added to be consistent with prune events for
other resources.
To test this patch:
Create some resources:
for i in foo bar baz; do \
docker network create network_$i \
&& docker volume create volume_$i \
&& docker run -d --name container_$i -v volume_$i:/volume busybox sh -c 'truncate -s 5M somefile; truncate -s 5M /volume/file' \
&& docker tag busybox:latest image_$i; \
done;
docker pull alpine
docker pull nginx:alpine
echo -e "FROM busybox\nRUN truncate -s 50M bigfile" | DOCKER_BUILDKIT=1 docker build -
Start listening for "prune" events in another shell:
docker events --filter event=prune
Prune containers, networks, volumes, and build-cache:
docker system prune -af --volumes
See the events that are returned:
docker events --filter event=prune
2020-07-25T12:12:09.268491000Z container prune (reclaimed=15728640)
2020-07-25T12:12:09.447890400Z network prune (reclaimed=0)
2020-07-25T12:12:09.452323000Z volume prune (reclaimed=15728640)
2020-07-25T12:12:09.517236200Z image prune (reclaimed=21568540)
2020-07-25T12:12:09.566662600Z builder prune (reclaimed=52428841)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-25 12:14:38 +00:00
|
|
|
// BuilderEventType is the event type that the builder generates
|
|
|
|
BuilderEventType = "builder"
|
2016-09-06 18:18:12 +00:00
|
|
|
// ContainerEventType is the event type that containers generate
|
|
|
|
ContainerEventType = "container"
|
|
|
|
// DaemonEventType is the event type that daemon generate
|
|
|
|
DaemonEventType = "daemon"
|
|
|
|
// ImageEventType is the event type that images generate
|
|
|
|
ImageEventType = "image"
|
|
|
|
// NetworkEventType is the event type that networks generate
|
|
|
|
NetworkEventType = "network"
|
|
|
|
// PluginEventType is the event type that plugins generate
|
|
|
|
PluginEventType = "plugin"
|
|
|
|
// VolumeEventType is the event type that volumes generate
|
|
|
|
VolumeEventType = "volume"
|
2017-04-02 22:21:56 +00:00
|
|
|
// ServiceEventType is the event type that services generate
|
|
|
|
ServiceEventType = "service"
|
|
|
|
// NodeEventType is the event type that nodes generate
|
|
|
|
NodeEventType = "node"
|
|
|
|
// SecretEventType is the event type that secrets generate
|
|
|
|
SecretEventType = "secret"
|
2017-07-10 03:41:25 +00:00
|
|
|
// ConfigEventType is the event type that configs generate
|
|
|
|
ConfigEventType = "config"
|
2016-09-06 18:18:12 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// Actor describes something that generates events,
|
|
|
|
// like a container, or a network, or a volume.
|
|
|
|
// It has a defined name and a set or attributes.
|
|
|
|
// The container attributes are its labels, other actors
|
|
|
|
// can generate these attributes from other properties.
|
|
|
|
type Actor struct {
|
|
|
|
ID string
|
|
|
|
Attributes map[string]string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Message represents the information an event contains
|
|
|
|
type Message struct {
|
|
|
|
// Deprecated information from JSONMessage.
|
|
|
|
// With data only in container events.
|
|
|
|
Status string `json:"status,omitempty"`
|
|
|
|
ID string `json:"id,omitempty"`
|
|
|
|
From string `json:"from,omitempty"`
|
|
|
|
|
|
|
|
Type string
|
|
|
|
Action string
|
|
|
|
Actor Actor
|
2017-04-02 22:21:56 +00:00
|
|
|
// Engine events are local scope. Cluster events are swarm scope.
|
|
|
|
Scope string `json:"scope,omitempty"`
|
2016-09-06 18:18:12 +00:00
|
|
|
|
|
|
|
Time int64 `json:"time,omitempty"`
|
|
|
|
TimeNano int64 `json:"timeNano,omitempty"`
|
|
|
|
}
|