Merge "Add test_run_cvp_stacklight"
diff --git a/tcp_tests/tests/system/test_3rdparty_suites.py b/tcp_tests/tests/system/test_3rdparty_suites.py
index 188d21b..8ca8c06 100644
--- a/tcp_tests/tests/system/test_3rdparty_suites.py
+++ b/tcp_tests/tests/system/test_3rdparty_suites.py
@@ -46,7 +46,7 @@
@pytest.mark.grab_versions
@pytest.mark.parametrize("_", [settings.ENV_NAME])
- @pytest.mark.run_stacklight
+ @pytest.mark.run_stacklight_old
def test_run_stacklight(self, sl_actions, show_step, _):
"""Runner for Stacklight tests
diff --git a/tcp_tests/tests/system/test_cvp_pipelines.py b/tcp_tests/tests/system/test_cvp_pipelines.py
index 84deb20..830320d 100644
--- a/tcp_tests/tests/system/test_cvp_pipelines.py
+++ b/tcp_tests/tests/system/test_cvp_pipelines.py
@@ -252,3 +252,77 @@
assert cvp_ha_smoke_result == 'SUCCESS', "{0}\n{1}".format(
description, '\n'.join(stages))
+
+ @pytest.mark.grab_versions
+ @pytest.mark.parametrize("_", [settings.ENV_NAME])
+ @pytest.mark.run_stacklight
+ def test_run_cvp_stacklight(self, salt_actions, show_step, _):
+ """Runner for Pipeline CVP - Stacklight
+
+ Scenario:
+ 1. Get CICD Jenkins access credentials from salt
+ 2. Run job cvp-stacklight
+ 3. Get passed stages from cvp-stacklight
+ 4. Download XML report from the job
+ """
+ salt = salt_actions
+ show_step(1)
+
+ tgt = 'I@docker:client:stack:jenkins and cid01*'
+ jenkins_host = salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:host")
+ jenkins_port = salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:port")
+ jenkins_url = 'http://{0}:{1}'.format(jenkins_host, jenkins_port)
+ jenkins_user = salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:username")
+ jenkins_pass = salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:password")
+ jenkins_start_timeout = 60
+ jenkins_build_timeout = 1800
+
+ job_name = 'cvp-stacklight'
+
+ show_step(2)
+ cvp_stacklight_result = run_jenkins_job.run_job(
+ host=jenkins_url,
+ username=jenkins_user,
+ password=jenkins_pass,
+ start_timeout=jenkins_start_timeout,
+ build_timeout=jenkins_build_timeout,
+ verbose=True,
+ job_name=job_name,
+ job_parameters={},
+ job_output_prefix='[cvp-stacklight/{build_number}:platform {time}]'
+ )
+
+ show_step(3)
+ (description, stages) = get_jenkins_job_stages.get_deployment_result(
+ host=jenkins_url,
+ username=jenkins_user,
+ password=jenkins_pass,
+ job_name=job_name,
+ build_number='lastBuild')
+
+ LOG.info(description)
+ LOG.info('\n'.join(stages))
+ LOG.info('Job {0} result: {1}'.format(job_name,
+ cvp_stacklight_result))
+ # Download XML report
+ show_step(4)
+ destination_name = os.path.join(settings.LOGS_DIR,
+ "stacklight_report.xml")
+ # Do not fail the test case when the job is failed, but
+ # artifact with the XML report is present in the job.
+ try:
+ get_jenkins_job_artifact.download_artifact(
+ host=jenkins_url,
+ username=jenkins_user,
+ password=jenkins_pass,
+ job_name=job_name,
+ build_number='lastBuild',
+ artifact_path='validation_artifacts/cvp-stacklight_report.xml',
+ destination_name=destination_name)
+ except jenkins.NotFoundException:
+ raise jenkins.NotFoundException("{0}\n{1}".format(
+ description, '\n'.join(stages)))