initial addition of the diskfree op (#1308)

* initial addition of the diskfree op

fixing up some typos

last of fmt errors

* fixed up some feedbacks
This commit is contained in:
Eric Fode
2018-11-14 09:22:07 -08:00
committed by GitHub
parent 78c1253904
commit 90e39c8fd3
10 changed files with 163 additions and 84 deletions

View File

@@ -41,8 +41,11 @@ type dockerClient interface {
UnpauseContainer(id string, ctx context.Context) error
PullImage(opts docker.PullImageOptions, auth docker.AuthConfiguration) error
InspectImage(ctx context.Context, name string) (*docker.Image, error)
ListImages(opts docker.ListImagesOptions) ([]docker.APIImages, error)
RemoveImage(id string, opts docker.RemoveImageOptions) error
Stats(opts docker.StatsOptions) error
Info(ctx context.Context) (*docker.DockerInfo, error)
DiskUsage(opts docker.DiskUsageOptions) (*docker.DiskUsage, error)
LoadImages(ctx context.Context, filePath string) error
}
@@ -308,6 +311,19 @@ func (d *dockerWrap) LoadImages(ctx context.Context, filePath string) error {
})
}
func (d *dockerWrap) ListImages(opts docker.ListImagesOptions) (imgs []docker.APIImages, err error) {
ctx, closer := makeTracker(opts.Context, "docker_list_images")
defer closer()
logger := common.Logger(ctx).WithField("docker_cmd", "ListImages")
err = d.retry(ctx, logger, func() error {
imgs, err = d.docker.ListImages(opts)
return err
})
return imgs, err
}
func (d *dockerWrap) Info(ctx context.Context) (info *docker.DockerInfo, err error) {
// NOTE: we're not very responsible and prometheus wasn't loved as a child, this
// threads through directly down to the docker call, skipping retires, so that we
@@ -388,6 +404,19 @@ func (d *dockerWrap) PullImage(opts docker.PullImageOptions, auth docker.AuthCon
return err
}
func (d *dockerWrap) RemoveImage(image string, opts docker.RemoveImageOptions) (err error) {
ctx, closer := makeTracker(opts.Context, "docker_remove_image")
defer closer()
logger := common.Logger(ctx).WithField("docker_cmd", "RemoveImage")
err = d.retry(ctx, logger, func() error {
err = d.RemoveImage(image, opts)
return err
})
return err
}
func (d *dockerWrap) RemoveContainer(opts docker.RemoveContainerOptions) (err error) {
ctx, closer := makeTracker(opts.Context, "docker_remove_container")
defer closer()
@@ -448,3 +477,15 @@ func (d *dockerWrap) Stats(opts docker.StatsOptions) (err error) {
//})
//return err
}
func (d *dockerWrap) DiskUsage(opts docker.DiskUsageOptions) (du *docker.DiskUsage, err error) {
ctx, closer := makeTracker(opts.Context, "docker_disk_free")
defer closer()
logger := common.Logger(ctx).WithField("docker_cmd", "DiskUsage")
err = d.retry(ctx, logger, func() error {
du, err = d.docker.DiskUsage(opts)
return err
})
return du, err
}