Randomize jenkins http port for systests to avoid collision with default 8080
authorAdam Reid <adam@adamreid.ca>
Wed, 30 Oct 2013 19:57:37 +0000 (15:57 -0400)
committerAdam Reid <adam@adamreid.ca>
Wed, 30 Oct 2013 19:57:37 +0000 (15:57 -0400)
jenkinsapi_tests/systests/base.py
jenkinsapi_utils/jenkins_launcher.py

index 7506a8d80985a8a82307db0d88c12c7f232fbd37..758ec86c6e5d2f97f12df12fd240570fb3a12b6a 100644 (file)
@@ -1,4 +1,5 @@
 import unittest
+import jenkinsapi_tests.systests
 from jenkinsapi_tests.systests.job_configs import EMPTY_JOB
 from jenkinsapi.jenkins import Jenkins
 
@@ -6,7 +7,8 @@ from jenkinsapi.jenkins import Jenkins
 class BaseSystemTest(unittest.TestCase):
 
     def setUp(self):
-        self.jenkins = Jenkins('http://localhost:8080')
+        port = jenkinsapi_tests.systests.state['launcher'].http_port
+        self.jenkins = Jenkins('http://localhost:%d' % port)
         self._delete_all_jobs()
         self._delete_all_views()
 
index 68470de4b8033db871e00283f16fecb31b6e6aae..f74a1d08e0902583b5cd19cd039aea131ec0c4a4 100644 (file)
@@ -1,6 +1,7 @@
 import os
 import time
 import Queue
+import random
 import shutil
 import logging
 import datetime
@@ -60,6 +61,7 @@ class JenkinsLancher(object):
         self.jenkins_process = None
         self.q = Queue.Queue()
         self.plugin_urls = plugin_urls or []
+        self.http_port = random.randint(9000, 10000)
 
     def update_war(self):
         os.chdir(self.war_directory)
@@ -121,7 +123,8 @@ class JenkinsLancher(object):
         os.environ['JENKINS_HOME'] = self.jenkins_home
         os.chdir(self.war_directory)
 
-        jenkins_command = ['java', '-jar', self.war_filename]
+        jenkins_command = ['java', '-jar', self.war_filename, 
+            '--httpPort=%d' % self.http_port]
 
         log.info("About to start Jenkins...")
         log.info("%s> %s", os.getcwd(), " ".join(jenkins_command))