2013-06-17 20 views
19

Vorrei scrivere un semplice test del fumo che viene eseguito dopo la distribuzione per verificare che le credenziali di RabbitMQ siano valide. Qual è il modo più semplice per verificare che username/password/vhost di rabbitmq siano validi?Verificare che le credenziali di rabbitmq siano valide

Modifica: Preferibilmente, controllare utilizzando uno script di bash. In alternativa, usando uno script Python.

risposta

38

Come non è stato fornito alcun dettaglio sul linguaggio, ecc .:

Si potrebbe semplicemente emettere una richiesta HTTP GET per l'API di gestione.

$ curl -i -u guest:guest http://localhost:15672/api/whoami 

Vedi RabbitMQ Management HTTP API

+0

modificato la mia domanda, ma questa risposta è un buon compromesso. –

+2

Sfortunatamente questo funziona solo per gli utenti amministratori – hoitomt

+4

distinguere tra '" motivo ":" Login non riuscito "' e '" motivo ":" Non utente di gestione "' e puoi sapere se le credenziali funzionano anche se l'utente non è un amministratore – phunehehe

20

Ecco un modo per verificare utilizzando Python:

#!/usr/bin/env python 
import socket 
from kombu import Connection 
host = "localhost" 
port = 5672 
user = "guest" 
password = "guest" 
vhost = "/" 
url = 'amqp://{0}:{1}@{2}:{3}/{4}'.format(user, password, host, port, vhost) 
with Connection(url) as c: 
    try: 
     c.connect() 
    except socket.error: 
     raise ValueError("Received socket.error, " 
         "rabbitmq server probably isn't running") 
    except IOError: 
     raise ValueError("Received IOError, probably bad credentials") 
    else: 
     print "Credentials are valid" 
Problemi correlati