def infer_schema(namespace, stream): now = epoch_time_to_kronos_time(time.time()) backend, configuration = router.backend_to_retrieve(namespace, stream) events = backend.retrieve(namespace, stream, 0, now, None, configuration, order=ResultOrder.DESCENDING, limit=100) schema_type = NullType() for event in events: schema_type = schema_type.combine(get_schema_type(marshal.loads(event))) schema = schema_type.to_dict() schema["$schema"] = "http://json-schema.org/draft-04/schema" return schema
def infer_schema(namespace, stream): now = epoch_time_to_kronos_time(time.time()) backend, configuration = router.backend_to_retrieve(namespace, stream) events = backend.retrieve(namespace, stream, 0, now, None, configuration, order=ResultOrder.DESCENDING, limit=100) schema_type = NullType() for event in events: schema_type = schema_type.combine(get_schema_type( marshal.loads(event))) schema = schema_type.to_dict() schema['$schema'] = 'http://json-schema.org/draft-04/schema' return schema
stream = request_json['stream'] validate_stream(stream) except Exception, e: log.exception('get_events: stream validation failed for `%s`', request_json.get('stream')) start_response('400 Bad Request', headers) yield marshal.dumps({ERRORS_FIELD: [repr(e)], SUCCESS_FIELD: False}) return namespace = request_json.get('namespace', settings.default_namespace) limit = int(request_json.get('limit', MAX_LIMIT)) if limit <= 0: events = [] else: backend, configuration = router.backend_to_retrieve(namespace, stream) events = backend.retrieve( namespace, stream, long(request_json.get('start_time', 0)), long(request_json['end_time']), request_json.get('start_id'), configuration, order=request_json.get('order', ResultOrder.ASCENDING), limit=limit) start_response('200 OK', headers) string_buffer = StringIO() for event in events: # TODO(usmanm): Once all backends start respecting limit, remove this check.
try: stream = request_json['stream'] validate_stream(stream) except Exception, e: log.exception('get_events: stream validation failed for `%s`', request_json.get('stream')) start_response('400 Bad Request', headers) yield marshal.dumps({ERRORS_FIELD: [repr(e)], SUCCESS_FIELD: False}) return namespace = request_json.get('namespace', settings.default_namespace) limit = int(request_json.get('limit', MAX_LIMIT)) if limit <= 0: events = [] else: backend, configuration = router.backend_to_retrieve(namespace, stream) events = backend.retrieve(namespace, stream, long(request_json.get('start_time', 0)), long(request_json['end_time']), request_json.get('start_id'), configuration, order=request_json.get( 'order', ResultOrder.ASCENDING), limit=limit) start_response('200 OK', headers) string_buffer = StringIO() for event in events: # TODO(usmanm): Once all backends start respecting limit, remove this check.