func (s *DaemonSuite) TestGlobalStatusOK(c *C) { sr := &endpoint.StatusResponse{Cilium: endpoint.NewStatusOK("Foo")} s.d.OnGlobalStatus = func() (*endpoint.StatusResponse, error) { return sr, nil } resp, err := s.c.GlobalStatus() c.Assert(resp, DeepEquals, sr) c.Assert(err, Equals, nil) }
func (d *Daemon) GlobalStatus() (*endpoint.StatusResponse, error) { sr := endpoint.StatusResponse{} if info, err := d.kvClient.Status(); err != nil { sr.KVStore = endpoint.Status{Code: endpoint.Failure, Msg: fmt.Sprintf("Err: %s - %s", err, info)} } else { sr.KVStore = endpoint.NewStatusOK(info) } if _, err := d.dockerClient.Info(ctx.Background()); err != nil { sr.Docker = endpoint.Status{Code: endpoint.Failure, Msg: err.Error()} } else { sr.Docker = endpoint.NewStatusOK("") } if d.conf.IsK8sEnabled() { if v, err := d.k8sClient.ServerVersion(); err != nil { sr.Kubernetes = endpoint.Status{Code: endpoint.OK, Msg: err.Error()} } else { sr.Kubernetes = endpoint.NewStatusOK(v.String()) } } else { sr.Kubernetes = endpoint.Status{Code: endpoint.Disabled} } if sr.KVStore.Code != endpoint.OK { sr.Cilium = endpoint.Status{Code: sr.KVStore.Code, Msg: "KVStore service is not ready!"} } else if sr.Docker.Code != endpoint.OK { sr.Cilium = endpoint.Status{Code: sr.Docker.Code, Msg: "Docker service is not ready!"} } else if d.conf.IsK8sEnabled() && sr.Kubernetes.Code != endpoint.OK { sr.Cilium = endpoint.Status{Code: sr.Kubernetes.Code, Msg: "Kubernetes service is not ready!"} } // TODO Create a logstash status in its runnable function //Logstash Status `json:"logstash"` sr.IPAMStatus = d.DumpIPAM() return &sr, nil }
func (s *CiliumNetClientSuite) TestStatusOK(c *C) { resOut := endpoint.StatusResponse{Cilium: endpoint.NewStatusOK("Foo")} server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { c.Assert(r.Method, Equals, "GET") c.Assert(r.URL.Path, Equals, "/healthz") w.WriteHeader(http.StatusOK) err := json.NewEncoder(w).Encode(resOut) c.Assert(err, IsNil) })) defer server.Close() cli := NewTestClient(server.URL, c) res, err := cli.GlobalStatus() c.Assert(err, Equals, nil) c.Assert(*res, DeepEquals, resOut) }