Skip to content

Commit 82465fb

Browse files
authored
fix GET /k8sd/cluster panic when not initialized (#332)
1 parent c4f338a commit 82465fb

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

src/k8s/pkg/k8sd/api/cluster.go

+12-15
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,21 @@ import (
1313
)
1414

1515
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+
}
1720

1821
members, err := impl.GetClusterMembers(s.Context, s)
1922
if err != nil {
2023
return response.InternalError(fmt.Errorf("failed to get cluster members: %w", err))
2124
}
22-
2325
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)
2926
if err != nil {
3027
return response.InternalError(fmt.Errorf("failed to get cluster config: %w", err))
3128
}
32-
datastoreConfig := apiv1.Datastore{
33-
Type: clusterConfig.Datastore.GetType(),
34-
ExternalURL: clusterConfig.Datastore.GetExternalURL(),
35-
}
3629

30+
snap := e.provider.Snap()
3731
client, err := k8s.NewClient(snap.KubernetesRESTClientGetter(""))
3832
if err != nil {
3933
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
4640

4741
result := apiv1.GetClusterStatusResponse{
4842
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+
},
5350
},
5451
}
5552

0 commit comments

Comments
 (0)