Exemplo n.º 1
0
 def foo(x):
     try:
         i = int(x)
         if i not in range(_min, _max):
             raise argparse.ArgumentTypeError("{v} not in range [{min}-{max}].".format(v=i, min=_min, max=_max))
         return i
     except ValueError as va:
         pass
     if x not in _symbols:
         raise argparse.ArgumentTypeError("'{v}' must be one of {s}.".format(v=x, s=_symbols))
     return x
Exemplo n.º 2
0
    def parse_opts(cls, new_args, object_name):
        modify = {}
        deletes = []
        for arg in new_args:
            value = new_args[arg]
            is_unset = arg.startswith(cls.unsetprefix)
            prop_name = arg[len(cls.unsetprefix) + 1:] if is_unset else arg
            option = cls.drbd_options[object_name][prop_name]

            key = option['key']
            if is_unset:
                deletes.append(key)
            else:
                if 'bytes' in option and option['unit'] == 'bytes':
                    value = SizeCalc.auto_convert(value, SizeCalc.UNIT_B)
                    if option['min'] < value < option['max']:
                        value = str(value)
                    else:
                        raise argparse.ArgumentTypeError(
                            prop_name +
                            " value {v} is out of range [{mi}-{ma}]".format(
                                v=value, mi=option['min'], ma=option['max']))
                modify[key] = str(value)

        return modify, deletes
Exemplo n.º 3
0
 def range(v):
     import linstor_client.argparse.argparse as argparse
     v = int(v)
     if not checkrange(v, i, j):
         raise argparse.ArgumentTypeError('%d not in range: [%d, %d]' %
                                          (v, i, j))
     return v
Exemplo n.º 4
0
 def check(name):
     import linstor_client.argparse.argparse as argparse
     if checktype == NODE_NAME:
         name = check_node_name(name)
     else:
         name = check_name(name, min_length, max_length, valid_chars, valid_inner_chars)
     if not name:
         raise argparse.ArgumentTypeError('Name: %s not valid' % (name))
     return name
Exemplo n.º 5
0
    def provider_check(cls, providers):
        """
        Checks and converts the comma separated providers to a list.

        :param str providers:
        :return: List of provider names
        :rtype list[str]
        """
        provider_list = []
        for provider in providers.split(","):
            if provider.upper() not in linstor.Linstor.provider_list():
                raise argparse.ArgumentTypeError(
                    'Provider "{prov}" not valid'.format(prov=provider))
            provider_list.append(provider)
        return provider_list
Exemplo n.º 6
0
    def layer_data_check(cls, layer_data):
        """
        Checks and converts the comma separated layer names to a list.

        :param str layer_data:
        :return: List of layer names
        :rtype: list[str]
        """
        layer_list = []
        for layer in layer_data.split(','):
            if layer.lower() not in linstor.Linstor.layer_list():
                raise argparse.ArgumentTypeError(
                    'Layer name "{lay}" not valid'.format(lay=layer))
            layer_list.append(layer)
        return layer_list