diff options
Diffstat (limited to 'utils/test')
3 files changed, 45 insertions, 29 deletions
diff --git a/utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js b/utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js index def8e7293..ae51e4ab0 100644 --- a/utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js +++ b/utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js @@ -16,7 +16,7 @@ angular.module('opnfvApp') $scope.vsperf = "542,185,640,414"; $scope.stor = "658,187,750,410"; $scope.qtip = "769,190,852,416"; - $scope.bootleneck = "870,192,983,419"; + $scope.bottlenecks = "870,192,983,419"; $scope.noPopArea1 = "26,8,1190,180"; $scope.noPopArea2 = "1018,193,1190,590"; $scope.noPopArea3 = "37,455,1003,584"; diff --git a/utils/test/reporting/pages/app/views/commons/testCaseVisual.html b/utils/test/reporting/pages/app/views/commons/testCaseVisual.html index 74eb56eba..4de4e187f 100644 --- a/utils/test/reporting/pages/app/views/commons/testCaseVisual.html +++ b/utils/test/reporting/pages/app/views/commons/testCaseVisual.html @@ -20,7 +20,7 @@ <area shape="rect" coords={{vsperf}} alt="test" href="{{vsperfurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('vsperf')" /> <area shape="rect" coords={{stor}} alt="test" href="{{storperfurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('storperf')"/> <area shape="rect" coords={{qtip}} alt="test" href="{{qtipurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('qtip')" /> - <area shape="rect" coords={{bootleneck}} alt="test" href="{{bottlenecksurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('bootlenecks')" /> + <area shape="rect" coords={{bottlenecks}} alt="test" href="{{bottlenecksurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('bottlenecks')" /> <area shape="rect" coords={{noPopArea1}} alt="test" onmouseover="pophide(event)" /> <area shape="rect" coords={{noPopArea2}} alt="test" onmouseover="pophide(event)" /> <area shape="rect" coords={{noPopArea3}} alt="test" onmouseover="pophide(event)" /> @@ -124,4 +124,4 @@ $('#popup').hide(); return true; } - </script>
\ No newline at end of file + </script> diff --git a/utils/test/testapi/opnfv_testapi/resources/handlers.py b/utils/test/testapi/opnfv_testapi/resources/handlers.py index 5c98c48ef..c7fed8f17 100644 --- a/utils/test/testapi/opnfv_testapi/resources/handlers.py +++ b/utils/test/testapi/opnfv_testapi/resources/handlers.py @@ -101,55 +101,71 @@ class GenericApiHandler(web.RequestHandler): @web.asynchronous @gen.coroutine def _list(self, query=None, res_op=None, *args, **kwargs): - if query is None: - query = {} - data = [] sort = kwargs.get('sort') page = kwargs.get('page', 0) last = kwargs.get('last', 0) per_page = kwargs.get('per_page', 0) - + if query is None: + query = {} cursor = self._eval_db(self.table, 'find', query) records_count = yield cursor.count() - records_nr = records_count - if (records_count > last) and (last > 0): - records_nr = last - - pipelines = list() - if query: - pipelines.append({'$match': query}) - if sort: - pipelines.append({'$sort': sort}) - - if page > 0: - total_pages, remainder = divmod(records_nr, per_page) - if remainder > 0: - total_pages += 1 - pipelines.append({'$skip': (page - 1) * per_page}) - pipelines.append({'$limit': per_page}) - elif last > 0: - pipelines.append({'$limit': last}) - + total_pages = self._calc_total_pages(records_count, + last, + page, + per_page) + pipelines = self._set_pipelines(query, sort, last, page, per_page) cursor = self._eval_db(self.table, 'aggregate', pipelines, allowDiskUse=True) - + data = list() while (yield cursor.fetch_next): data.append(self.format_data(cursor.next_object())) if res_op is None: res = {self.table: data} else: res = res_op(data, *args) - if page: + if total_pages > 0: res.update({ 'pagination': { - 'current_page': page, + 'current_page': kwargs.get('page'), 'total_pages': total_pages } }) self.finish_request(res) + @staticmethod + def _calc_total_pages(records_count, last, page, per_page): + records_nr = records_count + if (records_count > last) and (last > 0): + records_nr = last + + total_pages = 0 + if page > 0: + total_pages, remainder = divmod(records_nr, per_page) + if remainder > 0: + total_pages += 1 + if page > total_pages: + raises.BadRequest( + 'Request page > total_pages [{}]'.format(total_pages)) + return total_pages + + @staticmethod + def _set_pipelines(query, sort, last, page, per_page): + pipelines = list() + if query: + pipelines.append({'$match': query}) + if sort: + pipelines.append({'$sort': sort}) + + if page > 0: + pipelines.append({'$skip': (page - 1) * per_page}) + pipelines.append({'$limit': per_page}) + elif last > 0: + pipelines.append({'$limit': last}) + + return pipelines + @web.asynchronous @gen.coroutine @check.not_exist |