Merge pull request #544 from runcom/fix-panics
[e2e fix] server: add nil checks to not panic
This commit is contained in:
commit
fa8d5c035a
3 changed files with 14 additions and 2 deletions
|
@ -29,8 +29,11 @@ func (s *Server) Exec(ctx context.Context, req *pb.ExecRequest) (*pb.ExecRespons
|
||||||
|
|
||||||
// Exec endpoint for streaming.Runtime
|
// Exec endpoint for streaming.Runtime
|
||||||
func (ss streamService) Exec(containerID string, cmd []string, stdin io.Reader, stdout, stderr io.WriteCloser, tty bool, resize <-chan term.Size) error {
|
func (ss streamService) Exec(containerID string, cmd []string, stdin io.Reader, stdout, stderr io.WriteCloser, tty bool, resize <-chan term.Size) error {
|
||||||
fmt.Println(containerID, cmd, stdin, stdout, stderr, tty, resize)
|
c := ss.runtimeServer.GetContainer(containerID)
|
||||||
c := ss.runtimeServer.state.containers.Get(containerID)
|
|
||||||
|
if c == nil {
|
||||||
|
return fmt.Errorf("could not find container %q", containerID)
|
||||||
|
}
|
||||||
|
|
||||||
if err := ss.runtimeServer.runtime.UpdateStatus(c); err != nil {
|
if err := ss.runtimeServer.runtime.UpdateStatus(c); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -29,6 +29,10 @@ func (s *Server) PortForward(ctx context.Context, req *pb.PortForwardRequest) (*
|
||||||
func (ss streamService) PortForward(podSandboxID string, port int32, stream io.ReadWriteCloser) error {
|
func (ss streamService) PortForward(podSandboxID string, port int32, stream io.ReadWriteCloser) error {
|
||||||
c := ss.runtimeServer.GetSandboxContainer(podSandboxID)
|
c := ss.runtimeServer.GetSandboxContainer(podSandboxID)
|
||||||
|
|
||||||
|
if c == nil {
|
||||||
|
return fmt.Errorf("could not find container for sandbox %q", podSandboxID)
|
||||||
|
}
|
||||||
|
|
||||||
if err := ss.runtimeServer.runtime.UpdateStatus(c); err != nil {
|
if err := ss.runtimeServer.runtime.UpdateStatus(c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -678,6 +678,11 @@ func (s *Server) GetSandboxContainer(id string) *oci.Container {
|
||||||
return sb.infraContainer
|
return sb.infraContainer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetContainer returns a container by its ID
|
||||||
|
func (s *Server) GetContainer(id string) *oci.Container {
|
||||||
|
return s.getContainer(id)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Server) removeContainer(c *oci.Container) {
|
func (s *Server) removeContainer(c *oci.Container) {
|
||||||
s.stateLock.Lock()
|
s.stateLock.Lock()
|
||||||
sandbox := s.state.sandboxes[c.Sandbox()]
|
sandbox := s.state.sandboxes[c.Sandbox()]
|
||||||
|
|
Loading…
Reference in a new issue