in sharedlibraries/gce/gce.go [168:183]
func (g *GCE) GetForwardingRuleByIP(project, ip string) (*compute.ForwardingRule, error) {
filter := fmt.Sprintf("(IPAddress eq %s)", ip)
list, err := g.service.ForwardingRules.AggregatedList(project).Filter(filter).Do()
if err != nil {
return nil, fmt.Errorf("error retrieving aggregated forwarding rules list: %s", err)
}
for _, l := range list.Items {
for _, fwr := range l.ForwardingRules {
if fwr.IPAddress == ip {
return fwr, nil
}
}
}
return nil, errors.Errorf("no forwarding rule with IP %s found", ip)
}