Ejemplo n.º 1
0
    def post(self):

        post_values = self.request.POST
        logging.debug('Slack Command POST: %s' % post_values)

        command = self.request.POST['command']
        text = self.request.POST['text'] or 'null'
        botMsg('Received Slack Slash Command %s %s' % (command, text))
        response_text = 'Received %s %s' % (command, text)

        if self.request.POST['token'] != settings.SLACK_OPS_TOKEN:
            logging.error('Invalid Slack Ops Token: %s' % self.request.POST['token'])
            return self.response.out.write('Invalid Ops Token')

        if text == 'test':
            # TODO - invoke tests
            logging.debug('Invoking (NOT FOR NOW) tests via slash ops command')
            # TODO: return some textual status of test results
            pass
        elif text == 'no text':
            # no subcommand, default: hello
            response_text = 'hello'
        else:
            logging.error('Unknown Ops subcommand %s' % text)
            response_text = 'Unknown Ops subcommand %s' % text

        return self.response.out.write(response_text)
Ejemplo n.º 2
0
    def log_exception(self, msg=None, e=None):
        """ log an exception

        msg: our error send_message
        e: exception passed in, or not

        TODO: use this more places

        TODO: i don't think this works right yet, msg is sometimes incomplete.

        """

        if not msg:
            if e:
                msg = e
            else:
                msg = sys.exc_info()[0].__name__
        msg = '%s, %s' % (msg, self.request.remote_addr)
        logging.exception(msg)
        botMsg('%s ' % msg)
Ejemplo n.º 3
0
    def _purge(cls, before):
        """ purge old AppData from App Engine datastore.
            this runs deferred

        """

        ad_keys, next_curs, more = cls.query(cls.added <= before).fetch_page(TWO_MANY, keys_only=True)
        if ad_keys:
            logging.info('purger purging %d old app data before %s' % (len(ad_keys), before))
            try:
                ndb.delete_multi(ad_keys)
            except Exception as e:
                logging.error('purger error %s purging old app data' % e)
        else:
            logging.debug('purger - no app data to purge prior to %s' % before)

        if more:
            botMsg('app data purger has more to do after purging %d entries...' % len(ad_keys))
            # don't really need to use cursor if we're deleting before a data. unless saves query processing? don't know
            deferred.defer(cls._purge, before=before, _queue="purger")
        return
Ejemplo n.º 4
0
    def get(self):

        msg = self.log_access()
        botMsg('%s' % msg)

        return self.render_to_response('templates/index.html', {'data': None})