Example #1
0
    def generate_settings(entry_point, nested_args, delimiter='-'):
        """Unifies all input into a single dict of Ansible extra-vars

        :param entry_point: All input will be nested under this key
        :param nested_args: dict. these values will be nested
            example:
                {
                    foo-bar: value1,
                    foo2: value2
                    foo-another-bar: value3
                }
        :param delimiter: character to split keys by.
        :return: dict. nest input with keys splitted by delimiter

        >>> VarsDictManager.generate_settings(
        ... 'entry_point', {'foo-bar': 'value1',
        ...                 'foo2': 'value2',
        ...                 'foo-another-bar': 'value3'})
        {'entry_point': {'foo': {'bar': 'value1', 'another':\
 {'bar': 'value3'}}, 'foo2': 'value2'}}
        """
        vars_dict = {entry_point: {}}
        try:
            for _name, argument in nested_args.items():
                dict_utils.dict_insert(vars_dict[entry_point], argument,
                                       *_name.split(delimiter))

        # handle errors here and provide more output for user if required
        except exceptions.IRKeyNotFoundException as key_exception:
            if key_exception and key_exception.key.startswith("private."):
                raise exceptions.IRPrivateSettingsMissingException(
                    key_exception.key)
            else:
                raise
        return vars_dict
Example #2
0
    def generate_settings(cls,
                          plugin_name,
                          nested_args,
                          settings_files,
                          input_files=None,
                          extra_vars=None,
                          dump_file=None):
        try:
            settings = cls._collect_settings(
                plugin_name, nested_args, settings_files,
                input_files=input_files, extra_vars=extra_vars)

            cls._dump_settings(settings, dump_file=dump_file)
            return settings
        # handle errors here and provide more output for user if required
        except exceptions.IRKeyNotFoundException as key_exception:
            if key_exception and key_exception.key.startswith("private."):
                raise exceptions.IRPrivateSettingsMissingException(
                    key_exception.key)
            else:
                raise