// CheckAvailablePorts ensures that ports used by OpenShift are available on the Docker host func (c *ClientStartConfig) CheckAvailablePorts(out io.Writer) error { for _, port := range openshift.RouterPorts { err := c.OpenShiftHelper().TestPorts([]int{port}) if err != nil { fmt.Fprintf(out, "WARNING: Port %d is already in use and may cause routing issues for applications.\n", port) } } err := c.OpenShiftHelper().TestPorts(openshift.DefaultPorts) if err == nil { c.DNSPort = openshift.DefaultDNSPort return nil } if !openshift.IsPortsNotAvailableErr(err) { return err } conflicts := openshift.UnavailablePorts(err) if len(conflicts) == 1 && conflicts[0] == openshift.DefaultDNSPort { err = c.OpenShiftHelper().TestPorts(openshift.PortsWithAlternateDNS) if err == nil { c.DNSPort = openshift.AlternateDNSPort fmt.Fprintf(out, "WARNING: Binding DNS on port %d instead of 53, which may not be resolvable from all clients.\n", openshift.AlternateDNSPort) return nil } } return errors.NewError("a port needed by OpenShift is not available").WithCause(err) }
// CheckAvailablePorts ensures that ports used by OpenShift are available on the Docker host func (c *ClientStartConfig) CheckAvailablePorts(out io.Writer) error { c.DNSPort = openshift.DefaultDNSPort err := c.OpenShiftHelper().TestPorts(openshift.AllPorts) if err == nil { return nil } if !openshift.IsPortsNotAvailableErr(err) { return err } unavailable := sets.NewInt(openshift.UnavailablePorts(err)...) if unavailable.HasAny(openshift.BasePorts...) { return errors.NewError("a port needed by OpenShift is not available").WithCause(err) } if unavailable.Has(openshift.DefaultDNSPort) { if unavailable.Has(openshift.AlternateDNSPort) { return errors.NewError("a port needed by OpenShift is not available").WithCause(err) } c.DNSPort = openshift.AlternateDNSPort fmt.Fprintf(out, "WARNING: Binding DNS on port %d instead of 53, which may not be resolvable from all clients.\n", openshift.AlternateDNSPort) } for _, port := range openshift.RouterPorts { if unavailable.Has(port) { fmt.Fprintf(out, "WARNING: Port %d is already in use and may cause routing issues for applications.\n", port) } } return nil }
// CheckAvailablePorts ensures that ports used by OpenShift are available on the Docker host func (c *ClientStartConfig) CheckAvailablePorts(out io.Writer) error { err := c.OpenShiftHelper().TestPorts(openshift.DefaultPorts) if err == nil { c.DNSPort = openshift.DefaultDNSPort return nil } if !openshift.IsPortsNotAvailableErr(err) { return err } conflicts := openshift.UnavailablePorts(err) if len(conflicts) == 1 && conflicts[0] == openshift.DefaultDNSPort { err = c.OpenShiftHelper().TestPorts(openshift.PortsWithAlternateDNS) if err == nil { c.DNSPort = openshift.AlternateDNSPort fmt.Fprintf(out, "WARNING: Binding DNS on port %d instead of 53, which may be not be resolvable from all clients.\n", openshift.AlternateDNSPort) return nil } } return errors.NewError("a port needed by OpenShift is not available").WithCause(err) }