From a53990fd59ee880509db59f433f252d6a6493c9a Mon Sep 17 00:00:00 2001 From: Morgan Bauer Date: Fri, 26 Aug 2016 15:25:06 -0700 Subject: [PATCH] Use the rawTerminal setting from the container itself --- pkg/kubelet/dockershim/legacy.go | 6 +++++- pkg/kubelet/dockertools/docker_manager.go | 11 ++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/kubelet/dockershim/legacy.go b/pkg/kubelet/dockershim/legacy.go index 459a1215f43..1f5068c33ca 100644 --- a/pkg/kubelet/dockershim/legacy.go +++ b/pkg/kubelet/dockershim/legacy.go @@ -36,7 +36,11 @@ func (ds *dockerService) AttachContainer(id kubecontainer.ContainerID, stdin io. } func (ds *dockerService) GetContainerLogs(pod *api.Pod, containerID kubecontainer.ContainerID, logOptions *api.PodLogOptions, stdout, stderr io.Writer) (err error) { - return dockertools.GetContainerLogs(ds.client, pod, containerID, logOptions, stdout, stderr) + container, err := ds.client.InspectContainer(containerID.ID) + if err != nil { + return err + } + return dockertools.GetContainerLogs(ds.client, pod, containerID, logOptions, stdout, stderr, container.Config.Tty) } func (ds *dockerService) PortForward(sandboxID string, port uint16, stream io.ReadWriteCloser) error { diff --git a/pkg/kubelet/dockertools/docker_manager.go b/pkg/kubelet/dockertools/docker_manager.go index 96e0e8ac212..123e57a229c 100644 --- a/pkg/kubelet/dockertools/docker_manager.go +++ b/pkg/kubelet/dockertools/docker_manager.go @@ -289,12 +289,16 @@ func NewDockerManager( // "100" or "all") to tail the log. // TODO: Make 'RawTerminal' option flagable. func (dm *DockerManager) GetContainerLogs(pod *api.Pod, containerID kubecontainer.ContainerID, logOptions *api.PodLogOptions, stdout, stderr io.Writer) error { - return GetContainerLogs(dm.client, pod, containerID, logOptions, stdout, stderr) + container, err := dm.client.InspectContainer(containerID.ID) + if err != nil { + return err + } + return GetContainerLogs(dm.client, pod, containerID, logOptions, stdout, stderr, container.Config.Tty) } // Temporarily export this function to share with dockershim. // TODO: clean this up. -func GetContainerLogs(client DockerInterface, pod *api.Pod, containerID kubecontainer.ContainerID, logOptions *api.PodLogOptions, stdout, stderr io.Writer) error { +func GetContainerLogs(client DockerInterface, pod *api.Pod, containerID kubecontainer.ContainerID, logOptions *api.PodLogOptions, stdout, stderr io.Writer, rawTerm bool) error { var since int64 if logOptions.SinceSeconds != nil { t := unversioned.Now().Add(-time.Duration(*logOptions.SinceSeconds) * time.Second) @@ -313,10 +317,11 @@ func GetContainerLogs(client DockerInterface, pod *api.Pod, containerID kubecont if logOptions.TailLines != nil { opts.Tail = strconv.FormatInt(*logOptions.TailLines, 10) } + sopts := StreamOptions{ OutputStream: stdout, ErrorStream: stderr, - RawTerminal: false, + RawTerminal: rawTerm, } return client.Logs(containerID.ID, opts, sopts) }