def can_cross_all_users_outside_percentage(self): bridge_name = "balrog" filter_type = "all-users" bridge = GandalfBridge.get_or_insert(bridge_name) filter = GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=True) filter.put() identity_percentage = BridgeFilter._identity_percentage(filter.key()) filter.percentage = identity_percentage filter.put() return gandalf(bridge_name)
def can_cross_all_users_outside_percentage(self): bridge_name = "balrog" filter_type = "all-users" bridge = GandalfBridge.get_or_insert(bridge_name) filter = GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=True) filter.put() identity_percentage = BridgeFilter._identity_percentage(filter.key()) filter.percentage = identity_percentage filter.put() return gandalf(bridge_name)
def post(self): if not can_control_gandalf(): return action = self.request.get('action') if action == "new": filter_type = self.request.get('filter_type') bridge_name = self.request.get('bridge_name') whitelist = self.request.get('whitelist') == "1" if not filter_type: raise Exception("Must include 'filter_type' parameter") if not bridge_name: raise Exception("Must include 'bridge_name' parameter") bridge = GandalfBridge.get_by_key_name(bridge_name) if not bridge: raise Exception("Bridge '%s' does not exist" % bridge_name) context = BridgeFilter.find_subclass(filter_type).initial_context() filter = GandalfFilter(bridge=bridge, filter_type=filter_type, context=context, whitelist=whitelist) filter.put() else: filter_key = self.request.get('filter_key') if not filter_key: raise Exception("Must include 'filter_key' parameter") filter = GandalfFilter.get(filter_key) if action == "delete": filter.delete() elif action == "save": try: percentage = int(self.request.get('percentage')) if 0 <= percentage <= 100: filter.percentage = percentage except ValueError: pass for key in filter.context: value = self.request.get(key) if value is not None: filter.context[key] = value filter.put() context = { "success": True, } self.response.headers["Content-Type"] = "application/json" self.response.out.write(jsonify(context))
def post(self): if not can_control_gandalf(): return action = self.request.get('action') if action == "new": filter_type = self.request.get('filter_type') bridge_name = self.request.get('bridge_name') whitelist = self.request.get('whitelist') == "1" if not filter_type: raise Exception("Must include 'filter_type' parameter") if not bridge_name: raise Exception("Must include 'bridge_name' parameter") bridge = GandalfBridge.get_by_key_name(bridge_name) if not bridge: raise Exception("Bridge '%s' does not exist" % bridge_name) context = BridgeFilter.find_subclass(filter_type).initial_context() filter = GandalfFilter(bridge=bridge, filter_type=filter_type, context=context, whitelist=whitelist) filter.put() else: filter_key = self.request.get('filter_key') if not filter_key: raise Exception("Must include 'filter_key' parameter") filter = GandalfFilter.get(filter_key) if action == "delete": filter.delete() elif action == "save": try: percentage = int(self.request.get('percentage')) if 0 <= percentage <= 100: filter.percentage = percentage except ValueError: pass for key in filter.context: value = self.request.get(key) if value is not None: filter.context[key] = value filter.put() context = { "success": True, } self.response.headers["Content-Type"] = "application/json" self.response.out.write(jsonify(context))