Repository URL to install this package:
|
Version:
0.8.1 ▾
|
try:
from typing import Dict, Optional, Tuple
from supertenant.superbrain import ActionDict, SpanID
except ImportError:
pass
from supertenant import consts
from supertenant.supermeter.data import HTTPData
from supertenant.supermeter.managers.basic_manager import BaseManager
class HTTPManager(BaseManager):
def __init__(self):
# type: () -> None
super(HTTPManager, self).__init__()
@classmethod
def open_span(cls, data):
# type: (HTTPData) -> Tuple[Optional[SpanID], Optional[ActionDict], Optional[int]]
span_type = data.get_span_type()
if span_type is None:
raise Exception("expected a span_type")
return super(HTTPManager, cls).open_span_with_type(span_type, data)
@classmethod
def get_headers_overrides(cls, span_id):
# type: (SpanID) -> Dict[str, str]
headers_overrides = {} # type: Dict[str, str]
override_keys_string = super(HTTPManager, cls).get_span_label(
span_id, consts.LABEL_SUPERTENANT_ACTION_OVERRIDE_HTTP_HEADERS
)
if override_keys_string is None or override_keys_string == "":
return headers_overrides
override_keys = override_keys_string.split(",")
for override_key in override_keys:
override_value = super(HTTPManager, cls).get_span_label(span_id, HTTPData.get_header_label(override_key))
if override_value is not None and override_value != "":
headers_overrides[override_key] = override_value
return headers_overrides