def validate_within_min_max(param_name, value, min_value, max_value, unit): from dataproperty import DataProperty if value is None: return if unit is None: unit = "" else: unit = "[{:s}]".format(unit) if value > max_value: raise ParameterError( "'{:s}' is too high".format(param_name), expected="<={:s}{:s}".format( DataProperty(max_value).to_str(), unit), value="{:s}{:s}".format(DataProperty(value).to_str(), unit), ) if value < min_value: raise ParameterError( "'{:s}' is too low".format(param_name), expected=">={:s}{:s}".format( DataProperty(min_value).to_str(), unit), value="{:s}{:s}".format(DataProperty(value).to_str(), unit), )
def _get_qdisc_minor_id(self): if self._tc_obj.direction == TrafficDirection.OUTGOING: return self.__OUT_DEVICE_QDISC_MINOR_ID if self._tc_obj.direction == TrafficDirection.INCOMING: return self.__IN_DEVICE_QDISC_MINOR_ID raise ParameterError( "unknown direction", expected=TrafficDirection.LIST, value=self._tc_obj.direction )
def _get_network_direction_str(self): if self._tc_obj.direction == TrafficDirection.OUTGOING: return "dst" if self._tc_obj.direction == TrafficDirection.INCOMING: return "src" raise ParameterError("unknown direction", expected=TrafficDirection.LIST, value=self._tc_obj.direction)
def __validate_src_network(self): if any([ typepy.is_null_string(self.src_network), self.__shaper.algorithm_name == ShapingAlgorithm.HTB, ]): return if not self.is_enable_iptables: raise ParameterError( "--iptables option required to use --src-network option", value=self.is_enable_iptables, )
def get_tc_device(self): """ Return a device name that associated network communication direction. """ if self.direction == TrafficDirection.OUTGOING: return self.device if self.direction == TrafficDirection.INCOMING: return self.ifb_device raise ParameterError("unknown direction", expected=TrafficDirection.LIST, value=self.direction)
def __init_shaper(self, shaping_algorithm): if shaping_algorithm is None: self.__shaper = None return if shaping_algorithm == ShapingAlgorithm.HTB: self.__shaper = HtbShaper(self) return if shaping_algorithm == ShapingAlgorithm.TBF: self.__shaper = TbfShaper(self) return raise ParameterError("unknown shaping algorithm", expected=ShapingAlgorithm.LIST, value=shaping_algorithm)