func()

in cmd/root.go [210:252]


func (o *migrateOptions) Complete(ctx context.Context) error {
	authedClient, err := google.DefaultClient(ctx, compute.CloudPlatformScope)
	if err != nil {
		return err
	}

	o.clients, err = o.fetchClientFunc(ctx, o.containerBasePath, authedClient)
	if err != nil {
		return err
	}

	handler := operations.NewHandler(o.pollingInterval, o.pollingDeadline)
	options := &clusters.Options{
		ConcurrentNodePools:        ConcurrentNodePools,
		DesiredControlPlaneVersion: o.desiredControlPlaneVersion,
		DesiredNodeVersion:         o.desiredNodeVersion,
		InPlaceControlPlaneUpgrade: o.inPlaceControlPlaneUpgrade,
	}

	factory := func(n *compute.Network) migrate.Migrator {
		return networks.New(o.projectID, n, handler, o.clients, o.concurrentClusters, options)
	}

	log.Infof("Fetching network %s for project %q", o.selectedNetwork, o.projectID)

	ns, err := o.clients.Compute.ListNetworks(ctx, o.projectID)
	if err != nil {
		return fmt.Errorf("error listing networks: %w", err)
	}

	o.migrators = make([]migrate.Migrator, 0)
	for _, n := range ns {
		if n.Name == o.selectedNetwork {
			o.migrators = append(o.migrators, factory(n))
		}
	}

	if len(o.migrators) == 0 {
		return fmt.Errorf("unable to find network %s", o.selectedNetwork)
	}

	return nil
}