Beispiel #1
0
def check_port(port):
    port_range = getPortRange(port)
    if port_range == -2:
        raise FirewallError(INVALID_PORT, "port number in '%s' is too big" % port)
    elif port_range == -1:
        raise FirewallError(INVALID_PORT, "'%s' is invalid port range" % port)
    elif port_range is None:
        raise FirewallError(INVALID_PORT, "port range '%s' is ambiguous" % port)
    elif len(port_range) == 2 and port_range[0] >= port_range[1]:
        raise FirewallError(INVALID_PORT, "'%s' is invalid port range" % port)
Beispiel #2
0
def check_port(port):
    port_range = getPortRange(port)
    if port_range == -2:
        raise FirewallError(INVALID_PORT,
                            "port number in '%s' is too big" % port)
    elif port_range == -1:
        raise FirewallError(INVALID_PORT, "'%s' is invalid port range" % port)
    elif port_range is None:
        raise FirewallError(INVALID_PORT,
                            "port range '%s' is ambiguous" % port)
    elif len(port_range) == 2 and port_range[0] >= port_range[1]:
        raise FirewallError(INVALID_PORT, "'%s' is invalid port range" % port)
Beispiel #3
0
    def check_port(self, port):
        range = functions.getPortRange(port)

        if range == -2 or range == -1 or range is None or (len(range) == 2 and range[0] >= range[1]):
            if range == -2:
                log.debug1("'%s': port > 65535" % port)
            elif range == -1:
                log.debug1("'%s': port is invalid" % port)
            elif range is None:
                log.debug1("'%s': port is ambiguous" % port)
            elif len(range) == 2 and range[0] >= range[1]:
                log.debug1("'%s': range start >= end" % port)
            raise FirewallError(INVALID_PORT, port)
Beispiel #4
0
    def check_port(self, port):
        range = functions.getPortRange(port)

        if range == -2 or range == -1 or range is None or \
                (len(range) == 2 and range[0] >= range[1]):
            if range == -2:
                log.debug1("'%s': port > 65535" % port)
            elif range == -1:
                log.debug1("'%s': port is invalid" % port)
            elif range is None:
                log.debug1("'%s': port is ambiguous" % port)
            elif len(range) == 2 and range[0] >= range[1]:
                log.debug1("'%s': range start >= end" % port)
            raise FirewallError(errors.INVALID_PORT, port)
Beispiel #5
0
    def _check_property(self, prop, value):
        if prop in ["name", "type", "state", "lasterror"]:
            return self.check_type_string(value)
        elif prop in ["packages", "services",
                      "firewall_zones"]:  # "backup_paths"
            return self.check_type_string_list(value)
        elif prop in ["version"]:
            return self.check_type_int(value)
        elif prop in ["firewall"]:
            self.check_type_dict(value)
            for x in value.keys():
                if x not in ["ports", "services"]:
                    raise RolekitError(INVALID_VALUE, "wrong key '%s'" % x)
                self.check_type_string_list(value[x])
            if "ports" in value:
                for x in value["ports"]:
                    try:
                        port, proto = x.split("/")
                    except:
                        raise RolekitError(INVALID_VALUE,
                                           "Port %s is invalid" % x)

                    p_range = getPortRange(port)
                    if p_range == -2:
                        raise RolekitError(INVALID_VALUE,
                                           "Port '%s' is too big" % port)
                    elif p_range == -1:
                        raise RolekitError(INVALID_VALUE,
                                           "Port range '%s' is invalid" % port)
                    elif p_range == None:
                        raise RolekitError(
                            INVALID_VALUE,
                            "Port range '%s' is ambiguous" % port)
                    elif len(p_range) == 2 and p_range[0] >= p_range[1]:
                        raise RolekitError(INVALID_VALUE,
                                           "Port range '%s' is invalid" % port)

                    if proto not in ["tcp", "udp"]:
                        raise RolekitError(
                            INVALID_VALUE,
                            "Protocol '%s' not from {'tcp'|'udp'}" % proto)

        elif prop in ["custom_firewall"]:
            return self.check_type_bool(value)

        elif hasattr(self, "do_check_property"):
            if self.do_check_property(prop, value):
                return True
        raise RolekitError(MISSING_CHECK, prop)
Beispiel #6
0
    def _check_property(self, prop, value):
        if prop in [ "name", "type", "state", "lasterror" ]:
            return self.check_type_string(value)
        elif prop in [ "packages", "services", "firewall_zones" ]: # "backup_paths"
            return self.check_type_string_list(value)
        elif prop in [ "version" ]:
            return self.check_type_int(value)
        elif prop in [ "firewall" ]:
            self.check_type_dict(value)
            for x in value.keys():
                if x not in [ "ports", "services" ]:
                    raise RolekitError(INVALID_VALUE, "wrong key '%s'" % x)
                self.check_type_string_list(value[x])
            if "ports" in value:
                for x in value["ports"]:
                    try:
                        port, proto = x.split("/")
                    except:
                        raise RolekitError(INVALID_VALUE,
                                           "Port %s is invalid" % x)

                    p_range = getPortRange(port)
                    if p_range == -2:
                        raise RolekitError(INVALID_VALUE,
                                           "Port '%s' is too big" % port)
                    elif p_range == -1:
                        raise RolekitError(INVALID_VALUE,
                                           "Port range '%s' is invalid" % port)
                    elif p_range == None:
                        raise RolekitError(INVALID_VALUE,
                                            "Port range '%s' is ambiguous" % port)
                    elif len(p_range) == 2 and p_range[0] >= p_range[1]:
                        raise RolekitError(INVALID_VALUE,
                                           "Port range '%s' is invalid" % port)

                    if proto not in [ "tcp", "udp" ]:
                        raise RolekitError(INVALID_VALUE,
                                           "Protocol '%s' not from {'tcp'|'udp'}" % proto)

        elif prop in [ "custom_firewall" ]:
            return self.check_type_bool(value)

        elif hasattr(self, "do_check_property"):
            if self.do_check_property(prop, value):
                return True
        raise RolekitError(MISSING_CHECK, prop)
Beispiel #7
0
def check_port(port):
    port_range = functions.getPortRange(port)
    if port_range == -2 or port_range == -1 or port_range == None or \
            (len(port_range) == 2 and port_range[0] >= port_range[1]):
        raise FirewallError(INVALID_PORT, port)