@@ -83,32 +83,49 @@ func dataSourceTMCEKSClusterRead(ctx context.Context, d *schema.ResourceData, m
8383 }
8484
8585 if isWaitForKubeconfig (d ) {
86- clusFullName := & clustermodel.VmwareTanzuManageV1alpha1ClusterFullName {Name : resp .EksCluster .Spec .AgentName , OrgID : clusterFn .OrgID , ManagementClusterName : "eks" , ProvisionerName : "eks" }
86+ clusFullName := & clustermodel.VmwareTanzuManageV1alpha1ClusterFullName {
87+ Name : resp .EksCluster .Spec .AgentName ,
88+ OrgID : clusterFn .OrgID ,
89+ ManagementClusterName : "eks" ,
90+ ProvisionerName : "eks" ,
91+ }
8792 clusterResp , err := config .TMCConnection .ClusterResourceService .ManageV1alpha1ClusterResourceServiceGet (clusFullName )
8893 // nolint: wsl
8994 if err != nil {
90- log .Printf ("Unable to get Tanzu Mission Control cluster entry, name : %s" , clusterFn .Name )
91- return true , nil
95+ log .Printf ("Unable to get Tanzu Mission Control cluster entry, name : %s, error : %s " , clusterFn .Name , err . Error () )
96+ return true , err
9297 }
9398
94- if ! isManagemetClusterHealthy (clusterResp ) {
99+ mgmtClusterHealthy , err := isManagemetClusterHealthy (clusterResp )
100+ if err != nil {
95101 log .Printf ("[DEBUG] waiting for cluster(%s) to be in Healthy status" , clusterFn .Name )
96102 return true , nil
103+ } else {
104+ if ! mgmtClusterHealthy {
105+ log .Printf ("[DEBUG] waiting for cluster(%s) to be in Healthy status" , clusterFn .Name )
106+ return true , nil
107+ }
97108 }
98109
99110 fn := & configModels.VmwareTanzuManageV1alpha1ClusterFullName {
100111 ManagementClusterName : "eks" ,
101112 ProvisionerName : "eks" ,
102113 Name : resp .EksCluster .Spec .AgentName ,
103- OrgID : "" ,
104114 }
105115 resp , err := config .TMCConnection .KubeConfigResourceService .KubeconfigServiceGet (fn )
116+ if err != nil {
117+ log .Printf ("Unable to get Tanzu Mission Control Kubeconfig entry, name : %s, error : %s" , fn .Name , err .Error ())
118+ return true , err
119+ }
106120
107121 if kubeConfigReady (err , resp ) {
108122 if err = d .Set (kubeconfigKey , resp .Kubeconfig ); err != nil {
109- log .Printf ("Failed to set Kubeconfig" )
110- return true , nil
123+ log .Printf ("Failed to set Kubeconfig for cluster %s, error : %s" , clusterFn . Name , err . Error () )
124+ return false , err
111125 }
126+ } else {
127+ log .Printf ("[DEBUG] waiting for cluster(%s)'s Kubeconfig to be in Ready status" , clusterFn .Name )
128+ return true , nil
112129 }
113130 }
114131
@@ -157,8 +174,16 @@ func dataSourceTMCEKSClusterRead(ctx context.Context, d *schema.ResourceData, m
157174 return diags
158175}
159176
160- func isManagemetClusterHealthy (cluster * clustermodel.VmwareTanzuManageV1alpha1ClusterGetClusterResponse ) bool {
161- return cluster .Cluster .Status .Health != nil && * cluster .Cluster .Status .Health == clustermodel .VmwareTanzuManageV1alpha1CommonClusterHealthHEALTHY
177+ func isManagemetClusterHealthy (cluster * clustermodel.VmwareTanzuManageV1alpha1ClusterGetClusterResponse ) (bool , error ) {
178+ if cluster == nil || cluster .Cluster == nil || cluster .Cluster .Status == nil || cluster .Cluster .Status .Health == nil {
179+ return false , errors .New ("cluster data is invalid or nil" )
180+ }
181+
182+ if * cluster .Cluster .Status .Health == clustermodel .VmwareTanzuManageV1alpha1CommonClusterHealthHEALTHY {
183+ return true , nil
184+ }
185+
186+ return false , nil
162187}
163188
164189func kubeConfigReady (err error , resp * configModels.VmwareTanzuManageV1alpha1ClusterKubeconfigGetKubeconfigResponse ) bool {
0 commit comments