Feature #245

Details στους exception handlers

Added by Constantinos Venetsanopoulos about 12 years ago. Updated about 12 years ago.

Status:Closed Start date:03/08/2011
Priority:High Due date:04/04/2011
Assignee:Giorgos Verigakis % Done:

0%

Category:Cyclades API Spent time: -
Target version:-

Description

Οι handlers να γεμίζουν το πεδίο "details" του fault όταν κάνουν except.
Γενικά να γίνει λίγο πιο fine grain (όπου μπορεί) το exception handling.


Related issues

related to Synnefo - Bug #233: Χειρισμός λαθών στο Rackspace API Closed 02/28/2011
related to Synnefo - Feature #211: Error Handling Ganeti - API (Django) Closed 02/11/2011
related to Synnefo - Bug #301: Sanitization του API, αφαίρεση του Piston, έλεγχος συμμόρ... Closed 03/18/2011 04/06/2011

Associated revisions

Revision d8e50a39
Added by Giorgos Verigakis about 12 years ago

Move to OpenStack API v1.1

  • Removes piston dependency.
  • Adds dateutil dependency.

Fixes #183 - Implement /servers
Fixes #185 - Implement /images
Fixes #245 - Details in exception handlers
Fixes #249 - Metadata handling
Fixes #253 - Transition to OpenStack API v1.1
Fixes #255 - Fix XML for addresses
Fixes #287 - Piston related bug
Fixes #289 - Support both XML and JSON
Fixes #309 - GUI not refreshing
Fixes #339 - Support API extensions
Fixes #359 - action returns serviceUnavailable
Fixes #361 - return dates with timezones
Refs #301 - Sanitization of API
Refs #315 - Replace API v1.1

History

#1 Updated by Markos Gogoulos about 12 years ago

οσον αφορα το logging μπαινει πλεον και το exception traceback περα απο το μηνυμα λαθους, με τη χρηση της log.exception (αντι της log.error)

#2 Updated by Markos Gogoulos about 12 years ago

Θα χρειαστεί να αλλάξει ριζικά το fault factory (api/faults.py), μιας και έτσι όπως είναι υλοποιημένο δεν μπορεί να πάρει τα details υπόψιν

#3 Updated by Vangelis Koukis about 12 years ago

  • Status changed from New to Assigned

ΟΚ, αλλάξτε το fault factory ώστε να επιστρέφει και details στο αντίστοιχο HTTP response.

#4 Updated by Vangelis Koukis about 12 years ago

Είδα το commit 6b83d46b47f9d24aede4d97619e4ffdbf58119cf [improve error logging].
Με runserver βλέπω τα εξής:

[09/Mar/2011 04:22:33] "GET /static/pencil.png HTTP/1.1" 200 2858
[09/Mar/2011 04:22:37] "POST /api/v1.0/servers/1005/action HTTP/1.1" 400 11
[09/Mar/2011 04:22:37] "GET /static/close.png HTTP/1.1" 200 1987
[09/Mar/2011 04:22:39] "GET /machines/standard HTTP/1.1" 200 6046
[09/Mar/2011 04:22:39] "GET /api/v1.0/servers/detail HTTP/1.1" 200 3889
[09/Mar/2011 04:22:42] "GET /static/h30.png HTTP/1.1" 200 278
[09/Mar/2011 04:22:44] "POST /api/v1.0/servers HTTP/1.1" 400 11
[09/Mar/2011 04:22:46] "GET /machines/standard HTTP/1.1" 200 6046

Πώς ακριβώς μπορώ να δω την καταγραφή του traceback του exception;
Μπορείτε να το κάνετε να βγάζει το log στην οθόνη [στο stderr του runserver] ή σε αρχείο;
Γιατί τώρα βλέπω ότι το POST επιστρέφει 400, αλλά δεν έχω τρόπο να δω τι συνέβη και δεν φαίνεται να υπάρχει κάπου το traceback.

#5 Updated by Vangelis Koukis about 12 years ago

Επίσης, σχετικό με το πώς επιστρέφονται οι απαντήσεις στον πελάτη.
Το API πρέπει να υποστηρίζει κανονικά απαντήσεις σε json και σε xml.

Στο api/handlers.py:256 έχει τώρα:

return HttpResponse(json.dumps(ret), mimetype="application/json", status=202)

Τώρα έχει hardcoded το application/json.
Αυτό πρέπει να αλλάξει ώστε να επιστρέφονται σωστά και τα δύο είδη απαντήσεων ανάλογα με το τι έχει ζητήσει ο πελάτης.

#6 Updated by Vangelis Koukis about 12 years ago

  • Assignee changed from Dimitris Moraitis to Giorgos Verigakis

Αυτό το κάνω assign στο Γιώργο το Βεριγάκη, θα αναλάβει διορθώσεις στον Python κώδικα, δείτε τα υπόλοιπα γιατί έχουν μαζευτεί πολλά πράγματα που πρέπει να υλοποιηθούν.

#7 Updated by Vangelis Koukis about 12 years ago

  • Due date set to 04/04/2011

#8 Updated by Vangelis Koukis about 12 years ago

  • Status changed from Assigned to Closed

Η νέα υλοποίηση επιστρέφει αντικείμενα cloudFault με συμπληρωμένο το πεδίο message ανάλογα με την περίσταση. Όσο γίνεται development, στα details του fault περιέχεται το πλήρες stack trace.

Also available in: Atom PDF