f.close()
database = functest_yaml.get("results").get("test_db_url")
+ build_tag = functest_utils.get_build_tag()
try:
# example:
None,
data['pod_name'],
scenario,
+ build_tag,
data)
except:
print("Error pushing results into Database '%s'" % sys.exc_info()[0])
# TODO check path result for the file
scenario = functest_utils.get_scenario(logger)
pod_name = functest_utils.get_pod_name(logger)
+ build_tag = functest_utils.get_build_tag(logger)
result = GetResult()
functest_utils.push_results_to_db(TEST_DB,
"functest",
"ONOS",
logger, pod_name, scenario,
- payload=result)
+ build_tag, payload=result)
except:
logger.error("Error pushing results into Database")
installer = functest_utils.get_installer_type(logger)
scenario = functest_utils.get_scenario(logger)
pod_name = functest_utils.get_pod_name(logger)
+ build_tag = functest_utils.get_build_tag(logger)
# TODO pod_name hardcoded, info shall come from Jenkins
params = {"project_name": "functest", "case_name": case,
"pod_name": pod_name, "installer": installer,
- "version": scenario, "details": payload}
+ "version": scenario, "build_tag": build_tag,
+ "details": payload}
headers = {'Content-Type': 'application/json'}
r = requests.post(url, data=json.dumps(params), headers=headers)
}
pod_name = functest_utils.get_pod_name(logger)
scenario = functest_utils.get_scenario(logger)
+ build_tag = functest_utils.get_build_tag(logger)
logger.info("Pushing result: TEST_DB_URL=%(db)s pod_name=%(pod)s "
"scenario=%(s)s details=%(d)s" % {
'db': TEST_DB_URL,
'pod': pod_name,
's': scenario,
+ 'b': build_tag,
'd': details,
})
functest_utils.push_results_to_db(TEST_DB_URL,
'doctor','doctor-notification',
logger, pod_name, scenario,
- details)
+ build_tag, details)
if __name__ == '__main__':
pod_name = functest_utils.get_pod_name(logger)
installer = functest_utils.get_installer_type(logger)
scenario = functest_utils.get_scenario(logger)
+ build_tag = functest_utils.get_build_tag(logger)
git_version = functest_utils.get_git_branch(PROMISE_REPO)
url = TEST_DB + "/results"
params = {"project_name": "promise", "case_name": "promise",
"pod_name": str(pod_name), 'installer': installer,
- "version": scenario, 'details': json_results}
+ "version": scenario, "build_tag": build_tag, 'details': json_results}
headers = {'Content-Type': 'application/json'}
logger.info("Pushing results to DB...")
instance = nova_client.servers.get(instance.id)
return instance.status
except Exception, e:
- #print "Error [get_instance_status(nova_client, '%s')]:" % \
+ # print "Error [get_instance_status(nova_client, '%s')]:" % \
# str(instance), e
return None
print "Error [get_security_groups(neutron_client)]:", e
return None
+
def get_security_group_id(neutron_client, sg_name):
security_groups = get_security_groups(neutron_client)
id = ''
'protocol': protocol}}
else:
print "Error [create_secgroup_rule(neutron_client, '%s', '%s', "\
- "'%s', '%s', '%s', '%s')]:" % (neutron_client, sg_id, direction, \
+ "'%s', '%s', '%s', '%s')]:" % (neutron_client, sg_id, direction,
port_range_min, port_range_max, protocol),\
" Invalid values for port_range_min, port_range_max"
return False
return True
except Exception, e:
print "Error [update_cinder_quota(cinder_client, '%s', '%s', '%s'" \
- "'%s')]:" % (tenant_id, vols_quota, snapshots_quota, gigabytes_quota), e
+ "'%s')]:" % (tenant_id, vols_quota,
+ snapshots_quota, gigabytes_quota), e
return False
return False
-
-
-
-
-
# ----------------------------------------------------------
#
# INTERNET UTILS
return True
-
-
# ----------------------------------------------------------
#
# CI UTILS
return "unknown-pod"
+def get_build_tag(logger=None):
+ """
+ Get build tag of jenkins jobs
+ """
+ try:
+ build_tag = os.environ['BUILD_TAG']
+ except KeyError:
+ if logger:
+ logger.error("Impossible to retrieve the build tag")
+ build_tag = "unknown_build_tag"
+
+ return build_tag
+
+
def push_results_to_db(db_url, project, case_name, logger, pod_name,
- version, payload):
+ version, build_tag="unknown_build_tag", payload):
"""
POST results to the Result target DB
"""
installer = get_installer_type(logger)
params = {"project_name": project, "case_name": case_name,
"pod_name": pod_name, "installer": installer,
- "version": version, "details": payload}
+ "version": version, "build_tag": build_tag, "details": payload}
headers = {'Content-Type': 'application/json'}
try:
logger.debug(r)
return True
except Exception, e:
- print "Error [push_results_to_db('%s', '%s', '%s', '%s', '%s', '%s')]:" \
- % (db_url, project, case_name, pod_name, version, payload), e
+ print "Error [push_results_to_db('%s', '%s', '%s', '%s', '%s', '%s', '%s')]:" \
+ % (db_url, project, case_name, pod_name, version, build_tag, payload), e
return False
scenario = functest_utils.get_scenario(logger)
pod_name = functest_utils.get_pod_name(logger)
+ build_tag = functest_utils.get_build_tag(logger)
- functest_utils.push_results_to_db(db_url=DB_URL,
+ functest_utils.push_results_to_db(db_url=DB_URL,
project="functest",
case_name="vIMS",
logger=logger, pod_name=pod_name,
version=scenario,
+ build_tag=build_tag,
payload=RESULTS)
logger.debug("Pushing result into DB...")
scenario = functest_utils.get_scenario(logger)
pod_name = functest_utils.get_pod_name(logger)
+ build_tag = functest_utils.get_build_tag(logger)
functest_utils.push_results_to_db(TEST_DB,
"functest",
"vPing",
- logger, pod_name, scenario,
+ logger, pod_name, scenario, build_tag,
payload={'timestart': start_time_ts,
'duration': duration,
'status': test_status})
logger.debug("Pushing result into DB...")
scenario = functest_utils.get_scenario(logger)
pod_name = functest_utils.get_pod_name(logger)
+ build_tag = functest_utils.get_build_tag(logger)
functest_utils.push_results_to_db(TEST_DB,
"functest",
"vPing_userdata",
- logger, pod_name, scenario,
+ logger, pod_name, scenario, build_tag,
payload={'timestart': start_time_ts,
'duration': duration,
'status': test_status})