[Fuego] [PATCH 1/1] Allow ftc script to properly use Jenkins configured port

Tim.Bird at sony.com Tim.Bird at sony.com
Thu Feb 8 00:16:41 UTC 2018


> -----Original Message-----
> From: Guilherme Campos Camargo
> 
> With the possibility of configuring jenkins porth through
> fuego/ro/conf/fuego.conf, a change on ftc script is needed so that it
> uses the configured port and not the default one (8080).
> 
> This patch solves that issue by using the ${jenkins_port} environment
> variable (set on entrypoint.sh) instead of the hardcoded 8080.

Thanks.  This was on my list of things to do.  I made an attempt to
add this support to ftc, but came up with something much more
complicated, because I tried to do too much other stuff at the same
time.

Comments inline below.

> Signed-off-by: Guilherme Campos Camargo <guicc at profusion.mobi>
> ---
>  engine/scripts/ftc | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/engine/scripts/ftc b/engine/scripts/ftc
> index bde3694..af5a2a7 100755
> --- a/engine/scripts/ftc
> +++ b/engine/scripts/ftc
> @@ -63,6 +63,8 @@ VERSION = (1,2,1)
>  # define these as globals
>  log = None
>  tail_fd = None
> +jenkins_port = os.getenv('jenkins_port', 8080)
The environment variable 'jenkins_port' is not defined
in anything but the main container shell.

ftc can be run from outside the container, and it calls
itself inside the container such that jenkins_port is
not defined.

Also:
 $ sudo docker exec -I -t fuego-container bash
starts a new shell, where ftc can be run, but jenkins_port is
not defined (I believe).

It would be better to read the port value from the
configuration file, in /fuego_ro/conf/fuego.conf.

> +fuego_url = 'http://localhost:' + str(jenkins_port) + '/fuego'
> 
>  # here's a utility routine to print a variable with it's name and value
>  def pvar(name):
> @@ -72,7 +74,8 @@ def pvar(name):
>  quiet = 0
>  verbose = 0
>  use_statusouput = 1
> -server = jenkins.Jenkins('http://localhost:8080/fuego')
> +server = jenkins.Jenkins(fuego_url)
> +
> 
>  # keep configuration file in /fuego-ro/conf area
>  config_dir = "/fuego-ro"
> @@ -413,7 +416,7 @@ class config_class:
> 
>          # fuegotest.com is at: 52.88.166.49
>          self.SERVER_URL_BASE =
> "http://52.88.166.49/server/Fuego_Server?action=Fuego."
> -        self.JENKINS_URL = "http://localhost:8080/fuego"
> +        self.JENKINS_URL = fuego_url
> 
>          # end of default configs
> 
> @@ -1159,7 +1162,7 @@ timeout --signal=9 {timeout} /bin/bash
> $FUEGO_CORE/engine/scripts/main.sh
>      job_name=board+"."+test.spec+"."+test.name
>      print("Creating job " + job_name)
>      try:
> -        subprocess.call('java -jar /var/cache/jenkins/war/WEB-INF/jenkins-
> cli.jar -s http://localhost:8080/fuego create-job ' +
> +        subprocess.call('java -jar /var/cache/jenkins/war/WEB-INF/jenkins-
> cli.jar -s' + fuego_url + 'create-job ' +
>              job_name + ' < ' + tmp, shell=True)
>          os.unlink(tmp)
>      except Exception as e:
> @@ -1207,7 +1210,7 @@ def create_batch_job(board, testplan, plan_tests):
>      print("Creating batch job ")
>      try:
>          job_name = board+'.'+testplan+'.batch'
> -        subprocess.call('java -jar /var/cache/jenkins/war/WEB-INF/jenkins-
> cli.jar -s http://localhost:8080/fuego create-job ' +
> +        subprocess.call('java -jar /var/cache/jenkins/war/WEB-INF/jenkins-
> cli.jar -s' + fuego_url + 'create-job ' +
>               job_name + '< ' + tmp, shell=True)
>          os.unlink(tmp)
>      except Exception as e:
> @@ -3581,7 +3584,7 @@ def user_check():
> 
>      new_user = "jenkins"
>      if getpass.getuser() == "root":
> -        cmd = ["sudo", "-u", new_user, "python"] + sys.argv
> +        cmd = ["sudo", "-u", new_user, "-E", "python"] + sys.argv
>          rcode = subprocess.call(cmd)
>          sys.exit(rcode)
> 
> --
> 2.16.1

Other than that - looks good.  Can you please make the requested change?
 -- Tim


More information about the Fuego mailing list