@@ -13,27 +13,21 @@ import (
13
13
)
14
14
15
15
func (e * Endpoints ) getClusterStatus (s * state.State , r * http.Request ) response.Response {
16
- snap := e .provider .Snap ()
16
+ // fail if node is not initialized yet
17
+ if ! s .Database .IsOpen () {
18
+ return response .Unavailable (fmt .Errorf ("daemon not yet initialized" ))
19
+ }
17
20
18
21
members , err := impl .GetClusterMembers (s .Context , s )
19
22
if err != nil {
20
23
return response .InternalError (fmt .Errorf ("failed to get cluster members: %w" , err ))
21
24
}
22
-
23
25
config , err := utils .GetClusterConfig (s .Context , s )
24
- if err != nil {
25
- return response .InternalError (fmt .Errorf ("failed to get user-facing cluster config: %w" , err ))
26
- }
27
-
28
- clusterConfig , err := utils .GetClusterConfig (s .Context , s )
29
26
if err != nil {
30
27
return response .InternalError (fmt .Errorf ("failed to get cluster config: %w" , err ))
31
28
}
32
- datastoreConfig := apiv1.Datastore {
33
- Type : clusterConfig .Datastore .GetType (),
34
- ExternalURL : clusterConfig .Datastore .GetExternalURL (),
35
- }
36
29
30
+ snap := e .provider .Snap ()
37
31
client , err := k8s .NewClient (snap .KubernetesRESTClientGetter ("" ))
38
32
if err != nil {
39
33
return response .InternalError (fmt .Errorf ("failed to create k8s client: %w" , err ))
@@ -46,10 +40,13 @@ func (e *Endpoints) getClusterStatus(s *state.State, r *http.Request) response.R
46
40
47
41
result := apiv1.GetClusterStatusResponse {
48
42
ClusterStatus : apiv1.ClusterStatus {
49
- Ready : ready ,
50
- Members : members ,
51
- Config : config .ToUserFacing (),
52
- Datastore : datastoreConfig ,
43
+ Ready : ready ,
44
+ Members : members ,
45
+ Config : config .ToUserFacing (),
46
+ Datastore : apiv1.Datastore {
47
+ Type : config .Datastore .GetType (),
48
+ ExternalURL : config .Datastore .GetExternalURL (),
49
+ },
53
50
},
54
51
}
55
52
0 commit comments