diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-05-02 22:33:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-02 22:33:09 +0200 |
commit | b5e5585ada50a887f439e513c5deae30c89648de (patch) | |
tree | 795c9e94db4d51012f40ccd0287504d39a4de83b /pkg/varlinkapi | |
parent | 6bcbb88715fd9cab45eb668bba5ba83228e16883 (diff) | |
parent | c18ad2bfd9034fe6b80e3f33c076af731be6778b (diff) | |
download | podman-b5e5585ada50a887f439e513c5deae30c89648de.tar.gz podman-b5e5585ada50a887f439e513c5deae30c89648de.tar.bz2 podman-b5e5585ada50a887f439e513c5deae30c89648de.zip |
Merge pull request #2985 from baude/generatesystemd
Generate Systemd
Diffstat (limited to 'pkg/varlinkapi')
-rw-r--r-- | pkg/varlinkapi/generate.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pkg/varlinkapi/generate.go b/pkg/varlinkapi/generate.go index bc600c397..9dc20d582 100644 --- a/pkg/varlinkapi/generate.go +++ b/pkg/varlinkapi/generate.go @@ -6,6 +6,7 @@ import ( "encoding/json" "github.com/containers/libpod/cmd/podman/shared" iopodman "github.com/containers/libpod/cmd/podman/varlink" + "github.com/containers/libpod/pkg/systemdgen" ) // GenerateKube ... @@ -28,3 +29,24 @@ func (i *LibpodAPI) GenerateKube(call iopodman.VarlinkCall, name string, service Service: string(servB), }) } + +// GenerateSystemd ... +func (i *LibpodAPI) GenerateSystemd(call iopodman.VarlinkCall, nameOrID, restart string, stopTimeout int64, useName bool) error { + ctr, err := i.Runtime.LookupContainer(nameOrID) + if err != nil { + return call.ReplyErrorOccurred(err.Error()) + } + timeout := int(ctr.StopTimeout()) + if stopTimeout >= 0 { + timeout = int(stopTimeout) + } + name := ctr.ID() + if useName { + name = ctr.Name() + } + unit, err := systemdgen.CreateSystemdUnitAsString(name, ctr.ID(), restart, ctr.Config().StaticDir, timeout) + if err != nil { + return call.ReplyErrorOccurred(err.Error()) + } + return call.ReplyGenerateSystemd(unit) +} |