def report(msg): utils.report( system='mw-check-service', subject='mw-check-service error', from_email=options.report_from_mail.encode('utf-8'), mail_recipients=[options.report_recipient.encode('utf-8')], msg=msg, )
def send_report_mail(self, subject, **kwargs): if not (self.report_from_mail and self.report_recipients): return utils.report(system='mwlib.serve', subject=subject, from_email=self.report_from_mail, mail_recipients=self.report_recipients, write_file=False, **kwargs)
def send_report_mail(self, subject, **kwargs): if not (self.report_from_mail and self.report_recipients): return utils.report( system='mwlib.serve', subject=subject, from_email=self.report_from_mail, mail_recipients=self.report_recipients, **kwargs )
def reportError(command, metabook, res, baseurl, writer, from_email=None, mail_recipients=None, ): utils.report( system=system, subject='Error %r with command %r' % (res.get('reason', '?'), command), error=res.get('error'), res=res, metabook=metabook, baseurl=baseurl, writer=writer, from_email=from_email, mail_recipients=mail_recipients, ) sys.exc_clear()
def main(): parser = OptionParser(usage="%prog [OPTIONS]") parser.add_option("-b", "--baseurl", help="baseurl of wiki") parser.add_option("-w", "--writer", help="writer to use") parser.add_option('-l', '--logfile', help='log output to LOGFILE') parser.add_option('-f', '--from-email', help='From: email address for error mails', ) parser.add_option('-r', '--mail-recipients', help='To: email addresses ("," separated) for error mails', ) parser.add_option('-m', '--max-narticles', help='maximum number of articles for random collections (min is 1)', default=10, ) parser.add_option('-s', '--serviceurl', help="location of the mw-serve server to test", default='http://tools.pediapress.com/mw-serve/', # default='http://localhost:8899/mw-serve/', ) use_help = 'Use --help for usage information.' options, args = parser.parse_args() assert options.from_email if options.logfile: utils.start_logging(options.logfile) baseurl2api = {} baseurls = options.baseurl.split() for baseurl in baseurls: baseurl2api[baseurl] = mwapidb.APIHelper(baseurl) maxarts = int(options.max_narticles) mail_recipients = None if options.mail_recipients: mail_recipients = options.mail_recipients.split(',') ok_count = 0 fail_count = 0 while True: baseurl = random.choice(baseurls) try: ok = checkservice(baseurl2api[baseurl], options.serviceurl, baseurl, options.writer, maxarts, from_email=options.from_email, mail_recipients=mail_recipients, ) if ok: ok_count += 1 log.check('OK') else: fail_count += 1 log.check('FAIL!') except KeyboardInterrupt: break except BaseException: fail_count += 1 log.check('EPIC FAIL!!!') utils.report( system=system, subject='checkservice() failed, waiting 60seconds', from_email=options.from_email, mail_recipients=mail_recipients, ) sys.exc_clear() time.sleep(60) log.info('%s, %s\tok: %d, failed: %d' % ( baseurl, options.writer, ok_count, fail_count, ))
def test_report(): data = utils.report(system='system123', subject='subject123', foo='foo123') assert 'foo' in data assert 'foo123' in data