func()

in pkg/networks/networks.go [118:152]


func (m *networkMigrator) migrateNetwork(ctx context.Context) error {
	path := m.ResourcePath()
	if m.network.IPv4Range == "" {
		log.Infof("Network %s is already a VPC network.", path)
		return nil
	}

	log.Infof("Switching legacy network %s to custom mode VPC network", path)
	op, err := m.clients.Compute.SwitchToCustomMode(ctx, m.projectID, m.network.Name)
	if err != nil {
		return fmt.Errorf("error switching legacy network %s to custom mode VPC network: %w", path, err)
	}

	w := &ComputeOperation{
		ProjectID: m.projectID,
		Operation: op,
		Client:    m.clients.Compute,
	}
	if err := m.handler.Wait(ctx, w); err != nil {
		path := w.String()
		return fmt.Errorf("error waiting on Operation %s: %w", path, err)
	}

	log.Infof("Network %s switched to custom mode VPC network", path)

	resp, err := m.clients.Compute.GetNetwork(ctx, m.projectID, m.network.Name)
	if err != nil {
		return fmt.Errorf("unable to confirm network %s was converted: %w", path, err)
	}
	if resp.IPv4Range != "" {
		return fmt.Errorf("network %s was not converted; Network.IPv4Range (%s) should be empty", path, resp.IPv4Range)
	}

	return nil
}