예제 #1
0
 def _handle_internal(self, params):
     if self.cluster.role != 'master':
         logger.warning('Trying to call update_user_agent_stats on %s server', self.cluster.role)
         raise errors.NotAllowedError()
     if self.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     with self.conn.begin():
         update_user_agent_stats(self.conn, params.application_id, params.date,
                                 params.user_agent, params.ip, params.count)
     return {}
예제 #2
0
 def _handle_internal(self, params):
     if self.ctx.config.cluster.role != 'master':
         logger.warning('Trying to call update_lookup_stats on %s server',
                        self.ctx.config.cluster.role)
         raise errors.NotAllowedError()
     if self.ctx.config.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     app_db = self.ctx.db.get_app_db()
     update_lookup_stats(app_db, params.application_id, params.date,
                         params.hour, params.type, params.count)
     self.ctx.db.session.commit()
     return {}
예제 #3
0
 def _handle_internal(self, params):
     if self.ctx.config.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     update_application_status(self.ctx.db.get_app_db(),
                               params.application_id, params.active)
     self.ctx.db.session.commit()
     return {'id': params.application_id, 'active': params.active}
예제 #4
0
 def _handle_internal(self, params):
     if self.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     account_id, account_api_key = insert_account(self.conn, {
         'name': 'External User',
         'anonymous': True,
     })
     return {'id': account_id, 'api_key': account_api_key}
예제 #5
0
 def _handle_internal(self, params):
     if self.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     application_id, application_api_key = insert_application(self.conn, {
         'account_id': params.account_id,
         'name': params.name,
         'version': params.version,
     })
     return {'id': application_id, 'api_key': application_api_key}
예제 #6
0
 def _handle_internal(self, params):
     if self.ctx.config.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     application_id = check_app_api_key(self.ctx.config,
                                        self.ctx.db.get_app_db(),
                                        params.api_key)
     if not application_id:
         raise errors.InvalidAPIKeyError()
     return {'id': application_id}
예제 #7
0
 def _handle_internal(self, params):
     if self.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     application_ids = dict((app['id'], app['apikey']) for app in params.applications)
     kwargs = {}
     if params.from_date is not None:
         kwargs['from_date'] = params.from_date
     if params.to_date is not None:
         kwargs['to_date'] = params.to_date
     if params.days is not None:
         kwargs['days'] = params.days
     stats = find_application_lookup_stats_multi(self.conn, application_ids.keys(), **kwargs)
     for entry in stats:
         entry['date'] = entry['date'].strftime('%Y-%m-%d')
     return {'stats': stats}
예제 #8
0
 def _handle_internal(self, params):
     if self.cluster.secret != params.secret:
         logger.warning('Invalid cluster secret')
         raise errors.NotAllowedError()
     update_application_status(self.conn, params.application_id, params.active)
     return {'id': params.application_id, 'active': params.active}