def handle(self, input): match = self._rx.match(input) if match is not None: parsed = self.parse_query(match.group('query')) if parsed is not None: result = OrderedDict() result['stats'] = self.parse_line_stats(match.group('stats')) result['stats']['millis'] = match.group('query_time') command = parsed.keys()[0] toMask = OrderedDict() result['command'] = command result['supported'] = True if command.lower() == 'count': result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['query']) result['query'] = query['$query'] toMask = query elif command.lower() == 'findandmodify': if 'sort' in parsed: result['orderby'] = parsed['sort'] toMask['$orderby'] = parsed['sort'] result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['query']) result['query'] = query['$query'] if 'sort' in parsed: result['orderby'] = parsed['sort'] toMask['$orderby'] = parsed['sort'] toMask['$query'] = query elif command.lower() == 'geonear': result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['search']) result['query'] = query toMask = query else: result['supported'] = False result['ns'] = match.group('db') + '.$cmd' result['command'] = command toMask['$cmd'] = command result['queryMask'] = small_json(toMask) return result return None
def do_handle(self, input): match = self._rx.match(input) if match is not None: parsed = self.parse_query(match.group('query')) if parsed is not None: result = OrderedDict() result['stats'] = self.parse_line_stats(match.group('stats')) result['stats']['millis'] = match.group('query_time') command = parsed.keys()[0] toMask = OrderedDict() result['command'] = command result['supported'] = True if command.lower() == 'count': result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['query']) result['query'] = query['$query'] toMask = query elif command.lower() == 'findandmodify': if 'sort' in parsed: result['orderby'] = parsed['sort'] toMask['$orderby'] = parsed['sort'] result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['query']) result['query'] = query['$query'] if 'sort' in parsed: result['orderby'] = parsed['sort'] toMask['$orderby'] = parsed['sort'] toMask['$query'] = query elif command.lower() == 'geonear': result['ns'] = match.group('db') + '.' result['ns'] += parsed[command] query = self.standardize_query(parsed['search']) result['query'] = query toMask = query else: result['supported'] = False result['ns'] = match.group('db') + '.$cmd' result['command'] = command toMask['$cmd'] = command result['queryMask'] = small_json(toMask) return result return None
def handle(self, input): match = self._rx.match(input) if match is not None: parsed = self.parse_query(match.group('query')) if parsed is not None: result = OrderedDict() scrubbed = self.standardize_query(parsed) result['query'] = scrubbed['$query'] if '$orderby' in scrubbed: result['orderby'] = scrubbed['$orderby'] result['queryMask'] = small_json(scrubbed) result['ns'] = match.group('ns') result['stats'] = self.parse_line_stats(match.group('stats')) result['stats']['millis'] = match.group('query_time') result['supported'] = True return result return None
def do_handle(self, input): match = self._rx.match(input) if match is not None: parsed = self.parse_query(match.group('query')) if parsed is not None: result = OrderedDict() scrubbed = self.standardize_query(parsed) result['query'] = scrubbed['$query'] if '$orderby' in scrubbed: result['orderby'] = scrubbed['$orderby'] result['queryMask'] = small_json(scrubbed) result['ns'] = match.group('ns') result['stats'] = self.parse_line_stats(match.group('stats')) result['stats']['millis'] = match.group('query_time') result['supported'] = True return result return None
def handle(self, input): result = OrderedDict() query = None orderby = None if (input is not None) and (input.has_key('op')): if input['op'] == 'query': if input['query'].has_key('$query'): query = input['query']['$query'] if input['query'].has_key('$orderby'): orderby = input['query']['$orderby'] else: query = input['query'] result['ns'] = input['ns'] elif input['op'] == 'update': query = input['query'] if input.has_key('updateobj'): if input['updateobj'].has_key('orderby'): orderby = input['updateobj']['orderby'] result['ns'] = input['ns'] elif ((input['op'] == 'command') and ((input['command'].has_key('count')) or (input['command'].has_key('findAndModify')))): query = input['command']['query'] db = input['ns'][0:input['ns'].rfind('.')] result['ns'] = db + "." + input['command']['count'] else: return None toMask = OrderedDict() if orderby is not None: result['orderby'] = orderby toMask['$orderby'] = orderby result['query'] = scrub(query) toMask['$query'] = query result['queryMask'] = small_json(toMask) result['stats'] = {'millis': input['millis']} return result else: return None
def mask(parsed): return small_json(parsed)