From 0289858d21491396cf09d50e098d8bec24bf79b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20J=2E=20=C5=81akis?= Date: Fri, 18 Nov 2016 16:03:13 +0100 Subject: [PATCH] Add runtime status commpliant with CRI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jacek J. Łakis --- oci/oci.go | 12 ++++++++++++ server/container.go | 32 +++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/oci/oci.go b/oci/oci.go index abfa558b..e71cce48 100644 --- a/oci/oci.go +++ b/oci/oci.go @@ -310,3 +310,15 @@ func newPipe() (parent *os.File, child *os.File, err error) { } return os.NewFile(uintptr(fds[1]), "parent"), os.NewFile(uintptr(fds[0]), "child"), nil } + +// RuntimeReady checks if the runtime is up and ready to accept +// basic containers e.g. container only needs host network. +func (r *Runtime) RuntimeReady() (bool, error) { + return true, nil +} + +// NetworkReady checks if the runtime network is up and ready to +// accept containers which require container network. +func (r *Runtime) NetworkReady() (bool, error) { + return true, nil +} diff --git a/server/container.go b/server/container.go index 6672af10..eadf9284 100644 --- a/server/container.go +++ b/server/container.go @@ -597,5 +597,35 @@ func (s *Server) PortForward(ctx context.Context, req *pb.PortForwardRequest) (* // Status returns the status of the runtime func (s *Server) Status(ctx context.Context, req *pb.StatusRequest) (*pb.StatusResponse, error) { - return nil, nil + + // Deal with Runtime conditions + runtimeReady, err := s.runtime.RuntimeReady() + if err != nil { + return nil, err + } + networkReady, err := s.runtime.NetworkReady() + if err != nil { + return nil, err + } + + // Use vendored strings + runtimeReadyConditionString := pb.RuntimeReady + networkReadyConditionString := pb.NetworkReady + + resp := &pb.StatusResponse{ + Status: &pb.RuntimeStatus{ + Conditions: []*pb.RuntimeCondition{ + &pb.RuntimeCondition{ + Type: &runtimeReadyConditionString, + Status: &runtimeReady, + }, + &pb.RuntimeCondition{ + Type: &networkReadyConditionString, + Status: &networkReady, + }, + }, + }, + } + + return resp, nil }