diff options
author | Paul Holzinger <paul.holzinger@web.de> | 2020-08-05 09:29:59 +0200 |
---|---|---|
committer | Paul Holzinger <paul.holzinger@web.de> | 2020-09-02 22:06:19 +0200 |
commit | ebfea2f4f89328ec3f74a8deedb3e727ce89ea59 (patch) | |
tree | efbc2519efc370db670948a6e3a709e4a7e5f2d0 /pkg/bindings/generate | |
parent | 1184cdf03d8464451d36b24643e57b65a8b97980 (diff) | |
download | podman-ebfea2f4f89328ec3f74a8deedb3e727ce89ea59.tar.gz podman-ebfea2f4f89328ec3f74a8deedb3e727ce89ea59.tar.bz2 podman-ebfea2f4f89328ec3f74a8deedb3e727ce89ea59.zip |
APIv2 add generate systemd endpoint
Add support for generating systemd units
via the api and podman-remote.
Change the GenerateSystemdReport type to return the
units as map[string]string with the unit name as key.
Add `--format` flag to `podman generate systemd`
to allow the output to be formatted as json.
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
Diffstat (limited to 'pkg/bindings/generate')
-rw-r--r-- | pkg/bindings/generate/generate.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pkg/bindings/generate/generate.go b/pkg/bindings/generate/generate.go index b02221765..dde1cc29c 100644 --- a/pkg/bindings/generate/generate.go +++ b/pkg/bindings/generate/generate.go @@ -10,6 +10,33 @@ import ( "github.com/containers/podman/v2/pkg/domain/entities" ) +func Systemd(ctx context.Context, nameOrID string, options entities.GenerateSystemdOptions) (*entities.GenerateSystemdReport, error) { + conn, err := bindings.GetClient(ctx) + if err != nil { + return nil, err + } + params := url.Values{} + + params.Set("useName", strconv.FormatBool(options.Name)) + params.Set("new", strconv.FormatBool(options.New)) + if options.RestartPolicy != "" { + params.Set("restartPolicy", options.RestartPolicy) + } + if options.StopTimeout != nil { + params.Set("stopTimeout", strconv.FormatUint(uint64(*options.StopTimeout), 10)) + } + params.Set("containerPrefix", options.ContainerPrefix) + params.Set("podPrefix", options.PodPrefix) + params.Set("separator", options.Separator) + + response, err := conn.DoRequest(nil, http.MethodGet, "/generate/%s/systemd", params, nil, nameOrID) + if err != nil { + return nil, err + } + report := &entities.GenerateSystemdReport{} + return report, response.Process(&report.Units) +} + func Kube(ctx context.Context, nameOrID string, options entities.GenerateKubeOptions) (*entities.GenerateKubeReport, error) { conn, err := bindings.GetClient(ctx) if err != nil { |