Add remote streaming implementation.
This commit is contained in:
		| @@ -21,6 +21,7 @@ go_library( | |||||||
|         "//pkg/kubelet/api:go_default_library", |         "//pkg/kubelet/api:go_default_library", | ||||||
|         "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", |         "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", | ||||||
|         "//pkg/kubelet/dockershim:go_default_library", |         "//pkg/kubelet/dockershim:go_default_library", | ||||||
|  |         "//pkg/util/exec:go_default_library", | ||||||
|         "//pkg/util/interrupt:go_default_library", |         "//pkg/util/interrupt:go_default_library", | ||||||
|         "//vendor:github.com/golang/glog", |         "//vendor:github.com/golang/glog", | ||||||
|         "//vendor:golang.org/x/net/context", |         "//vendor:golang.org/x/net/context", | ||||||
|   | |||||||
| @@ -18,12 +18,14 @@ package remote | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
|  |  | ||||||
| 	internalApi "k8s.io/kubernetes/pkg/kubelet/api" | 	internalApi "k8s.io/kubernetes/pkg/kubelet/api" | ||||||
| 	runtimeApi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" | 	runtimeApi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" | ||||||
| 	"k8s.io/kubernetes/pkg/kubelet/dockershim" | 	"k8s.io/kubernetes/pkg/kubelet/dockershim" | ||||||
|  | 	utilexec "k8s.io/kubernetes/pkg/util/exec" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // DockerService is the interface implement CRI remote service server. | // DockerService is the interface implement CRI remote service server. | ||||||
| @@ -138,7 +140,20 @@ func (d *dockerService) ContainerStatus(ctx context.Context, r *runtimeApi.Conta | |||||||
| } | } | ||||||
|  |  | ||||||
| func (d *dockerService) ExecSync(ctx context.Context, r *runtimeApi.ExecSyncRequest) (*runtimeApi.ExecSyncResponse, error) { | func (d *dockerService) ExecSync(ctx context.Context, r *runtimeApi.ExecSyncRequest) (*runtimeApi.ExecSyncResponse, error) { | ||||||
| 	return nil, fmt.Errorf("not implemented") | 	stdout, stderr, err := d.runtimeService.ExecSync(r.GetContainerId(), r.GetCmd(), time.Duration(r.GetTimeout())*time.Second) | ||||||
|  | 	var exitCode int32 | ||||||
|  | 	if err != nil { | ||||||
|  | 		exitError, ok := err.(utilexec.ExitError) | ||||||
|  | 		if !ok { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		exitCode = int32(exitError.ExitStatus()) | ||||||
|  | 	} | ||||||
|  | 	return &runtimeApi.ExecSyncResponse{ | ||||||
|  | 		Stdout:   stdout, | ||||||
|  | 		Stderr:   stderr, | ||||||
|  | 		ExitCode: &exitCode, | ||||||
|  | 	}, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (d *dockerService) Exec(ctx context.Context, r *runtimeApi.ExecRequest) (*runtimeApi.ExecResponse, error) { | func (d *dockerService) Exec(ctx context.Context, r *runtimeApi.ExecRequest) (*runtimeApi.ExecResponse, error) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Random-Liu
					Random-Liu