func winRMIngressIsAllowed()

in gke-windows-builder/builder/builder/network.go [109:128]


func winRMIngressIsAllowed(service *compute.Service, networkProject string, networkUrl string) bool {
	firewalls, err := service.Firewalls.List(networkProject).Do()
	if err != nil {
		log.Printf("firewall list failed: %+v", err)
		return false
	}
	for _, rule := range firewalls.Items {
		for _, allowed := range rule.Allowed {
			if rule.Network == networkUrl && rule.Direction == "INGRESS" && allowed.IPProtocol == "tcp" && len(rule.SourceRanges) > 0 && rule.SourceRanges[0] == "0.0.0.0/0" && !rule.Disabled {
				for _, port := range allowed.Ports {
					if port == "5986" {
						log.Printf("found an INGRESS firewall rule for tcp:5986 in project %s", networkProject)
						return true
					}
				}
			}
		}
	}
	return false
}