@@ -5,8 +5,10 @@ package rest
55import (
66 "context"
77 "errors"
8+ "fmt"
89 "log/slog"
910 "regexp"
11+ "strings"
1012
1113 "github.com/open-edge-platform/cluster-manager/v2/internal/cluster"
1214 "github.com/open-edge-platform/cluster-manager/v2/internal/convert"
@@ -52,19 +54,17 @@ func (s *Server) GetV2ClustersName(ctx context.Context, request api.GetV2Cluster
5254
5355 cluster , err := s .getCluster (ctx , activeProjectID , name )
5456 if err != nil {
55- errMsg := err .Error ()
56- if err .Error () == "cluster not found" {
57- slog .Warn ("cluster not found" , "name" , name )
57+ if strings .Contains (err .Error (), k8s .ErrClusterNotFound .Error ()) {
5858 return api.GetV2ClustersName404JSONResponse {
5959 N404NotFoundJSONResponse : api.N404NotFoundJSONResponse {
60- Message : & errMsg ,
60+ Message : ptr ( err . Error ()) ,
6161 },
6262 }, nil
6363 }
6464 slog .Error ("failed to get cluster" , "name" , name , "error" , err )
6565 return api.GetV2ClustersName500JSONResponse {
6666 N500InternalServerErrorJSONResponse : api.N500InternalServerErrorJSONResponse {
67- Message : & errMsg ,
67+ Message : ptr ( err . Error ()) ,
6868 },
6969 }, nil
7070 }
@@ -78,38 +78,41 @@ func (s *Server) getCluster(ctx context.Context, activeProjectID, name string) (
7878
7979 cli , err := k8s .New (k8s .WithDynamicClient (s .k8sclient ))
8080 if err != nil {
81- return api.ClusterDetailInfo {}, errors .New ("internal server error" )
81+ slog .Error ("failed to create k8s client" , "error" , err )
82+ return api.ClusterDetailInfo {}, fmt .Errorf ("failed to create k8s client, err: %w" , err )
8283 }
8384
84- capiCluster , err := cli .Cluster (ctx , namespace , name )
85+ capiCluster , err := cli .GetCluster (ctx , namespace , name )
8586 if err != nil {
86- if err == k8s .ErrClusterNotFound {
87- return api.ClusterDetailInfo {}, errors .New ("cluster not found" )
88- }
89- return api.ClusterDetailInfo {}, errors .New ("internal server error" )
87+ slog .Error ("failed to get cluster" , "name" , name , "error" , err )
88+ return api.ClusterDetailInfo {}, fmt .Errorf ("failed to get cluster, err: %w" , err )
9089 }
9190 if capiCluster .Name == "" {
9291 return api.ClusterDetailInfo {}, errors .New ("missing cluster name" )
9392 }
93+
9494 // get machines associated with the cluster
9595 machines , err := fetchMachinesList (ctx , s , namespace , capiCluster .Name )
9696 if err != nil {
97+ // do we need to return error here?
9798 slog .Error ("failed to fetch machines for cluster" , "cluster" , capiCluster .Name , "error" , err )
9899 }
99100
100101 labels := labels .Filter (capiCluster .Labels )
101102 unstrucutreLabels := convert .MapStringToAny (labels )
102103
103- nodes , err := cluster .Nodes (ctx , cli , capiCluster )
104+ nodes , err := cluster .GetNodes (ctx , cli , capiCluster )
104105 if err != nil {
105- return api.ClusterDetailInfo {}, err
106+ slog .Error ("failed to get nodes" , "cluster" , capiCluster .Name , "error" , err )
107+ return api.ClusterDetailInfo {}, fmt .Errorf ("failed to get nodes, err: %w" , err )
106108 }
107109
108- template := cluster .Template (capiCluster )
110+ template := cluster .GetTemplate (capiCluster )
109111 lp , errs := getClusterLifecyclePhase (capiCluster )
110112 if len (errs ) > 0 {
111113 slog .Debug ("errors while building cluster lifecycle phase" , "cluster" , capiCluster .Name , "errors" , errs )
112114 }
115+
113116 clusterDetailInfo := api.ClusterDetailInfo {
114117 Name : & capiCluster .Name ,
115118 ProviderStatus : getProviderStatus (capiCluster ),
@@ -124,7 +127,8 @@ func (s *Server) getCluster(ctx context.Context, activeProjectID, name string) (
124127 }
125128
126129 if err := validateClusterDetail (clusterDetailInfo ); err != nil {
127- return api.ClusterDetailInfo {}, errors .New ("internal server error" )
130+ slog .Error ("failed to validate cluster detail" , "cluster" , capiCluster .Name , "error" , err )
131+ return api.ClusterDetailInfo {}, fmt .Errorf ("failed to validate cluster detail, err: %w" , err )
128132 }
129133
130134 return clusterDetailInfo , nil
0 commit comments