func()

in tpu-provisioner/internal/cloud/gke_service.go [41:62]


func (g *GKENodePoolService) Create(ctx context.Context, req *containerv1beta1.CreateNodePoolRequest, callbacks OpCallbacks) error {
	call := g.Service.Projects.Locations.Clusters.NodePools.Create(g.ClusterContext.ClusterName(), req)
	op, err := call.Do()
	if err != nil {
		if callbacks.ReqFailure != nil {
			callbacks.ReqFailure(err)
		}
		return fmt.Errorf("do: %w", err)
	}

	if err := waitForGkeOp(g.Service, g.ClusterContext, op); err != nil {
		if callbacks.OpFailure != nil {
			callbacks.OpFailure(err)
		}
		return fmt.Errorf("waiting for operation: %w", err)
	}

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