diff options
author | Sridhar Rao <sridhar.rao@spirent.com> | 2020-10-15 01:55:24 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2020-10-15 01:55:24 +0000 |
commit | f12039ae1fb9ed773ddf3d8000c6645e5900c48e (patch) | |
tree | 53dff91c6d2bcbe8b0ba5511ea8e7a32f52dd993 /sdv/docker/sdvconfig/testapi/testapi.py | |
parent | c5bd3737e608b81ef5d4361739d680d2fb3bb1cb (diff) | |
parent | b189119586d1d3cf176c31402daa4b34830ec48b (diff) |
Merge "sdv-prevalidation: added src, mapping, documentation, Dockerfile, and server files"
Diffstat (limited to 'sdv/docker/sdvconfig/testapi/testapi.py')
-rw-r--r-- | sdv/docker/sdvconfig/testapi/testapi.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/sdv/docker/sdvconfig/testapi/testapi.py b/sdv/docker/sdvconfig/testapi/testapi.py new file mode 100644 index 0000000..5546ee9 --- /dev/null +++ b/sdv/docker/sdvconfig/testapi/testapi.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python + +# Copyright (C) 2020 Ashwin Nayak +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" testapi class to push results to opnfv testapi """ + +from datetime import datetime as dt +import requests + +OPNFV_URL = "http://testresults.opnfv.org/test/api/v1" +POD_NAME = 'intel-pod10' +INSTALLER = 'Airship' +BUILD_TAG = "none" +PKG_LIST = 'package-list.mk' +START_TIME = dt.now().strftime('%Y-%m-%d %H:%M:%S') +STOP_TIME = dt.now().strftime('%Y-%m-%d %H:%M:%S') +TC_NAME = 'SDV_config_basic' +VERSION = '1.0' +CRITERIA = 'PASS' + + +class PushResults(): + """ Push results to opnfv test api """ + + def __init__(self, results, logger): + """ constructor """ + # store external values + self.results = results + self.logger = logger + # initialize internal values + self.push_vals = dict() + # call functions + self.generate_response() + self.push_results() + + def generate_response(self): + """ generate json output to be pushed """ + # Build body + body = { + "project_name": "sdv", + "scenario": "none", + "start_date": START_TIME, + "stop_date": STOP_TIME, + "case_name": TC_NAME, + "pod_name": POD_NAME, + "installer": INSTALLER, + "version": VERSION, + "build_tag": BUILD_TAG, + "criteria": CRITERIA, + "details": self.results + } + self.logger.debug("The generated json response to be pushed:%s", body) + # store this value in the class variable + self.push_vals = body + + def push_results(self): + """ push results to testapi """ + url = OPNFV_URL + "/results" + + try: + response = requests.post(url, json=self.push_vals) + self.logger.info("testapi push response:%s", response) + except ConnectionError: + self.logger.exception("error while pushing results to testapi") + self.logger.error("failed to push results") |