fix send emails to team members

This commit is contained in:
Ishaan Jaff 2024-06-14 20:11:16 -07:00
parent 408899dac8
commit 09b1d52ea1
2 changed files with 49 additions and 43 deletions

View file

@ -2,6 +2,7 @@ from datetime import datetime
from functools import wraps from functools import wraps
from litellm.proxy._types import UserAPIKeyAuth, ManagementEndpointLoggingPayload from litellm.proxy._types import UserAPIKeyAuth, ManagementEndpointLoggingPayload
from litellm.proxy.common_utils.http_parsing_utils import _read_request_body from litellm.proxy.common_utils.http_parsing_utils import _read_request_body
from litellm._logging import verbose_logger
from fastapi import Request from fastapi import Request
@ -20,53 +21,58 @@ def management_endpoint_wrapper(func):
try: try:
result = await func(*args, **kwargs) result = await func(*args, **kwargs)
end_time = datetime.now() end_time = datetime.now()
try:
if kwargs is None:
kwargs = {}
user_api_key_dict: UserAPIKeyAuth = (
kwargs.get("user_api_key_dict") or UserAPIKeyAuth()
)
_http_request: Request = kwargs.get("http_request")
parent_otel_span = user_api_key_dict.parent_otel_span
if parent_otel_span is not None:
from litellm.proxy.proxy_server import open_telemetry_logger
if kwargs is None: if open_telemetry_logger is not None:
kwargs = {} if _http_request:
user_api_key_dict: UserAPIKeyAuth = ( _route = _http_request.url.path
kwargs.get("user_api_key_dict") or UserAPIKeyAuth() _request_body: dict = await _read_request_body(
) request=_http_request
_http_request: Request = kwargs.get("http_request") )
parent_otel_span = user_api_key_dict.parent_otel_span _response = dict(result) if result is not None else None
if parent_otel_span is not None:
from litellm.proxy.proxy_server import open_telemetry_logger logging_payload = ManagementEndpointLoggingPayload(
route=_route,
request_data=_request_body,
response=_response,
start_time=start_time,
end_time=end_time,
)
await open_telemetry_logger.async_management_endpoint_success_hook(
logging_payload=logging_payload,
parent_otel_span=parent_otel_span,
)
if open_telemetry_logger is not None:
if _http_request: if _http_request:
_route = _http_request.url.path _route = _http_request.url.path
_request_body: dict = await _read_request_body( # Flush user_api_key cache if this was an update/delete call to /key, /team, or /user
request=_http_request if _route in [
) "/key/update",
_response = dict(result) if result is not None else None "/key/delete",
"/team/update",
"/team/delete",
"/user/update",
"/user/delete",
"/customer/update",
"/customer/delete",
]:
from litellm.proxy.proxy_server import user_api_key_cache
logging_payload = ManagementEndpointLoggingPayload( user_api_key_cache.flush_cache()
route=_route, except Exception as e:
request_data=_request_body, # Non-Blocking Exception
response=_response, verbose_logger.debug("Error in management endpoint wrapper: %s", str(e))
start_time=start_time, pass
end_time=end_time,
)
await open_telemetry_logger.async_management_endpoint_success_hook(
logging_payload=logging_payload,
parent_otel_span=parent_otel_span,
)
if _http_request:
_route = _http_request.url.path
# Flush user_api_key cache if this was an update/delete call to /key, /team, or /user
if _route in [
"/key/update",
"/key/delete",
"/team/update",
"/team/delete",
"/user/update",
"/user/delete",
"/customer/update",
"/customer/delete",
]:
from litellm.proxy.proxy_server import user_api_key_cache
user_api_key_cache.flush_cache()
return result return result
except Exception as e: except Exception as e:

View file

@ -8915,7 +8915,7 @@ async def new_user(data: NewUserRequest):
), ),
), ),
http_request=Request( http_request=Request(
scope={"type": "http"}, scope={"type": "http", "path": "/user/new"},
), ),
) )