1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
import json
from typing import Any
from ._string_utils import assert_string_is_not_empty
class ClientRequestProperties:
"""This class is a POD used by client making requests to describe specific needs from the service executing the requests.
For more information please look at: https://docs.microsoft.com/en-us/azure/kusto/api/netfx/request-properties
"""
client_request_id: str
application: str
user: str
_CLIENT_REQUEST_ID = "client_request_id"
results_defer_partial_query_failures_option_name = "deferpartialqueryfailures"
request_timeout_option_name = "servertimeout"
no_request_timeout_option_name = "norequesttimeout"
def __init__(self):
self._options = {}
self._parameters = {}
self.client_request_id = None
self.application = None
self.user = None
def set_parameter(self, name: str, value: str):
"""Sets a parameter's value"""
assert_string_is_not_empty(name)
self._parameters[name] = value
def has_parameter(self, name: str) -> bool:
"""Checks if a parameter is specified."""
return name in self._parameters
def get_parameter(self, name: str, default_value: str) -> str:
"""Gets a parameter's value."""
return self._parameters.get(name, default_value)
def set_option(self, name: str, value: Any):
"""Sets an option's value"""
assert_string_is_not_empty(name)
self._options[name] = value
def has_option(self, name: str) -> bool:
"""Checks if an option is specified."""
return name in self._options
def get_option(self, name: str, default_value: Any) -> str:
"""Gets an option's value."""
return self._options.get(name, default_value)
def to_json(self) -> str:
"""Safe serialization to a JSON string."""
return json.dumps({"Options": self._options, "Parameters": self._parameters}, default=str)
def get_tracing_attributes(self) -> dict:
"""Gets dictionary of attributes to be documented during tracing"""
return {self._CLIENT_REQUEST_ID: str(self.client_request_id)}
|