def add_user(name, password=None, runas=None):
    '''
    Add a rabbitMQ user via rabbitmqctl user_add <user> <password>

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.add_user rabbit_user password
    '''
    clear_pw = False

    if password is None:
        # Generate a random, temporary password. RabbitMQ requires one.
        clear_pw = True
        password = ''.join(random.SystemRandom().choice(
            string.ascii_uppercase + string.digits) for x in range(15))

    if runas is None and not salt.utils.platform.is_windows():
        runas = salt.utils.user.get_user()

    if salt.utils.platform.is_windows():
        # On Windows, if the password contains a special character
        # such as '|', normal execution will fail. For example:
        # cmd: rabbitmq.add_user abc "asdf|def"
        # stderr: 'def' is not recognized as an internal or external
        #         command,\r\noperable program or batch file.
        # Work around this by using a shell and a quoted command.
        python_shell = True
        cmd = '"{0}" add_user "{1}" "{2}"'.format(
            RABBITMQCTL, name, password
        )
    else:
        python_shell = False
        cmd = [RABBITMQCTL, 'add_user', name, password]

    res = __salt__['cmd.run_all'](
        cmd,
        reset_system_locale=False,
        output_loglevel='quiet',
        runas=runas,
        python_shell=python_shell)

    if clear_pw:
        # Now, Clear the random password from the account, if necessary
        try:
            clear_password(name, runas)
        except Exception:
            # Clearing the password failed. We should try to cleanup
            # and rerun and error.
            delete_user(name, runas)
            raise

    msg = 'Added'
    return _format_response(res, msg)
def add_user ( name , password = None , runas = None ) : clear_pw = False if password is None : clear_pw = True password = '' . join ( random . SystemRandom ( ) . choice ( string . ascii_uppercase + string . digits ) for x in range ( 15 ) ) if runas is None and not salt . utils . platform . is_windows ( ) : runas = salt . utils . user . get_user ( ) if salt . utils . platform . is_windows ( ) : python_shell = True cmd = '"{0}" add_user "{1}" "{2}"' . format ( RABBITMQCTL , name , password ) else : python_shell = False cmd = [ RABBITMQCTL , 'add_user' , name , password ] res = __salt__ [ 'cmd.run_all' ] ( cmd , reset_system_locale = False , output_loglevel = 'quiet' , runas = runas , python_shell = python_shell ) if clear_pw : try : clear_password ( name , runas ) except Exception : delete_user ( name , runas ) raise msg = 'Added' return _format_response ( res , msg )
Add a rabbitMQ user via rabbitmqctl user_add <user> <password>

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.add_user rabbit_user password