Move start_jenkins_job method to the Drivetrain Manager
Change-Id: Iaf507c2559e9d73d51725c8df3dfad4be35c4cb2
diff --git a/tcp_tests/managers/drivetrain_manager.py b/tcp_tests/managers/drivetrain_manager.py
index 6e2fbda..8ef758d 100644
--- a/tcp_tests/managers/drivetrain_manager.py
+++ b/tcp_tests/managers/drivetrain_manager.py
@@ -13,6 +13,11 @@
# under the License.
from tcp_tests.managers.execute_commands import ExecuteCommandsMixin
+from tcp_tests.utils import run_jenkins_job
+from tcp_tests.utils import get_jenkins_job_stages
+from tcp_tests import logger
+
+LOG = logger.logger
class DrivetrainManager(ExecuteCommandsMixin):
@@ -32,3 +37,70 @@
self.execute_commands(commands,
label='Install Drivetrain Tools')
self.__config.drivetrain.drivetrain_installed = True
+
+ def start_job_on_cid_jenkins(self, job_name,
+ **kwargs):
+ """
+ Starts job with specific parameters on cluster Jenkins
+
+ Method accept any param:
+ job_parameters=None,
+ job_output_prefix='',
+ start_timeout=1800,
+ build_timeout=3600 * 4,
+ verbose=False
+
+ :param job_name: string
+ :return: string, Result of passed job, "SUCCESS"| "FAILED" | "UNSTABLE"
+ """
+ jenkins_url, jenkins_user, jenkins_pass = self.get_jenkins_creds(
+ tgt='I@docker:client:stack:jenkins and cid01*')
+
+ job_result = run_jenkins_job.run_job(
+ host=jenkins_url,
+ username=jenkins_user,
+ password=jenkins_pass,
+ job_name=job_name,
+ **kwargs)
+
+ (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))
+
+ if job_result != 'SUCCESS':
+ LOG.warning("{0}\n{1}".format(description, '\n'.join(stages)))
+ return job_result
+
+ def start_job_on_cfg_jenkins(self):
+ pass
+
+ def get_jenkins_creds(self, tgt):
+ """
+ Requests Jenkins's login parameters from pillars from desired node
+
+ :return: tuple {jenkins_url, jenkins_user, jenkins_pass}
+ """
+ jenkins_host = self._salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:host")
+ if jenkins_host is None:
+ raise Exception(
+ "Can't find 'jenkins:client:master' pillar on {tgt} node."
+ .format(tgt=tgt))
+ jenkins_port = self._salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:port")
+ jenkins_protocol = self._salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:proto")
+ jenkins_url = '{0}://{1}:{2}'.format(jenkins_protocol,
+ jenkins_host,
+ jenkins_port)
+ jenkins_user = self._salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:username")
+ jenkins_pass = self._salt.get_single_pillar(
+ tgt=tgt, pillar="jenkins:client:master:password")
+ return jenkins_url, jenkins_user, jenkins_pass