Example #1
0
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)
}
Example #2
0
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
}
Example #3
0
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)
}