#!/usr/bin/env python
# encoding: utf-8
# Copyright (C) Alibaba Cloud Computing
# All rights reserved.
from .logresponse import LogResponse
from .histogram import Histogram
from .util import Util
[docs]class GetHistogramsResponse(LogResponse):
""" The response of the GetHistograms API from log.
:type resp: dict
:param resp: GetHistogramsResponse HTTP response body
:type header: dict
:param header: GetHistogramsResponse HTTP response header
"""
def __init__(self, resp, header):
LogResponse.__init__(self, header, resp)
self.progress = Util.h_v_t(header, 'x-log-progress')
self.count = 0 # header['x-log-count']
self.histograms = []
for data in resp:
status = Histogram(data['from'], data['to'], data['count'], data['progress'])
self.histograms.append(status)
self.count += data['count']
[docs] def is_completed(self):
""" Check if the histogram is completed
:return: bool, true if this histogram is completed
"""
return self.progress == 'Complete'
[docs] def get_total_count(self):
""" Get total logs' count that current query hits
:return: int, total logs' count that current query hits
"""
return self.count
[docs] def get_histograms(self):
""" Get histograms on the requested time range: [from, to)
:return: Histogram list, histograms on the requested time range: [from, to)
"""
return self.histograms
def log_print(self):
print('GetHistogramsResponse:')
print('headers:', self.get_all_headers())
print('progress:', self.progress)
print('count:', self.count)
print('\nhistograms class:\n')
for data in self.histograms:
data.log_print()
print('\n')