aboutsummaryrefslogtreecommitdiff
path: root/pkg/bindings/system
diff options
context:
space:
mode:
authorSujil02 <sushah@redhat.com>2020-04-20 10:10:41 -0400
committerSujil02 <sushah@redhat.com>2020-04-24 15:44:07 -0400
commit5436e314417e4822d105d1efdbea4e5442d6f42d (patch)
tree053522aff93f36e441d91673f296c47e685f9ce1 /pkg/bindings/system
parent02c2fbc4cd72524dfa65ba36bddfd5c4076a9512 (diff)
downloadpodman-5436e314417e4822d105d1efdbea4e5442d6f42d.tar.gz
podman-5436e314417e4822d105d1efdbea4e5442d6f42d.tar.bz2
podman-5436e314417e4822d105d1efdbea4e5442d6f42d.zip
Adding system prune for podman v2
Register system prune route, handler to support system prune, Adds testcase to validate the system prune flow. Signed-off-by: Sujil02 <sushah@redhat.com>
Diffstat (limited to 'pkg/bindings/system')
-rw-r--r--pkg/bindings/system/system.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkg/bindings/system/system.go b/pkg/bindings/system/system.go
index fce8bbb8e..aee9a7ffd 100644
--- a/pkg/bindings/system/system.go
+++ b/pkg/bindings/system/system.go
@@ -6,9 +6,11 @@ import (
"io"
"net/http"
"net/url"
+ "strconv"
"github.com/containers/libpod/pkg/api/handlers"
"github.com/containers/libpod/pkg/bindings"
+ "github.com/containers/libpod/pkg/domain/entities"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -59,3 +61,26 @@ func Events(ctx context.Context, eventChan chan (handlers.Event), cancelChan cha
}
return nil
}
+
+// Prune removes all unused system data.
+func Prune(ctx context.Context, all, volumes *bool) (*entities.SystemPruneReport, error) {
+ var (
+ report entities.SystemPruneReport
+ )
+ conn, err := bindings.GetClient(ctx)
+ if err != nil {
+ return nil, err
+ }
+ params := url.Values{}
+ if all != nil {
+ params.Set("All", strconv.FormatBool(*all))
+ }
+ if volumes != nil {
+ params.Set("Volumes", strconv.FormatBool(*volumes))
+ }
+ response, err := conn.DoRequest(nil, http.MethodPost, "/system/prune", params)
+ if err != nil {
+ return nil, err
+ }
+ return &report, response.Process(&report)
+}