diff options
author | grakiss <grakiss.wanglei@huawei.com> | 2017-11-17 06:34:15 +0000 |
---|---|---|
committer | Leo wang <grakiss.wanglei@huawei.com> | 2017-11-20 02:35:45 +0000 |
commit | 29547a92197f88a732420761ee72d92dcc4b9972 (patch) | |
tree | 8e7d373d51de43d966e466e791c6541b16b8eb46 | |
parent | 2b090511832f1898f7d15cc33a6b9b20a8d88e07 (diff) |
[cvp-web] Bugfix:return 500 when upload a tarball file with no results.json
JIRA: DOVETAIL-558
The Web portal will return 500 code when upload a tarball file with no results.json
When all test cases failed or report with wrong DB url, there may be no results.json.
Check this and alert users instead of returning 500 status code.
Change-Id: Ie13d9c3c62044c525f5dbb3fca9b6123d0b5acce
Signed-off-by: grakiss <grakiss.wanglei@huawei.com>
3 files changed, 25 insertions, 15 deletions
diff --git a/cvp/3rd_party/static/testapi-ui/components/application/application.html b/cvp/3rd_party/static/testapi-ui/components/application/application.html index acf8ea3e..bb79340a 100644 --- a/cvp/3rd_party/static/testapi-ui/components/application/application.html +++ b/cvp/3rd_party/static/testapi-ui/components/application/application.html @@ -159,7 +159,7 @@ urpose. Once we understand more about your product or service, we can determine </div> </div> <div class="Actions"> - <a class="btn btn-success cvp-btn medium accent-color regular-button" ng-click="ctrl.openConfirmModal()" />submit</a> + <button class="btn btn-success cvp-btn" ng-click="ctrl.openConfirmModal()">Submit</button> </div> <div class="results-table" style="margin-top:30px;overflow:scroll"> <table class="table table-striped table-hover"> diff --git a/cvp/3rd_party/static/testapi-ui/components/results/resultsController.js b/cvp/3rd_party/static/testapi-ui/components/results/resultsController.js index 4476618c..0b0bbbc8 100644 --- a/cvp/3rd_party/static/testapi-ui/components/results/resultsController.js +++ b/cvp/3rd_party/static/testapi-ui/components/results/resultsController.js @@ -254,23 +254,28 @@ $http.post(uploadUrl, fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined} - }) - .success(function(data){ + }).then(function(data){ + + if(data.data.code && data.data.code != 0){ + alert(data.data.msg); + return; + } + ctrl.uploadState = ""; - data.filename = file.name; + data.data.filename = file.name; var createTestUrl = testapiApiUrl + "/tests" - $http.post(createTestUrl, data) - .success(function(data, status){ - if (data.code && data.code != 0) { - alert(data.msg); - } else { - ctrl.update(); - } + + $http.post(createTestUrl, data.data).then(function(data){ + if (data.data.code && data.data.code != 0) { + alert(data.data.msg); + } else { + ctrl.update(); + } + }, function(error){ }); - }) - .error(function(data, status){ - ctrl.uploadState = "Upload failed. Error code is " + status; + }, function(error){ + ctrl.uploadState = "Upload failed. Error code is " + error.status; }); } diff --git a/cvp/opnfv_testapi/resources/result_handlers.py b/cvp/opnfv_testapi/resources/result_handlers.py index 8cb9a347..2e65ba44 100644 --- a/cvp/opnfv_testapi/resources/result_handlers.py +++ b/cvp/opnfv_testapi/resources/result_handlers.py @@ -248,7 +248,12 @@ class ResultsUploadHandler(ResultsCLHandler): fileinfo = self.request.files['file'][0] tar_in = tarfile.open(fileobj=io.BytesIO(fileinfo['body']), mode="r:gz") - results = tar_in.extractfile('results/results.json').read() + try: + results = tar_in.extractfile('results/results.json').read() + except KeyError: + msg = 'Uploaded results must contain at least one passing test.' + self.finish_request({'code': 403, 'msg': msg}) + return results = results.split('\n') result_ids = [] for result in results: |