def __init__(self, user_id=None, project_id=None, is_admin=None, read_deleted='no', roles=None, remote_address=None, timestamp=None, request_id=None, auth_token=None, overwrite=True, quota_class=None, user_name=None, project_name=None, service_catalog=None, instance_lock_checked=False, user_auth_plugin=None, **kwargs):
    ":param read_deleted: 'no' indicates deleted records are hidden,\n                'yes' indicates deleted records are visible,\n                'only' indicates that *only* deleted records are visible.\n\n           :param overwrite: Set to False to ensure that the greenthread local\n                copy of the index is not overwritten.\n\n           :param user_auth_plugin: The auth plugin for the current request's\n                authentication data.\n\n           :param kwargs: Extra arguments that might be present, but we ignore\n                because they possibly came in from older rpc messages.\n        "
    user = kwargs.pop('user', None)
    tenant = kwargs.pop('tenant', None)
    super(RequestContext, self).__init__(auth_token=auth_token, user=(user_id or user), tenant=(project_id or tenant), domain=kwargs.pop('domain', None), user_domain=kwargs.pop('user_domain', None), project_domain=kwargs.pop('project_domain', None), is_admin=is_admin, read_only=kwargs.pop('read_only', False), show_deleted=kwargs.pop('show_deleted', False), request_id=request_id, resource_uuid=kwargs.pop('resource_uuid', None), overwrite=overwrite)
    kwargs.pop('user_identity', None)
    if kwargs:
        LOG.warning((_LW('Arguments dropped when creating context: %s') % str(kwargs)))
    self.user_id = user_id
    self.project_id = project_id
    self.roles = (roles or [])
    self.read_deleted = read_deleted
    self.remote_address = remote_address
    if (not timestamp):
        timestamp = timeutils.utcnow()
    if isinstance(timestamp, six.string_types):
        timestamp = timeutils.parse_strtime(timestamp)
    self.timestamp = timestamp
    if service_catalog:
        self.service_catalog = [s for s in service_catalog if (s.get('type') in ('volume', 'volumev2', 'key-manager'))]
    else:
        self.service_catalog = []
    self.instance_lock_checked = instance_lock_checked
    self.quota_class = quota_class
    self.user_name = user_name
    self.project_name = project_name
    self.is_admin = is_admin
    self.user_auth_plugin = user_auth_plugin
    if (self.is_admin is None):
        self.is_admin = policy.check_is_admin(self)
:param read_deleted: 'no' indicates deleted records are hidden,
     'yes' indicates deleted records are visible,
     'only' indicates that *only* deleted records are visible.

:param overwrite: Set to False to ensure that the greenthread local
     copy of the index is not overwritten.

:param user_auth_plugin: The auth plugin for the current request's
     authentication data.

:param kwargs: Extra arguments that might be present, but we ignore
     because they possibly came in from older rpc messages.
def __init__(self, user_id=None, project_id=None, is_admin=None, read_deleted='no', roles=None, remote_address=None, timestamp=None, request_id=None, auth_token=None, overwrite=True, quota_class=None, user_name=None, project_name=None, service_catalog=None, instance_lock_checked=False, user_auth_plugin=None, **kwargs):
    ":param read_deleted: 'no' indicates deleted records are hidden,\n                'yes' indicates deleted records are visible,\n                'only' indicates that *only* deleted records are visible.\n\n           :param overwrite: Set to False to ensure that the greenthread local\n                copy of the index is not overwritten.\n\n           :param user_auth_plugin: The auth plugin for the current request's\n                authentication data.\n\n           :param kwargs: Extra arguments that might be present, but we ignore\n                because they possibly came in from older rpc messages.\n        "
    user = kwargs.pop('user', None)
    tenant = kwargs.pop('tenant', None)
    super(RequestContext, self).__init__(auth_token=auth_token, user=(user_id or user), tenant=(project_id or tenant), domain=kwargs.pop('domain', None), user_domain=kwargs.pop('user_domain', None), project_domain=kwargs.pop('project_domain', None), is_admin=is_admin, read_only=kwargs.pop('read_only', False), show_deleted=kwargs.pop('show_deleted', False), request_id=request_id, resource_uuid=kwargs.pop('resource_uuid', None), overwrite=overwrite)
    kwargs.pop('user_identity', None)
    if kwargs:
        LOG.warning((_LW('Arguments dropped when creating context: %s') % str(kwargs)))
    self.user_id = user_id
    self.project_id = project_id
    self.roles = (roles or [])
    self.read_deleted = read_deleted
    self.remote_address = remote_address
    if (not timestamp):
        timestamp = timeutils.utcnow()
    if isinstance(timestamp, six.string_types):
        timestamp = timeutils.parse_strtime(timestamp)
    self.timestamp = timestamp
    if service_catalog:
        self.service_catalog = [s for s in service_catalog if (s.get('type') in ('volume', 'volumev2', 'key-manager'))]
    else:
        self.service_catalog = []
    self.instance_lock_checked = instance_lock_checked
    self.quota_class = quota_class
    self.user_name = user_name
    self.project_name = project_name
    self.is_admin = is_admin
    self.user_auth_plugin = user_auth_plugin
    if (self.is_admin is None):
        self.is_admin = policy.check_is_admin(self)