Module axesdnSDK.ados.router.get_router_sorted_topn
Expand source code
from axesdnSDK.ados.ados_request import AdosRequest
from axesdnSDK.ados.const import *
from axesdnSDK.ados.exception import *
from datetime import datetime, timedelta
class GetRouterSortedTopnRequest(AdosRequest):
def __init__(self, router_uuid, interfaces):
"""
Request to get TopN sorted data for router
:param router_uuid: string, uuid of router
:param interfaces: [string], list of interface
"""
super().__init__('get_router_sorted_topn', 'router', 'GET', 'api/v1/router/'+router_uuid+'/topn/sort')
# set default time range
self._end_time = datetime.now()
self._set_param("end", self._end_time.strftime("%Y-%m-%dT%H:%M:%S"))
self._start_time = self._end_time - timedelta(seconds=DEFAULT_TOPN_TIME_RANGE_SECONDS)
self._set_param("start", self._start_time.strftime("%Y-%m-%dT%H:%M:%S"))
# set default parameters for topn
if not isinstance(interfaces, list):
raise AdosDataTypeError("parameter 'interfaces' should be a list of string")
self._ifaces = interfaces
self._set_param("ifaces", ",".join(self._ifaces))
self._set_param("top_num", DEFAULT_TOPN_NUM.value)
self._set_param("sort_for", DEFAULT_TOPN_SORT_FOR.value)
self._set_param("sort_by", DEFAULT_TOPN_SORT_BY.value)
self._set_param("direction", DEFAULT_TOPN_DIRECTION.value)
def set_time_range(self, start, end):
"""
Set time range for request
:param start: datetime, start time of request
:param end: datetime, end time of request
"""
if not isinstance(start, datetime):
raise AdosDataTypeError("parameter 'start' is not datetime type")
if not isinstance(end, datetime):
raise AdosDataTypeError("parameter 'end' is not datetime type")
if (end - start).total_seconds() <= 0:
raise AdosParameterError("parameter 'end' can't be less equal than 'start'")
self._end_time = end
self._set_param("end", end.strftime("%Y-%m-%dT%H:%M:%S"))
self._start_time = start
self._set_param("start", start.strftime("%Y-%m-%dT%H:%M:%S"))
def get_start_time(self):
"""
Get start time of time range
:return: datetime
"""
return self._start_time
def get_end_time(self):
"""
Get end time of time range
:return: datetime
"""
return self._end_time
def get_ifaces(self):
"""
Get list of interface
:return: [string]
"""
return self._ifaces
def set_topn_num(self, top_num):
"""
Set number of TopN
:param top_num: TopnNum
"""
if not isinstance(top_num, TopnNum):
raise AdosDataTypeError("parameter 'top_num' should be 'TopnNum' type")
self._set_param("top_num", top_num.value)
def get_topn_num(self):
"""
Get number of TopN
:return: TopnNum
"""
top_num = self._get_param("top_num")
return TopnNum(top_num)
def set_topn_sort_for(self, sort_for):
"""
Set sort for of TopN
:param sort_for: TopnSortFor
"""
if not isinstance(sort_for, TopnSortFor):
raise AdosDataTypeError("parameter 'sort_for' should be 'TopnSortFor' type")
self._set_param("sort_for", sort_for.value)
def get_topn_sort_for(self):
"""
Get sort for of TopN
:return: TopnSortFor
"""
sort_for = self._get_param("sort_for")
return TopnSortFor(sort_for)
def set_topn_sort_by(self, sort_by):
"""
Set sort by of TopN
:param sort_by: TopnSortBy
"""
if not isinstance(sort_by, TopnSortBy):
raise AdosDataTypeError("parameter 'sort_by' should be 'TopnSortBy' type")
self._set_param("sort_by", sort_by.value)
def get_topn_sort_by(self):
"""
Get sort by of TopN
:return: TopnSortBy
"""
sort_by = self._get_param("sort_by")
return TopnSortBy(sort_by)
def set_topn_direction(self, direction):
"""
Set direction of TopN
:param direction: TopnDirection
"""
if not isinstance(direction, TopnDirection):
raise AdosDataTypeError("parameter 'direction' should be 'TopnDirection' type")
self._set_param("direction", direction.value)
def get_topn_direction(self):
"""
Get direction of TopN
:return: TopnDirection
"""
direction = self._get_param("direction")
return TopnDirection(direction)
Classes
class GetRouterSortedTopnRequest (router_uuid, interfaces)-
Request to get TopN sorted data for router
:param router_uuid: string, uuid of router :param interfaces: [string], list of interface
Expand source code
class GetRouterSortedTopnRequest(AdosRequest): def __init__(self, router_uuid, interfaces): """ Request to get TopN sorted data for router :param router_uuid: string, uuid of router :param interfaces: [string], list of interface """ super().__init__('get_router_sorted_topn', 'router', 'GET', 'api/v1/router/'+router_uuid+'/topn/sort') # set default time range self._end_time = datetime.now() self._set_param("end", self._end_time.strftime("%Y-%m-%dT%H:%M:%S")) self._start_time = self._end_time - timedelta(seconds=DEFAULT_TOPN_TIME_RANGE_SECONDS) self._set_param("start", self._start_time.strftime("%Y-%m-%dT%H:%M:%S")) # set default parameters for topn if not isinstance(interfaces, list): raise AdosDataTypeError("parameter 'interfaces' should be a list of string") self._ifaces = interfaces self._set_param("ifaces", ",".join(self._ifaces)) self._set_param("top_num", DEFAULT_TOPN_NUM.value) self._set_param("sort_for", DEFAULT_TOPN_SORT_FOR.value) self._set_param("sort_by", DEFAULT_TOPN_SORT_BY.value) self._set_param("direction", DEFAULT_TOPN_DIRECTION.value) def set_time_range(self, start, end): """ Set time range for request :param start: datetime, start time of request :param end: datetime, end time of request """ if not isinstance(start, datetime): raise AdosDataTypeError("parameter 'start' is not datetime type") if not isinstance(end, datetime): raise AdosDataTypeError("parameter 'end' is not datetime type") if (end - start).total_seconds() <= 0: raise AdosParameterError("parameter 'end' can't be less equal than 'start'") self._end_time = end self._set_param("end", end.strftime("%Y-%m-%dT%H:%M:%S")) self._start_time = start self._set_param("start", start.strftime("%Y-%m-%dT%H:%M:%S")) def get_start_time(self): """ Get start time of time range :return: datetime """ return self._start_time def get_end_time(self): """ Get end time of time range :return: datetime """ return self._end_time def get_ifaces(self): """ Get list of interface :return: [string] """ return self._ifaces def set_topn_num(self, top_num): """ Set number of TopN :param top_num: TopnNum """ if not isinstance(top_num, TopnNum): raise AdosDataTypeError("parameter 'top_num' should be 'TopnNum' type") self._set_param("top_num", top_num.value) def get_topn_num(self): """ Get number of TopN :return: TopnNum """ top_num = self._get_param("top_num") return TopnNum(top_num) def set_topn_sort_for(self, sort_for): """ Set sort for of TopN :param sort_for: TopnSortFor """ if not isinstance(sort_for, TopnSortFor): raise AdosDataTypeError("parameter 'sort_for' should be 'TopnSortFor' type") self._set_param("sort_for", sort_for.value) def get_topn_sort_for(self): """ Get sort for of TopN :return: TopnSortFor """ sort_for = self._get_param("sort_for") return TopnSortFor(sort_for) def set_topn_sort_by(self, sort_by): """ Set sort by of TopN :param sort_by: TopnSortBy """ if not isinstance(sort_by, TopnSortBy): raise AdosDataTypeError("parameter 'sort_by' should be 'TopnSortBy' type") self._set_param("sort_by", sort_by.value) def get_topn_sort_by(self): """ Get sort by of TopN :return: TopnSortBy """ sort_by = self._get_param("sort_by") return TopnSortBy(sort_by) def set_topn_direction(self, direction): """ Set direction of TopN :param direction: TopnDirection """ if not isinstance(direction, TopnDirection): raise AdosDataTypeError("parameter 'direction' should be 'TopnDirection' type") self._set_param("direction", direction.value) def get_topn_direction(self): """ Get direction of TopN :return: TopnDirection """ direction = self._get_param("direction") return TopnDirection(direction)Ancestors
Methods
def get_end_time(self)-
Get end time of time range
:return: datetime
Expand source code
def get_end_time(self): """ Get end time of time range :return: datetime """ return self._end_time def get_ifaces(self)-
Get list of interface
:return: [string]
Expand source code
def get_ifaces(self): """ Get list of interface :return: [string] """ return self._ifaces def get_start_time(self)-
Get start time of time range
:return: datetime
Expand source code
def get_start_time(self): """ Get start time of time range :return: datetime """ return self._start_time def get_topn_direction(self)-
Get direction of TopN
:return: TopnDirection
Expand source code
def get_topn_direction(self): """ Get direction of TopN :return: TopnDirection """ direction = self._get_param("direction") return TopnDirection(direction) def get_topn_num(self)-
Get number of TopN
:return: TopnNum
Expand source code
def get_topn_num(self): """ Get number of TopN :return: TopnNum """ top_num = self._get_param("top_num") return TopnNum(top_num) def get_topn_sort_by(self)-
Get sort by of TopN
:return: TopnSortBy
Expand source code
def get_topn_sort_by(self): """ Get sort by of TopN :return: TopnSortBy """ sort_by = self._get_param("sort_by") return TopnSortBy(sort_by) def get_topn_sort_for(self)-
Get sort for of TopN
:return: TopnSortFor
Expand source code
def get_topn_sort_for(self): """ Get sort for of TopN :return: TopnSortFor """ sort_for = self._get_param("sort_for") return TopnSortFor(sort_for) def set_time_range(self, start, end)-
Set time range for request
:param start: datetime, start time of request :param end: datetime, end time of request
Expand source code
def set_time_range(self, start, end): """ Set time range for request :param start: datetime, start time of request :param end: datetime, end time of request """ if not isinstance(start, datetime): raise AdosDataTypeError("parameter 'start' is not datetime type") if not isinstance(end, datetime): raise AdosDataTypeError("parameter 'end' is not datetime type") if (end - start).total_seconds() <= 0: raise AdosParameterError("parameter 'end' can't be less equal than 'start'") self._end_time = end self._set_param("end", end.strftime("%Y-%m-%dT%H:%M:%S")) self._start_time = start self._set_param("start", start.strftime("%Y-%m-%dT%H:%M:%S")) def set_topn_direction(self, direction)-
Set direction of TopN
:param direction: TopnDirection
Expand source code
def set_topn_direction(self, direction): """ Set direction of TopN :param direction: TopnDirection """ if not isinstance(direction, TopnDirection): raise AdosDataTypeError("parameter 'direction' should be 'TopnDirection' type") self._set_param("direction", direction.value) def set_topn_num(self, top_num)-
Set number of TopN
:param top_num: TopnNum
Expand source code
def set_topn_num(self, top_num): """ Set number of TopN :param top_num: TopnNum """ if not isinstance(top_num, TopnNum): raise AdosDataTypeError("parameter 'top_num' should be 'TopnNum' type") self._set_param("top_num", top_num.value) def set_topn_sort_by(self, sort_by)-
Set sort by of TopN
:param sort_by: TopnSortBy
Expand source code
def set_topn_sort_by(self, sort_by): """ Set sort by of TopN :param sort_by: TopnSortBy """ if not isinstance(sort_by, TopnSortBy): raise AdosDataTypeError("parameter 'sort_by' should be 'TopnSortBy' type") self._set_param("sort_by", sort_by.value) def set_topn_sort_for(self, sort_for)-
Set sort for of TopN
:param sort_for: TopnSortFor
Expand source code
def set_topn_sort_for(self, sort_for): """ Set sort for of TopN :param sort_for: TopnSortFor """ if not isinstance(sort_for, TopnSortFor): raise AdosDataTypeError("parameter 'sort_for' should be 'TopnSortFor' type") self._set_param("sort_for", sort_for.value)
Inherited members