func()

in tpu-provisioner/internal/cloud/gke_service.go [64:90]


func (g *GKENodePoolService) Delete(ctx context.Context, name string, callbacks OpCallbacks) error {
	op, err := g.Service.Projects.Locations.Clusters.Delete(g.ClusterContext.NodePoolName(name)).Context(ctx).Do()
	if err != nil {
		if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == http.StatusNotFound {
			if callbacks.NotFound != nil {
				callbacks.NotFound()
			}
			return nil
		}
		if callbacks.ReqFailure != nil {
			callbacks.ReqFailure(err)
		}
		return fmt.Errorf("deleting node pool %q: %w", name, err)
	}

	if err := waitForGkeOp(g.Service, g.ClusterContext, op); err != nil {
		if callbacks.OpFailure != nil {
			callbacks.OpFailure(err)
		}
		return err
	}

	if callbacks.Success != nil {
		callbacks.Success()
	}
	return nil
}