コード例 #1
0
 def post(self):
     _msg = self.request.get('message', '0')
     if _msg is not None:
         sentOn = None
         _type = self.request.get('type', '')
         post_args = self.request.arguments()
         if _type in ['feedback', 'error-feedback']:
             if 'reportsentutc' in post_args:
                 sentOn = self.parseDateTime(
                     self.request.get('reportsentutc', ''))
             _groupId = long(self.request.get('groupid', ''))
             if _groupId and sentOn:
                 if _msg != 'Automatically sent':
                     fb = Feedback(groupId=_groupId,
                                   sendTime=sentOn,
                                   timezone=self.request.get(
                                       'reportsenttz', ''),
                                   type=_type,
                                   message=_msg)
                     fb.put()
                     q = taskqueue.Queue('feedback-export-queue')
                     q.add((taskqueue.Task(payload=fb.getExportLine(),
                                           method='PULL')))
                     Cnt.incr("Feedback_counter")
                 else:
                     logging.warning(
                         'Automatically sent feedback message, discarding.')
                 self.response.out.write("OK")
             else:
                 self.error(400)
         else:
             self.error(400)
     else:
         self.error(400)
コード例 #2
0
	def insert(cls, _name, _ts):
		version_query = AppVersion.all()
		version_query.filter('name =', _name.strip())
		versions = []
		versions = version_query.fetch(1)
		if versions:
			version = versions[0]
			if _ts and _ts.tzinfo == None:
				_ts = pytz.utc.localize(_ts)
			if pytz.utc.localize(version.lastIncident) < _ts:
				version.lastIncident = _ts
				logging.info("version " + version.name + " last incident: " + version.lastIncident.strftime(r"%d/%m/%Y %H:%M:%S %Z"))
			version.crashCount = version.crashCount + 1
			version.put()
			cacheId = "CrashReport%s_counter" % version.name
			memcache.set(cacheId, version.crashCount, 432000)
		else:
			def vcmp(x, y):
				gx = re.match(r'^([0-9.]+)((?:alpha|beta)?)((?:\d+)?)((?:\D.*)?)$', x).groups()
				gy = re.match(r'^([0-9.]+)((?:alpha|beta)?)((?:\d+)?)((?:\D.*)?)$', y).groups()
				revx = 0 if len(gx[2]) == 0 else int(gx[2])
				revy = 0 if len(gy[2]) == 0 else int(gy[2])
				return -cmp("%s%sz%04d%s" % (gx[0], gx[1], revx, gx[3]), "%s%sz%04d%s" % (gy[0], gy[1], revy, gy[3]))
			nv = AppVersion(name = _name.strip(), lastIncident = _ts, crashCount = 1)
			nv.put()
			cacheId = "CrashReport%s_counter" % nv.name
			memcache.set(cacheId, 1, 432000)
			Cnt.incr("AppVersion_counter")
			Lst.append('all_version_names_list', nv.name, vcmp)
コード例 #3
0
	def post(self):
		_msg = self.request.get('message', '0')
		if _msg is not None:
			sentOn = None
			_type = self.request.get('type', '')
			post_args = self.request.arguments()
			if _type in ['feedback', 'error-feedback']:
				if 'reportsentutc' in post_args:
					sentOn = self.parseDateTime(self.request.get('reportsentutc', ''))
				_groupId = long(self.request.get('groupid', ''))
				if _groupId and sentOn:
					if _msg != 'Automatically sent':
						fb = Feedback(groupId = _groupId,
								sendTime = sentOn,
								timezone = self.request.get('reportsenttz', ''),
								type = _type,
								message = _msg)
						fb.put()
						q = taskqueue.Queue('feedback-export-queue')
						q.add((taskqueue.Task(payload=fb.getExportLine(), method='PULL')))
						Cnt.incr("Feedback_counter")
					else:
						logging.warning('Automatically sent feedback message, discarding.')
					self.response.out.write("OK")
				else:
					self.error(400)
			else:
				self.error(400)
		else:
			self.error(400)
コード例 #4
0
	def linkToBug(self, save=True):
		#bug = memcache.get(key=self.signHash)
		#if bug == None:
		results = Bug.all()
		results.filter('signHash = ', self.signHash)
		bug = results.get()
		#if bug:
			#logging.debug("Found existing bug")
			#memcache.set(key=self.signHash, value=bug, time=7200)
		if bug:
			bugkey = bug.key()
			logging.debug("Assigning to bug: %s" % bugkey)
			self.bugKey = bugkey
			if save:
				self.put()
				Cnt.incr("CrashReport_counter")
			bug.count += 1
			bug.lastIncident = self.crashTime
			bug.put()
			cacheId = "CrashReport%d_counter" % bug.key().id()
			memcache.set(cacheId, bug.count, 432000)
			return bug
		else:
			nb = Bug(signature = self.crashSignature, signHash = self.signHash, count = 1, lastIncident = self.crashTime, linked = False, fixed = False, status = '', priority = '')
			self.bugKey = nb.put()
			q = taskqueue.Queue('bug-export-queue')
			q.add((taskqueue.Task(payload=nb.getExportLine(), method='PULL')))
			cacheId = "CrashReport%d_counter" % nb.key().id()
			memcache.set(cacheId, 1, 432000)
			Cnt.incr("Bug_counter")
			logging.debug("Created new bug: %s" % nb.key())
			if save:
				self.put()
				Cnt.incr("CrashReport_counter")
			return nb
コード例 #5
0
    def insert(cls, _name, _ts):
        version_query = AppVersion.all()
        version_query.filter('name =', _name.strip())
        versions = []
        versions = version_query.fetch(1)
        if versions:
            version = versions[0]
            if _ts and _ts.tzinfo == None:
                _ts = pytz.utc.localize(_ts)
            if pytz.utc.localize(version.lastIncident) < _ts:
                version.lastIncident = _ts
                logging.info(
                    "version " + version.name + " last incident: " +
                    version.lastIncident.strftime(r"%d/%m/%Y %H:%M:%S %Z"))
            version.crashCount = version.crashCount + 1
            version.put()
            cacheId = "CrashReport%s_counter" % version.name
            memcache.set(cacheId, version.crashCount, 432000)
        else:

            def vcmp(x, y):
                gx = re.match(
                    r'^([0-9.]+)((?:alpha|beta)?)((?:\d+)?)((?:\D.*)?)$',
                    x).groups()
                gy = re.match(
                    r'^([0-9.]+)((?:alpha|beta)?)((?:\d+)?)((?:\D.*)?)$',
                    y).groups()
                revx = 0 if len(gx[2]) == 0 else int(gx[2])
                revy = 0 if len(gy[2]) == 0 else int(gy[2])
                return -cmp("%s%sz%04d%s" %
                            (gx[0], gx[1], revx, gx[3]), "%s%sz%04d%s" %
                            (gy[0], gy[1], revy, gy[3]))

            nv = AppVersion(name=_name.strip(), lastIncident=_ts, crashCount=1)
            nv.put()
            cacheId = "CrashReport%s_counter" % nv.name
            memcache.set(cacheId, 1, 432000)
            Cnt.incr("AppVersion_counter")
            Lst.append('all_version_names_list', nv.name, vcmp)
コード例 #6
0
 def linkToBug(self, save=True):
     #bug = memcache.get(key=self.signHash)
     #if bug == None:
     results = Bug.all()
     results.filter('signHash = ', self.signHash)
     bug = results.get()
     #if bug:
     #logging.debug("Found existing bug")
     #memcache.set(key=self.signHash, value=bug, time=7200)
     if bug:
         bugkey = bug.key()
         logging.debug("Assigning to bug: %s" % bugkey)
         self.bugKey = bugkey
         if save:
             self.put()
             Cnt.incr("CrashReport_counter")
         bug.count += 1
         bug.lastIncident = self.crashTime
         bug.put()
         cacheId = "CrashReport%d_counter" % bug.key().id()
         memcache.set(cacheId, bug.count, 432000)
         return bug
     else:
         nb = Bug(signature=self.crashSignature,
                  signHash=self.signHash,
                  count=1,
                  lastIncident=self.crashTime,
                  linked=False,
                  fixed=False,
                  status='',
                  priority='')
         self.bugKey = nb.put()
         q = taskqueue.Queue('bug-export-queue')
         q.add((taskqueue.Task(payload=nb.getExportLine(), method='PULL')))
         cacheId = "CrashReport%d_counter" % nb.key().id()
         memcache.set(cacheId, 1, 432000)
         Cnt.incr("Bug_counter")
         logging.debug("Created new bug: %s" % nb.key())
         if save:
             self.put()
             Cnt.incr("CrashReport_counter")
         return nb