Feature #213

Error Handling API (Django) - GUI

Added by Constantinos Venetsanopoulos over 11 years ago. Updated over 9 years ago.

Status:Closed Start date:02/11/2011
Priority:High Due date:04/01/2011
Assignee:Christos Psaltis % Done:

0%

Category:old_synnefo Spent time: -
Target version:-

Description

Να γίνεται error handling στο UI και να παρουσιάζονται τα αντίστοιχα μηνύματα στο χρήστη


Related issues

related to Synnefo - Bug #209: box επιβεβαίωσης για τα actions Closed 02/04/2011 04/01/2011
related to Synnefo - Bug #301: Sanitization του API, αφαίρεση του Piston, έλεγχος συμμόρ... Closed 03/18/2011 04/06/2011
related to Synnefo - Feature #293: Partial refresh στο GUI Closed 03/16/2011 04/01/2011

Associated revisions

Revision ccd40764
Added by Markos Gogoulos over 11 years ago

customize error messages

Refs: #213

Revision 879748ec
Added by Markos Gogoulos over 11 years ago

fix error handling and confirmation boxes

On the standard listing
Refs #209 #213

Revision 695e1b21
Added by Dimitris Moraitis over 11 years ago

polish new style error boxes & validate rangeinputs - Refs #209 #213 #147

Revision 2d5cea9b
Added by Markos Gogoulos over 11 years ago

fix destroy server action behavior on the gui

Refs #213

Revision e1a023a6
Added by Markos Gogoulos over 11 years ago

on the gui show which server gives error

when executing an action on the list view of the gui, show server and error if
action was not run

Refs #213

Revision 038383b1
Added by Dimitris Moraitis over 11 years ago

detailed error handling & iso8601 compatibility - Refs #213 #363

Revision a8e592c7
Added by Dimitris Moraitis over 11 years ago

display error if backend does not respond to actions - Refs #213

History

#1 Updated by Markos Gogoulos over 11 years ago

έχει ξεκινήσει το error handling στο synnefo. Δυο περιπτώσεις καλύπτονται για την ώρα

1)το rapi δεν μπορεί να συνδεθεί σωστά με το ganeti. Ο χρήστης παίρνει μήνυμα οτι υπάρχει πρόβλημα στο backend, και μένει να προστεθεί alerting/logging προς τους admins.

2)περιπτωση οπου το ui παίρνει timeouts ενώ προσπαθεί να συνδεθεί με το rapi. Για την ώρα το βάλαμε 10 δευτερόλεπτα, και ο χρήστης παίρνει μηνυμα του τύπου 'τσεκάρετε τη σύνδεση σας.'
έχει μπει και το σχετικό documentation στο
http://trac.cslab.ece.ntua.gr:8081/cloud/wiki/DesignImplAPI

#2 Updated by Markos Gogoulos over 11 years ago

προστεθηκε στο standard view η συναρτηση ajax_error(jqXHR) η οποια δεχεται το error και εκτυπωνει αναλογο μηνυμα.

Χρειαζεται τωρα να φτιαξουμε ενα action diagram, ωστε να γνωριζουμε τι errors μπορει το καθε action να φερει.
Σε συνδυασμο με τις αλλαγες που πρεπει να γινουν στα αντιστοιχα handlers φυσικα, για το τι http status θα επιστρεφουν σε καθε περιπτωση

#3 Updated by Christos Psaltis over 11 years ago

  • Status changed from New to Feedback

Στο home.html υπάρχει μια σειρά από μυνήματα που εμφανίζονται στον τελικό χρήστη ανάλογα με τον κωδικό λάθους. Τα μηνύματα είναι μεταφράσιμα και καλούνται και από το standard και από to list view. Υπάρχει κάτι που θα θέλατε να αλλάξει/προστεθεί;

#4 Updated by Vangelis Koukis over 11 years ago

Δοκιμάζω με το GUI, ενώ δεν τρέχει ο server του Django και το GUI μου βγάζει λάθος "Error! An error has happened. Our administrators have been notified."

Για αναπαραγωγή του bug:
α) ξεκινάω τον runserver
β) φορτώνω το GUI
γ) σκοτώνω τον runserver
δ) ζητάω μια ενέργεια σε VM.

Θα έπρεπε να υπάρχει χωριστό λάθος:
"Could not contact the service. Please check your network connectivity and try again."

#5 Updated by Markos Gogoulos over 11 years ago

έγινε η αλλαγή του μηνύματος

#6 Updated by Vangelis Koukis over 11 years ago

Υπάρχουν δύο θέματα ακόμη:

α) όταν δεν έχουν οριστεί images ή flavors στον server, το GUI βγάζει το default μήνυμα λάθους, που αναφέρεται σε πρόβλημα δικτυακής σύνδεσης. Πρέπει να βγάζει δύο διακριτά μηνύματα, ένα όταν ο αριθμός των images είναι μηδέν, ένα όταν ο αριθμός των flavors είναι μηδέν:

"Cannot show the Create machine wizard: No images found."
"Cannot show the Create machine wizard: No machine configurations found."

β) Πρέπει να φύγουν όλα τα κουτιά επιβεβαίωσης ενεργειών κι όλα τα κουτιά προβολής επιτυχίας ή αποτυχίας μετά από ενέργεια. Τα κουτιά επιβεβαίωσης θα γίνουν όπως προδιαγράφεται στο #209. Για τα κουτιά επιτυχούς/ανεπιτυχούς υποβολής δουλειάς:

β1) Αν έχει υπάρξει αποτυχία, θα λειτουργεί όπως προδιαγράφεται στο #209. Το κείμενο του λάθους θα εμφανίζεται αν ο χρήστης επιλέξει να δει τις λεπτομέρειες του σφάλματος που συνέβη, ως εξής:

Problem
The server could not... blah blah
Code: 505
Details: details από το cloudFault

Το "Problem" είναι bold, λίγο μεγαλύτερο, το κείμενο είναι κανονικά γράμματα, το "Code:" και το "Details" είναι bold.

#7 Updated by Vangelis Koukis over 11 years ago

  • Status changed from Feedback to Assigned

#8 Updated by Markos Gogoulos over 11 years ago

Το α) έγινε

#9 Updated by Vangelis Koukis over 11 years ago

ΟΚ, δείτε και τα υπόλοιπα.

Για να μην χρειάζεται κανείς να ψάχνει το git log με βάση τις ημερομηνίες για να βρει την αντίστοιχη αλλαγή, καλό είναι να αναφέρεται ο αριθμός του commit στο σχόλιο που προσθέτουμε στο ticket. Με το που δει το redmine ότι αναφέρεσαι στα a5093da και 7d311ba, τα βγάζει ακριβώς δίπλα στο web interface, για να τα βλέπεις με ένα κλικ.

#10 Updated by Vangelis Koukis over 11 years ago

Συνεχίζει να υπάρχει το πρόβλημα που περιγράφεται στις σημειώσεις 4 και 5, λίγο παραπάνω.
Όταν σκοτώσω τον runserver ενώ το GUI είναι φορτωμένο, το GUI επιστρέφει στο χρήστη λάθος μήνυμα για πρόβλημα "Malformed request", ενώ το πρόβλημα πρέπει να είναι "έκανα timeout ή έφαγα connection refused ή κάτι ανάλογο". Το μήνυμα προδιαγράφεται ακριβώς στη σημείωση 4:
https://code.grnet.gr/issues/213#note-4

Επίσης, δεδομένου ότι ο [verigak] έχει αναλάβει το #301, πρέπει να τρέξει το (β) παραπάνω: πρέπει να φύγουν όλα τα έξτρα κουτιά επιβεβαίωσης και σφάλματος, και να ενταχθεί η λειτουργικότητά τους σε αυτή των confirmations, #209.

#11 Updated by Vangelis Koukis over 11 years ago

  • Due date set to 03/25/2011

Διευκρίνιση από τη σημερινή συνάντηση:
Πρέπει να μπορεί να απαντηθεί σαφώς η συμπεριφορά του GUI στις εξής περιπτώσεις:
α) μίλησα με τον server, γύρισε 200, 202
β) μίλησα με τον server, γύρισε 304
γ) μίλησα με τον server, γύρισε ΛΑΘΟΣ: 400, 403, 500
δ) δεν μίλησα με τον server, πήρα timeout, ή έφαγα connection refused

Πρέπει το jqXHR να μπορεί να χειριστεί διαφορετικά ΚΑΘΕ ΜΙΑ από τις παραπάνω περιπτώσεις.
Φαίνεται ότι υπάρχει bug στον Opera, που δεν επιτρέπει τη διάκριση ανάμεσα στο (β) και το (δ).

#12 Updated by Markos Gogoulos over 11 years ago

α)Ενημερώνεται η λιστα με τα VMS

β)Δεν γίνεται τίποτα

γ)Υλοποιείται, γυρίζει τα αντίστοιχα μηνύματα

δ)στο auto refresh δεν γίνεται τίποτα, επειδή δεν μπορεί να διαχωριστεί απο το β στον opera

#13 Updated by Dimitris Moraitis over 11 years ago

  • Status changed from Assigned to Feedback

Μένει κάτι άλλο εδώ; Το error reporting γίνεται πλέον με βάση τα τελευταία mockups και η συμπεριφορά είναι αυτή που περιγράφει ο Μάρκος παραπάνω.

#14 Updated by Vangelis Koukis over 11 years ago

  • Due date changed from 03/25/2011 to 04/01/2011
  • Status changed from Feedback to Assigned
Εδώ μένει:
να αλλαχτούν κάποια σχόλια στον κώδικα ("no images unavailable")
να γίνει ό,τι προδιαγράφεται στο note #6 [περιγραφικό παράθυρο για το cloudFault που να περιλαμβάνει το κομμάτι "message" από το cloudFault]
  • το κουτί που βγαίνει σε σφάλμα να είναι σωστού ύψους
  • το details να κάνει hover όπως το cancel

#15 Updated by Vangelis Koukis over 11 years ago

Στο list view:

α) το Destroy server βγάζει μήνυμα λάθους ενώ ο server σβήνεται κανονικά.
Το λάθος είναι "could not contact the service" κλπ.
β) αν ο χρήστης έχει διαλέξει πολλά μηχανήματα, το λάθος πρέπει να του λέει σε ποιον από όλους όσους είχε επιλέξει έσκασε η κλήση.

#16 Updated by Markos Gogoulos over 11 years ago

Το πρόβλημα με το destroy server έχει διορθωθεί

#17 Updated by Markos Gogoulos over 11 years ago

  • Status changed from Assigned to Feedback

Επίσης το β) διορθώθηκε

#18 Updated by Christos Psaltis over 11 years ago

επίσης διορθώθηκαν και όσα αναφέρονται στο comment 14

#19 Updated by Dimitris Moraitis over 11 years ago

  • Status changed from Feedback to Assigned

μένουν κάποια πράγματα ακόμα

#20 Updated by Christos Psaltis over 11 years ago

Christos Psaltis wrote:

επίσης διορθώθηκαν και όσα αναφέρονται στο comment 14

όχι όμως όσα λέγονται στο comment 6

#21 Updated by Dimitris Moraitis over 11 years ago

  • Status changed from Assigned to Feedback

Έγιναν και τα αναλυτικά μηνύματα λάθους που εκρεμμούσαν. Όλα φαίνονται να παίζουν σωστά.

#22 Updated by Vangelis Koukis over 11 years ago

  • Status changed from Feedback to Resolved

Φαίνεται να είναι εντάξει, το κλείνω μετά το feedback από το demo.

#23 Updated by Vangelis Koukis over 11 years ago

  • Status changed from Resolved to Assigned

Λοιπόν, εδώ φαίνεται να υπάρχει ακόμη το θέμα που αναλύεται διεξοδικά στις σημειώσεις 4 και 11 παραπάνω.
Καταλαβαίνω ότι στο autorefresh του Opera υπάρχει ζήτημα, γιατί δεν μπορεί να ξεχωρίσει το 304 από το Connection Refused.

Όμως, όταν υποβάλλω σύγχρονα μια αίτηση, π.χ. όταν πάω να φτιάξω έναν server, εκεί δεν υπάρχει περίπτωση να πάρω πίσω 304. Κι όμως, ενώ παλιότερα είχε φτιαχτεί, τώρα δεν βγάζει κανένα μήνυμα λάθους όταν κλείσω τον runserver.

Για αναπαραγωγή του λάθους:
α) ξεκινάω τον development server (runserver)
β) φορτώνει το GUI
γ) σκοτώνω τον development server
δ) πάω να φτιάξω μια νέα μηχανή από το wizard

Στο σημείο αυτό κάνει POST /servers και τρώει connection refused ή κάνει timeout. Στη σημείωση 12 παραπάνω ο Μάρκος λέει ότι για το (δ) στο auto-refresh δεν κάνει τίποτε. Σύμφωνοι, γιατί δεν μπορεί να το ξεχωρίσει από το 304. Αλλά όταν ΜΠΟΡΕΙ, πρέπει να κάνει. Πρέπει να βγάζει το "δεν μπόρεσα να μιλήσω με τον server", που αν καταλαβαίνω καλά είναι το ERRORS['DEFAULT'] στον κώδικα.

Αυτό με δαγκώνει και στην πραγματικότητα. Σκοτώνω καταλάθος το runserver και κάθομαι και κοιτάζω σα χάνος το παράθυρο του browser. Είπαμε δε γίνεται εύκολα στο autorefresh, OK. Σε ενέργειες του χρήστη πρέπει να γίνεται.

#24 Updated by Dimitris Moraitis over 11 years ago

  • Status changed from Assigned to Feedback

OK. Πλεον το gui πετάει error αν δεν πάρει απάντηση από το backend μετά από action.

#25 Updated by Vangelis Koukis over 11 years ago

  • Status changed from Feedback to Closed

Το GUI φαίνεται να εμφανίζει σωστά μήνυμα λάθους με τις λεπτομέρειες που περιέχονται σε πεδία του cloudFault. Το κλείνω, ανοίγει νέο bug για ο,τιδήποτε προκύψει.

#26 Updated by Vangelis Koukis over 9 years ago

  • Category set to old_synnefo

Also available in: Atom PDF