def __init__(self, request, context=None): # Models are isolated by user. parent_id = self.get_parent_id(request) # Authentication to storage is transmitted as is (cf. cloud_storage). auth = request.headers.get('Authorization') # ID generator by resource name in settings. default_id_generator = request.registry.id_generators[''] resource_name = context.resource_name if context else '' id_generator = request.registry.id_generators.get(resource_name, default_id_generator) self.model = self.default_model( storage=request.registry.storage, id_generator=id_generator, collection_id=classname(self), parent_id=parent_id, auth=auth) self.request = request self.context = context self.record_id = self.request.matchdict.get('id') self.force_patch_update = False # Log resource context. logger.bind(collection_id=self.model.collection_id, collection_timestamp=self.timestamp)
def __init__(self, request, context=None): self.request = request self.context = context self.record_id = self.request.matchdict.get("id") self.force_patch_update = False content_type = str(self.request.headers.get("Content-Type")).lower() self._is_json_patch = content_type == "application/json-patch+json" self._is_merge_patch = content_type == "application/merge-patch+json" # Models are isolated by user. parent_id = self.get_parent_id(request) # Authentication to storage is transmitted as is (cf. cloud_storage). auth = request.headers.get("Authorization") if not hasattr(self, "model"): self.model = self.default_model( storage=request.registry.storage, id_generator=self.id_generator, collection_id=classname(self), parent_id=parent_id, auth=auth, ) # Initialize timestamp as soon as possible. self.timestamp
def __init__(self, request, context=None): self.request = request self.context = context self.record_id = self.request.matchdict.get('id') self.force_patch_update = False content_type = str(self.request.headers.get('Content-Type')).lower() self._is_json_patch = content_type == 'application/json-patch+json' self._is_merge_patch = content_type == 'application/merge-patch+json' # Models are isolated by user. parent_id = self.get_parent_id(request) # Authentication to storage is transmitted as is (cf. cloud_storage). auth = request.headers.get('Authorization') if not hasattr(self, 'model'): self.model = self.default_model( storage=request.registry.storage, id_generator=self.id_generator, collection_id=classname(self), parent_id=parent_id, auth=auth) # Initialize timestamp as soon as possible. self.timestamp
def watch_execution_time(self, obj, prefix='', classname=None): classname = classname or utils.classname(obj) members = dir(obj) for name in members: value = getattr(obj, name) is_method = isinstance(value, types.MethodType) if not name.startswith('_') and is_method: statsd_key = "{}.{}.{}".format(prefix, classname, name) decorated_method = self.timer(statsd_key)(value) setattr(obj, name, decorated_method)
def watch_execution_time(self, obj, prefix="", classname=None): classname = classname or utils.classname(obj) members = dir(obj) for name in members: value = getattr(obj, name) is_method = isinstance(value, types.MethodType) if not name.startswith("_") and is_method: statsd_key = f"{prefix}.{classname}.{name}" decorated_method = self.timer(statsd_key)(value) setattr(obj, name, decorated_method)
def watch_execution_time(self, obj, prefix='', classname=None): classname = classname or utils.classname(obj) members = dir(obj) for name in members: value = getattr(obj, name) is_method = isinstance(value, types.MethodType) if not name.startswith('_') and is_method: statsd_key = '{}.{}.{}'.format(prefix, classname, name) decorated_method = self.timer(statsd_key)(value) setattr(obj, name, decorated_method)
def __init__(self, request, context=None): """ :param request: The current request object. :param context: The resulting context obtained from :class:`kinto.core.authorization.AuthorizationPolicy`. """ self.request = request self.context = context self.object_id = self.request.matchdict.get("id") content_type = str(self.request.headers.get("Content-Type")).lower() self._is_json_patch = content_type == "application/json-patch+json" self._is_merge_patch = content_type == "application/merge-patch+json" # Models are isolated by user. parent_id = self.get_parent_id(request) # Authentication to storage is transmitted as is (cf. cloud_storage). auth = request.headers.get("Authorization") # The principal of an anonymous is system.Everyone current_principal = self.request.prefixed_userid or Everyone if not hasattr(self, "model"): self.model = self.default_model( storage=request.registry.storage, permission=request.registry.permission, id_generator=self.id_generator, resource_name=classname(self), parent_id=parent_id, current_principal=current_principal, prefixed_principals=request.prefixed_principals, auth=auth, ) # Initialize timestamp as soon as possible. self.timestamp if self.context: self.model.get_permission_object_id = functools.partial( self.context.get_permission_object_id, self.request)