podman-remote create|run

add the ability to create and run containers via the podman-remote
client.

we now create an intermediate layer from the the create/run cli flags.
the intermediate layer can be converted into a createconfig or into a
varlink struct.  Once transported, the varlink struct can be converted
back to an intermediate layer and then to a createconfig.

remote terminals are not supported yet.

Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
baude
2019-03-20 13:00:34 -05:00
parent d86729e743
commit ba65301c95
33 changed files with 1630 additions and 859 deletions

View File

@@ -4,8 +4,7 @@ import (
"fmt"
"github.com/containers/libpod/cmd/podman/cliconfig"
"github.com/containers/libpod/cmd/podman/libpodruntime"
"github.com/containers/libpod/cmd/podman/shared"
"github.com/containers/libpod/pkg/adapter"
"github.com/opentracing/opentracing-go"
"github.com/pkg/errors"
"github.com/spf13/cobra"
@@ -52,18 +51,17 @@ func createCmd(c *cliconfig.CreateValues) error {
return err
}
runtime, err := libpodruntime.GetRuntime(&c.PodmanCommand)
runtime, err := adapter.GetRuntime(&c.PodmanCommand)
if err != nil {
return errors.Wrapf(err, "error creating libpod runtime")
}
defer runtime.Shutdown(false)
ctr, _, err := shared.CreateContainer(getContext(), &c.PodmanCommand, runtime)
cid, err := runtime.CreateContainer(getContext(), c)
if err != nil {
return err
}
fmt.Printf("%s\n", ctr.ID())
fmt.Printf("%s\n", cid)
return nil
}