Abstract Hard-Coded URLs to Config File 09/46709/1
authorSawyer Bergeron <sbergeron@iol.unh.edu>
Fri, 3 Nov 2017 18:36:19 +0000 (14:36 -0400)
committerSawyer Bergeron <sbergeron@iol.unh.edu>
Fri, 3 Nov 2017 20:43:15 +0000 (16:43 -0400)
JIRA: PHAROS-317

The Jenkins URL configuration now works the same as the Jira URL configuration,
with a base URL in the config.env file, with settings.py calculating the final URLs
to be used in adapter.py.

Change-Id: I79b4784ab39afdb789a24e4c0f1e8a3ae3566421
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
dashboard/config.env.sample
dashboard/src/jenkins/adapter.py
dashboard/src/pharos_dashboard/settings.py

index 060841c..b370fe2 100644 (file)
@@ -22,3 +22,6 @@ JIRA_USER_PASSWORD=sample_jira_pass
 # Rabbitmq
 RABBITMQ_USER=opnfv
 RABBITMQ_PASSWORD=opnfvopnfv
+
+#Jenkins Build Server
+JENKINS_URL=https://build.opnfv.org/ci
index edf502f..b48b868 100644 (file)
@@ -10,6 +10,7 @@
 
 import logging
 import re
+from django.conf import settings
 
 import requests
 from django.core.cache import cache
@@ -33,13 +34,15 @@ def get_json(url):
 
 
 def get_all_slaves():
-    url = "https://build.opnfv.org/ci/computer/api/json?tree=computer[displayName,offline,idle]"
+    url = settings.ALL_SLAVES_URL
     json = get_json(url)
     if json is not None:
         return json['computer']  # return list of dictionaries
     return []
 
 
+
+
 def get_slave(slavename):
     slaves = get_all_slaves()
     for slave in slaves:
@@ -49,7 +52,7 @@ def get_slave(slavename):
 
 
 def get_ci_slaves():
-    url = "https://build.opnfv.org/ci/label/ci-pod/api/json?tree=nodes[nodeName,offline,idle]"
+    url = settings.CI_SLAVES_URL
     json = get_json(url)
     if json is not None:
         return json['nodes']
@@ -57,7 +60,7 @@ def get_ci_slaves():
 
 
 def get_all_jobs():
-    url = "https://build.opnfv.org/ci/api/json?tree=jobs[displayName,url,lastBuild[fullDisplayName,building,builtOn,timestamp,result]]"
+    url = settings.ALL_JOBS_URL
     json = get_json(url)
     if json is not None:
         return json['jobs']  # return list of dictionaries
@@ -123,7 +126,7 @@ def parse_job_string(full_displayname):
     return job
 
 def get_slave_url(slave):
-    return 'https://build.opnfv.org/ci/computer/' + slave['displayName']
+    return settings.GET_SLAVE_URL + slave['displayName']
 
 
 def get_slave_status(slave):
index 546b174..83ad172 100644 (file)
@@ -182,3 +182,9 @@ CELERYBEAT_SCHEDULE = {
         'schedule': timedelta(hours=24)
     },
 }
+# Jenkins Settings
+ALL_SLAVES_URL = os.environ['JENKINS_URL'] + '/computer/api/json?tree=computer[displayName,offline,idle]'
+CI_SLAVES_URL = os.environ['JENKINS_URL'] + '/label/ci-pod/api/json?tree=nodes[nodeName,offline,idle]'
+ALL_JOBS_URL = os.environ['JENKINS_URL'] + '/api/json?tree=jobs[displayName,url,lastBuild[fullDisplayName,building,builtOn,timestamp,result]'
+GET_SLAVE_URL = os.environ['JENKINS_URL'] + '/computer/'
+