jenkins-community-slave: use requests library to download slave.jar

Do not mix two different HTTP libraries in one script. This fixes a
warning:

/var/lib/jenkins/slave.py:82: DeprecationWarning: URLopener style of invoking requests is deprecated. Use newer urlopen functions/methods

This simple implementation has the disadvantage that it stores the whole
file in RAM, but this isn't an issue for the 1.5MB slave.jar.
This commit is contained in:
Matthias Schiffer 2020-05-30 02:25:37 +02:00 committed by Martin Weinelt
parent 5232428b19
commit 6b3b5e706e

View File

@ -2,7 +2,6 @@ from jenkins import Jenkins, JenkinsError, NodeLaunchMethod
import os
import signal
import sys
import urllib.request
import subprocess
import shutil
import requests
@ -34,8 +33,9 @@ def slave_download(target):
if os.path.isfile(slave_jar):
os.remove(slave_jar)
loader = urllib.request.URLopener()
loader.retrieve(os.environ['JENKINS_URL'] + '/jnlpJars/slave.jar', '/var/lib/jenkins/slave.jar')
r = requests.get(os.environ['JENKINS_URL'] + '/jnlpJars/slave.jar')
with open('/var/lib/jenkins/slave.jar', 'wb') as f:
f.write(r.content)
def slave_run(slave_jar, jnlp_url):
params = [ 'java', '-jar', slave_jar, '-jnlpUrl', jnlp_url ]