Skip to content

Commit cbe392a

Browse files
authored
r/ingress - wait for ingress to be deleted (#1143)
* Wait for Ingress to delete * Replace ErrStatus.Code -> errors.IsNotFound
1 parent eaa227a commit cbe392a

30 files changed

+55
-39
lines changed

kubernetes/resource_kubernetes_api_service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ func resourceKubernetesAPIServiceExists(ctx context.Context, d *schema.ResourceD
221221
log.Printf("[INFO] Checking API service %s", name)
222222
_, err = conn.ApiregistrationV1().APIServices().Get(ctx, name, meta_v1.GetOptions{})
223223
if err != nil {
224-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
224+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
225225
return false, nil
226226
}
227227
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_cluster_role_binding.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func resourceKubernetesClusterRoleBindingExists(ctx context.Context, d *schema.R
173173
log.Printf("[INFO] Checking ClusterRoleBinding %s", name)
174174
_, err = conn.RbacV1().ClusterRoleBindings().Get(ctx, name, metav1.GetOptions{})
175175
if err != nil {
176-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
176+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
177177
return false, nil
178178
}
179179
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_config_map.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func resourceKubernetesConfigMapExists(ctx context.Context, d *schema.ResourceDa
175175
log.Printf("[INFO] Checking config map %s", name)
176176
_, err = conn.CoreV1().ConfigMaps(namespace).Get(ctx, name, metav1.GetOptions{})
177177
if err != nil {
178-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
178+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
179179
return false, nil
180180
}
181181
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_cron_job.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func resourceKubernetesCronJobDelete(ctx context.Context, d *schema.ResourceData
206206
err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
207207
_, err := conn.BatchV1beta1().CronJobs(namespace).Get(ctx, name, metav1.GetOptions{})
208208
if err != nil {
209-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
209+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
210210
return nil
211211
}
212212
return resource.NonRetryableError(err)
@@ -239,7 +239,7 @@ func resourceKubernetesCronJobExists(ctx context.Context, d *schema.ResourceData
239239
log.Printf("[INFO] Checking cron job %s", name)
240240
_, err = conn.BatchV1beta1().CronJobs(namespace).Get(ctx, name, metav1.GetOptions{})
241241
if err != nil {
242-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
242+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
243243
return false, nil
244244
}
245245
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_csi_driver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func resourceKubernetesCSIDriverDelete(ctx context.Context, d *schema.ResourceDa
172172
err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
173173
_, err := conn.StorageV1beta1().CSIDrivers().Get(ctx, d.Id(), metav1.GetOptions{})
174174
if err != nil {
175-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
175+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
176176
return nil
177177
}
178178
return resource.NonRetryableError(err)
@@ -201,7 +201,7 @@ func resourceKubernetesCSIDriverExists(ctx context.Context, d *schema.ResourceDa
201201
log.Printf("[INFO] Checking CSIDriver %s", name)
202202
_, err = conn.StorageV1beta1().CSIDrivers().Get(ctx, name, metav1.GetOptions{})
203203
if err != nil {
204-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
204+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
205205
return false, nil
206206
}
207207
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_deployment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ func resourceKubernetesDeploymentDelete(ctx context.Context, d *schema.ResourceD
367367
err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
368368
_, err := conn.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{})
369369
if err != nil {
370-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
370+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
371371
return nil
372372
}
373373
return resource.NonRetryableError(err)
@@ -400,7 +400,7 @@ func resourceKubernetesDeploymentExists(ctx context.Context, d *schema.ResourceD
400400
log.Printf("[INFO] Checking deployment %s", name)
401401
_, err = conn.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{})
402402
if err != nil {
403-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
403+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
404404
return false, nil
405405
}
406406
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_endpoints.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func resourceKubernetesEndpointsExists(ctx context.Context, d *schema.ResourceDa
168168
log.Printf("[INFO] Checking endpoints %s", name)
169169
_, err = conn.CoreV1().Endpoints(namespace).Get(ctx, name, metav1.GetOptions{})
170170
if err != nil {
171-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
171+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
172172
return false, nil
173173
}
174174
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ func resourceKubernetesHorizontalPodAutoscalerExists(ctx context.Context, d *sch
247247
log.Printf("[INFO] Checking horizontal pod autoscaler %s", name)
248248
_, err = conn.AutoscalingV1().HorizontalPodAutoscalers(namespace).Get(ctx, name, metav1.GetOptions{})
249249
if err != nil {
250-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
250+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
251251
return false, nil
252252
}
253253
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_horizontal_pod_autoscaler_v2.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func resourceKubernetesHorizontalPodAutoscalerV2Exists(ctx context.Context, d *s
148148
log.Printf("[INFO] Checking horizontal pod autoscaler %s", name)
149149
_, err = conn.AutoscalingV2beta2().HorizontalPodAutoscalers(namespace).Get(ctx, name, metav1.GetOptions{})
150150
if err != nil {
151-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
151+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
152152
return false, nil
153153
}
154154
log.Printf("[DEBUG] Received error: %#v", err)

kubernetes/resource_kubernetes_ingress.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,22 @@ func resourceKubernetesIngressDelete(ctx context.Context, d *schema.ResourceData
314314
return diag.Errorf("Failed to delete Ingress %s because: %s", d.Id(), err)
315315
}
316316

317+
err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
318+
_, err := conn.ExtensionsV1beta1().Ingresses(namespace).Get(ctx, name, metav1.GetOptions{})
319+
if err != nil {
320+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
321+
return nil
322+
}
323+
return resource.NonRetryableError(err)
324+
}
325+
326+
e := fmt.Errorf("Ingress (%s) still exists", d.Id())
327+
return resource.RetryableError(e)
328+
})
329+
if err != nil {
330+
return diag.FromErr(err)
331+
}
332+
317333
log.Printf("[INFO] Ingress %s deleted", name)
318334

319335
d.SetId("")
@@ -334,7 +350,7 @@ func resourceKubernetesIngressExists(ctx context.Context, d *schema.ResourceData
334350
log.Printf("[INFO] Checking ingress %s", name)
335351
_, err = conn.ExtensionsV1beta1().Ingresses(namespace).Get(ctx, name, metav1.GetOptions{})
336352
if err != nil {
337-
if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 {
353+
if statusErr, ok := err.(*errors.StatusError); ok && errors.IsNotFound(statusErr) {
338354
return false, nil
339355
}
340356
log.Printf("[DEBUG] Received error: %#v", err)

0 commit comments

Comments
 (0)