2013-06-21 11 views
9

Jak mogę uzyskać użyteczną diagnostykę z boto? Wszystko, co wydaje mi się, że dostaję, to irytująco bezużyteczne "400 złych wniosków". Rozumiem, że boto właśnie przekazuje to, co udostępnia bazowy interfejs API, ale z pewnością istnieje sposób, aby uzyskać coś bardziej użytecznego niż "Złe żądanie".Jak uzyskać użyteczną diagnostykę z boto?

Traceback (most recent call last): 
    File "./mongo_pulldown.py", line 153, in <module> 
    main() 
    File "./mongo_pulldown.py", line 24, in main 
    print "snap = %r" % snap 
    File "./mongo_pulldown.py", line 149, in __exit__ 
    self.connection.delete_volume(self.volume.id) 
    File "/home/roy/deploy/current/python/local/lib/python2.7/site-packages/boto/ec2/connection.py", line 1507, in delete_volume 
    return self.get_status('DeleteVolume', params, verb='POST') 
    File "/home/roy/deploy/current/python/local/lib/python2.7/site-packages/boto/connection.py", line 985, in get_status 
    raise self.ResponseError(response.status, response.reason, body) 
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request 
+0

'import boto; boto.set_stream_logger ('boto') 'wyświetli wyniki json, w tym wszelkie błędy doświadczone w konsoli. – ecoe

Odpowiedz

6

Można configure the boto.cfg plik aby być bardziej gadatliwy:

[Boto] 
debug = 2 

debug: Kontroluje poziom komunikatów debugowania, które będą drukowane przez biblioteki boto. Następujące wartości są zdefiniowane:

0 - no debug messages are printed 
1 - basic debug messages from boto are printed 
2 - all boto debugging messages plus request/response messages from httplib 
+1

To nie daje więcej informacji. Problem polega na tym, że odpowiedź HTTP, która wraca, ma w organizmie "400 złych żądań". To, czego naprawdę potrzebuję, to jakiś sposób, aby skłonić serwer do podania więcej informacji o tym, co poszło nie tak. –

+0

Z kodu wygląda na to, że można włączyć tę informację dla każdego połączenia. Przykład? – dfrankow

5

nie miałem dużo szczęścia z wprowadzeniem ustawienia debugowania w pliku konfiguracyjnym, ale wezwanie do ec2.connect_to_region() przyjmuje parametr diagnostyczny, z tymi samymi wartościami jak w odpowiedzi J0nesa.

ec2 = boto.ec2.connect_to_region("eu-west-1", debug=2) 

Wszystko, co obiekt połączenia wysyła/odbiera, zostanie zrzucone na standardowe wyjście.

Powiązane problemy