summaryrefslogtreecommitdiff
path: root/cmd/podman/libpodruntime/runtime.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-04-23 13:32:41 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-04-26 19:14:44 +0000
commit39a7a773a653176e294382bc6301275fd57aff6b (patch)
tree334db314ef5681bd6979e2be91dd39640f8e00ff /cmd/podman/libpodruntime/runtime.go
parent0ccfd7dc20c11bc2f9d646c98cc67fb399cd9013 (diff)
downloadpodman-39a7a773a653176e294382bc6301275fd57aff6b.tar.gz
podman-39a7a773a653176e294382bc6301275fd57aff6b.tar.bz2
podman-39a7a773a653176e294382bc6301275fd57aff6b.zip
varlink images
implement varlink image functions for working with libpod with the exception of a couple due to incompletions on the libpod side of things (build). also, created a first pass at a libpodpy package which will stand as a client to working with libpod's varlink methods using python. Signed-off-by: baude <bbaude@redhat.com> Closes: #669 Approved by: baude
Diffstat (limited to 'cmd/podman/libpodruntime/runtime.go')
-rw-r--r--cmd/podman/libpodruntime/runtime.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/cmd/podman/libpodruntime/runtime.go b/cmd/podman/libpodruntime/runtime.go
new file mode 100644
index 000000000..f9c14f6e7
--- /dev/null
+++ b/cmd/podman/libpodruntime/runtime.go
@@ -0,0 +1,59 @@
+package libpodruntime
+
+import (
+ "github.com/containers/storage"
+ "github.com/projectatomic/libpod/libpod"
+ "github.com/urfave/cli"
+)
+
+// GetRuntime generates a new libpod runtime configured by command line options
+func GetRuntime(c *cli.Context) (*libpod.Runtime, error) {
+ options := []libpod.RuntimeOption{}
+
+ if c.GlobalIsSet("root") || c.GlobalIsSet("runroot") ||
+ c.GlobalIsSet("storage-opt") || c.GlobalIsSet("storage-driver") {
+ storageOpts := storage.DefaultStoreOptions
+
+ if c.GlobalIsSet("root") {
+ storageOpts.GraphRoot = c.GlobalString("root")
+ }
+ if c.GlobalIsSet("runroot") {
+ storageOpts.RunRoot = c.GlobalString("runroot")
+ }
+ if c.GlobalIsSet("storage-driver") {
+ storageOpts.GraphDriverName = c.GlobalString("storage-driver")
+ }
+ if c.GlobalIsSet("storage-opt") {
+ storageOpts.GraphDriverOptions = c.GlobalStringSlice("storage-opt")
+ }
+
+ options = append(options, libpod.WithStorageConfig(storageOpts))
+ }
+
+ // TODO CLI flags for image config?
+ // TODO CLI flag for signature policy?
+
+ if c.GlobalIsSet("runtime") {
+ options = append(options, libpod.WithOCIRuntime(c.GlobalString("runtime")))
+ }
+
+ if c.GlobalIsSet("conmon") {
+ options = append(options, libpod.WithConmonPath(c.GlobalString("conmon")))
+ }
+
+ // TODO flag to set CGroup manager?
+ // TODO flag to set libpod static dir?
+ // TODO flag to set libpod tmp dir?
+
+ if c.GlobalIsSet("cni-config-dir") {
+ options = append(options, libpod.WithCNIConfigDir(c.GlobalString("cni-config-dir")))
+ }
+ if c.GlobalIsSet("default-mounts-file") {
+ options = append(options, libpod.WithDefaultMountsFile(c.GlobalString("default-mounts-file")))
+ }
+ options = append(options, libpod.WithHooksDir(c.GlobalString("hooks-dir-path")))
+
+ // TODO flag to set CNI plugins dir?
+
+ return libpod.NewRuntime(options...)
+}