Set a value in an OpenStack configuration file.

    filename
        The full path to the configuration file

    section
        The section in which the parameter will be set

    parameter
        The parameter to change

    value
        The value to set

    CLI Example:

    .. code-block:: bash

        salt-call openstack_config.set /etc/keystone/keystone.conf sql connection foo

def set_(filename, section, parameter, value):
    '''
    Set a value in an OpenStack configuration file.

    filename
        The full path to the configuration file

    section
        The section in which the parameter will be set

    parameter
        The parameter to change

    value
        The value to set

    CLI Example:

    .. code-block:: bash

        salt-call openstack_config.set /etc/keystone/keystone.conf sql connection foo
    '''

    filename = _quote(filename)
    section = _quote(section)
    parameter = _quote(parameter)
    value = _quote(six.text_type(value))

    result = __salt__['cmd.run_all'](
            'openstack-config --set {0} {1} {2} {3}'.format(
                filename, section, parameter, value
                ),
            python_shell=False,
            )

    if result['retcode'] == 0:
        return result['stdout']
    else:
        raise salt.exceptions.CommandExecutionError(result['stderr'])