Only allocate tty when -t

In our ezrly development, we always allocated a tty when not -d.  Now we should only allocated when the user asks for it.

Resolves: #573

Signed-off-by: baude <bbaude@redhat.com>

Closes: #574
Approved by: rhatdan
This commit is contained in:
baude
2018-04-02 09:20:13 -05:00
committed by Atomic Bot
parent b1a8d769b8
commit 35a10c9ba5
3 changed files with 3 additions and 21 deletions

View File

@ -447,13 +447,7 @@ func parseCreateOpts(c *cli.Context, runtime *libpod.Runtime, imageName string,
return nil, err
}
// Because we cannot do a non-terminal attach, we need to set tty to true
// if detach is not false
// TODO Allow non-terminal attach
tty := c.Bool("tty")
if !c.Bool("detach") && !tty {
tty = true
}
pidMode := container.PidMode(c.String("pid"))
if !pidMode.Valid() {

View File

@ -83,18 +83,6 @@ func (c *Container) attachContainerSocket(resize <-chan remotecommand.TerminalSi
outputStream := os.Stdout
errorStream := os.Stderr
defer inputStream.Close()
// TODO Renable this when tty/terminal discussion is had.
/*
tty, err := strconv.ParseBool(c.runningSpec.Annotations["io.kubernetes.cri-o.TTY"])
if err != nil {
return errors.Wrapf(err, "unable to parse annotations in %s", c.ID)
}
if !tty {
return errors.Errorf("no tty available for %s", c.ID())
}
*/
if terminal.IsTerminal(int(inputStream.Fd())) {
oldTermState, err := term.SaveState(inputStream.Fd())
if err != nil {
@ -104,8 +92,8 @@ func (c *Container) attachContainerSocket(resize <-chan remotecommand.TerminalSi
defer term.RestoreTerminal(inputStream.Fd(), oldTermState)
}
// Put both input and output into raw
if !noStdIn {
// Put both input and output into raw when we have a terminal
if !noStdIn && c.config.Spec.Process.Terminal {
term.SetRawTerminal(inputStream.Fd())
}

View File

@ -69,7 +69,7 @@ var _ = Describe("Podman privileged container tests", func() {
})
It("podman non-privileged should have very few devices", func() {
session := podmanTest.Podman([]string{"run", "busybox", "ls", "-l", "/dev"})
session := podmanTest.Podman([]string{"run", "-t", "busybox", "ls", "-l", "/dev"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(len(session.OutputToStringArray())).To(Equal(18))