Exemplo n.º 1
0
    def setvalue(cls, service: "CoreService", key: str, value: str) -> None:
        """
        Set values for this service.

        :param service: service to get value list for
        :param key: key to set value for
        :param value: value of key to set
        :return: nothing
        """
        if key not in cls.keys:
            raise ValueError("key `%s` not in `%s`" % (key, cls.keys))
        # this handles data conversion to int, string, and tuples
        if value:
            if key == "startidx":
                value = int(value)
            elif key == "meta":
                value = str(value)
            else:
                value = utils.make_tuple_fromstr(value, str)

        if key == "dirs":
            service.dirs = value
        elif key == "files":
            service.configs = value
        elif key == "cmdup":
            service.startup = value
        elif key == "cmddown":
            service.shutdown = value
        elif key == "cmdval":
            service.validate = value
        elif key == "meta":
            service.meta = value
Exemplo n.º 2
0
    def test_make_tuple_fromstr(self):
        # given
        no_args = "()"
        one_arg = "('one',)"
        two_args = "('one', 'two')"
        unicode_args = u"('one', 'two', 'three')"

        # when
        no_args = utils.make_tuple_fromstr(no_args, str)
        one_arg = utils.make_tuple_fromstr(one_arg, str)
        two_args = utils.make_tuple_fromstr(two_args, str)
        unicode_args = utils.make_tuple_fromstr(unicode_args, str)

        # then
        assert no_args == ()
        assert len(one_arg) == 1
        assert len(two_args) == 2
        assert len(unicode_args) == 3
Exemplo n.º 3
0
def _value_to_params(value: str) -> Optional[Tuple[str]]:
    """
    Helper to convert a parameter to a parameter tuple.

    :param value: value string to convert to tuple
    :return: parameter tuple, None otherwise
    """
    try:
        values = utils.make_tuple_fromstr(value, str)
        if not hasattr(values, "__iter__"):
            return None
        if len(values) < 2:
            return None
        return values
    except SyntaxError:
        logger.exception("error in value string to param list")
    return None