Skip to content

Commit

Permalink
Merge pull request #254 from Mirantis/add-jenkins-job-url
Browse files Browse the repository at this point in the history
Add Jenkins job URL to cluster metadata
  • Loading branch information
Adam Tengler authored Mar 22, 2018
2 parents f7a6c6a + 8e696fd commit 1cd8450
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions kqueen/engines/jenkins.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,7 @@ def get_kubeconfig(self):
cluster_build_number = self._get_build_number()
if not cluster_build_number:
return {}
kubeconfig_url = '{jenkins_url}/job/{job_name}/{build_id}/artifact/kubeconfig'.format(
jenkins_url=self.jenkins_url,
job_name=self.provision_job_name,
build_id=str(cluster_build_number),
)
kubeconfig_url = '{job_url}/artifact/kubeconfig'.format(job_url=self._get_jenkins_job_url(cluster_build_number))
kubeconfig = {}
try:
kubeconfig = yaml.load(requests.get(kubeconfig_url).text)
Expand All @@ -179,16 +175,20 @@ def _get_build_number(self):
try:
cluster = self._get_by_id()
build_number = cluster['metadata']['build_number']
# Get fresh data just in case to avoid conflict
metadata = self.cluster.metadata or {}
metadata['build_number'] = build_number
self.cluster.metadata = metadata
self.cluster.save()
self._save_cluster_metadata(build_number)
return build_number
except Exception:
pass
return build_number

def _save_cluster_metadata(self, build_number):
# Get fresh data just in case to avoid conflict
metadata = self.cluster.metadata or {}
metadata['build_number'] = build_number
metadata['job_url'] = self._get_jenkins_job_url(build_number)
self.cluster.metadata = metadata
self.cluster.save()

def _get_by_id(self):
cluster_id = self.cluster.id
_list = self.cluster_list()
Expand All @@ -210,6 +210,11 @@ def _get_by_build_number(self):
cluster = self._get_cluster_from_build(build)
return cluster or {}

def _get_jenkins_job_url(self, build_number):
return '{jenkins_url}/job/{job_name}/{build_number}'.format(jenkins_url=self.jenkins_url,
job_name=self.provision_job_name,
build_number=build_number)

def cluster_get(self):
"""
Implementation of :func:`~kqueen.engines.base.BaseEngine.cluster_get`
Expand Down

0 comments on commit 1cd8450

Please sign in to comment.