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
}