2013-06-17 20 views
19

Chciałbym napisać prosty test dymu, który będzie działał po wdrożeniu, aby sprawdzić, czy dane uwierzytelniające RabbitMQ są prawidłowe. Jaki jest najprostszy sposób sprawdzenia, czy nazwa użytkownika/hasło/hosta rabbitmq są prawidłowe?Sprawdź, czy dane uwierzytelniające rabbitmq są prawidłowe

Edytuj: Najlepiej sprawdzić przy użyciu skryptu bash. Alternatywnie, za pomocą skryptu Python.

Odpowiedz

38

Jak nie dostarczyły żadnych szczegółów na temat języka, itp .:

Można po prostu wysłać żądanie HTTP GET API zarządzania.

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

Zobacz RabbitMQ Management HTTP API

+0

Zmieniano moje pytanie, ale odpowiedź jest dobra. –

+2

Niestety to działa tylko dla administratorów. – hoitomt

+4

rozróżnia "powód": "Logowanie nie powiodło się" "i" "powód": "Nie jest użytkownikiem zarządzającym" "i można stwierdzić, czy poświadczenia działają, nawet jeśli użytkownik nie jest administratorem – phunehehe

20

Oto sposób sprawdzić przy użyciu 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" 
Powiązane problemy