Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@activitycentral.org>2011-02-06 15:52:50 (GMT)
committer Anish Mangal <anish@activitycentral.com>2012-04-27 10:02:35 (GMT)
commitac0fcde62aa0aa866c8a435a314ac90445621fcc (patch)
tree0f11acd326db8966cc9f82df039b6a9e8f4784a1
parent8cb45c9e3d88847a2564b830f1e4b1ad66d147b6 (diff)
Notify on not sent feedbacks; fix issue with not auto resend
-rw-r--r--src/jarabe/model/feedback_collector.py32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/jarabe/model/feedback_collector.py b/src/jarabe/model/feedback_collector.py
index 93fa704..e239c9a 100644
--- a/src/jarabe/model/feedback_collector.py
+++ b/src/jarabe/model/feedback_collector.py
@@ -25,12 +25,14 @@ from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.generator import Generator
from email.encoders import encode_noop
+from gettext import gettext as _
import gconf
import gobject
import simplejson
from sugar import logger, feedback, util
+from jarabe import frame
_reports = {}
@@ -47,7 +49,7 @@ def start(host, port, auto_submit_delay):
_port = port
if auto_submit_delay > 0:
- gobject.timeout_add_seconds(auto_submit_delay, anonymous_submit)
+ gobject.timeout_add_seconds(auto_submit_delay, anonymous_submit, True)
def update(bundle_id, report, log_file):
@@ -86,24 +88,26 @@ def submit(message):
'nick': '',
'jabber_server': jabber,
}
- _submit(data)
+ _submit(data, False)
-def anonymous_submit():
+def anonymous_submit(implicit=False):
from jarabe.journal import misc
data = {}
client = gconf.client_get_default()
if client.get_bool('/desktop/sugar/feedback/anonymous_with_sn'):
data['serial_number'] = misc.get_xo_serial()
- _submit(data)
+ _submit(data, implicit)
+
+ return True
-def _submit(data=None):
+def _submit(data, implicit):
if data:
_reports.update(data)
if is_empty():
- return True
+ return
logging.debug('Sending feedback report: %r', _reports)
@@ -126,16 +130,15 @@ def _submit(data=None):
tar.close()
- _SubmitThread(tar_file).run()
-
- return True
+ _SubmitThread(tar_file, implicit).run()
class _SubmitThread(threading.Thread):
- def __init__(self, tar_file):
+ def __init__(self, tar_file, implicit):
threading.Thread.__init__(self)
self._tar_file = tar_file
+ self._implicit = implicit
def run(self):
try:
@@ -151,11 +154,16 @@ class _SubmitThread(threading.Thread):
response = conn.getresponse()
if response.status != 200:
- logging.error('Incorrect feedback submit: %s, %s',
+ raise Exception('Incorrect feedback submit: %s, %s',
response.status, response.read())
except Exception:
- logging.exception('Cannot submit feedback')
+ title = _('Cannot submit feedback')
+ msg = _('Feedback was not sent to %s:%s.') % (_host, _port)
+ if not self._implicit:
+ gobject.idle_add(lambda:
+ frame.get_view().add_message(summary=title, body=msg))
+ logging.exception('%s: %s', title, msg)
finally:
os.unlink(self._tar_file)
self._tar_file = None