summaryrefslogtreecommitdiffstats
path: root/tools/pharos-dashboard/src/jenkins/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/pharos-dashboard/src/jenkins/tasks.py')
-rw-r--r--tools/pharos-dashboard/src/jenkins/tasks.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/pharos-dashboard/src/jenkins/tasks.py b/tools/pharos-dashboard/src/jenkins/tasks.py
index 7c037827..ea986c1f 100644
--- a/tools/pharos-dashboard/src/jenkins/tasks.py
+++ b/tools/pharos-dashboard/src/jenkins/tasks.py
@@ -10,6 +10,7 @@
from celery import shared_task
+from dashboard.models import Resource
from jenkins.models import JenkinsSlave, JenkinsStatistic
from .adapter import *
@@ -20,14 +21,28 @@ def sync_jenkins():
def update_jenkins_slaves():
+ JenkinsSlave.objects.all().update(active=False)
+
jenkins_slaves = get_all_slaves()
for slave in jenkins_slaves:
jenkins_slave, created = JenkinsSlave.objects.get_or_create(name=slave['displayName'],
url=get_slave_url(slave))
+ jenkins_slave.active = True
jenkins_slave.ci_slave = is_ci_slave(slave['displayName'])
jenkins_slave.dev_pod = is_dev_pod(slave['displayName'])
jenkins_slave.status = get_slave_status(slave)
+ # if this is a new slave and a pod, check if there is a resource for it, create one if not
+ if created and 'pod' in slave['displayName']:
+ # parse resource name from slave name
+ # naming example: orange-pod1, resource name: Orange POD 1
+ tokens = slave['displayName'].split('-')
+ name = tokens[0].capitalize() + ' POD '# company name
+ name += tokens[1][3:] # remove 'pod'
+ resource, created = Resource.objects.get_or_create(name=name)
+ resource.slave = jenkins_slave
+ resource.save()
+
last_job = get_jenkins_job(jenkins_slave.name)
if last_job is not None:
last_job = parse_job(last_job)