TT#7211 add authentication on jenkins requests

* rename repoapi.utils.openurl to a less confusing name open_jenkins_url

Change-Id: I0d3fee994d0fb4af5a315b4c1d1a42dcf067504a
pull/3/head
Victor Seva 5 years ago
parent 4270909b25
commit 34221aee0a
No known key found for this signature in database
GPG Key ID: B1589889727198E0

@ -174,7 +174,7 @@ class ReleaseConfigTestCase(SimpleTestCase):
self.assertListEqual(["ngcp-schema"], values)
@patch("build.utils.openurl")
@patch("build.utils.open_jenkins_url")
class TriggerBuild(SimpleTestCase):
def test_project_build(self, openurl):
params = {

@ -24,7 +24,7 @@ from yaml import Loader
from . import exceptions as err
from .conf import settings
from repoapi.utils import openurl
from repoapi.utils import open_jenkins_url
logger = logging.getLogger(__name__)
@ -79,7 +79,7 @@ def trigger_copy_deps(release, internal, release_uuid, uuid=None):
if settings.DEBUG:
logger.info("Debug mode, would trigger: %s", url)
else:
openurl(url)
open_jenkins_url(url)
return "{base}/job/{job}/".format(**params)
@ -123,7 +123,7 @@ def trigger_build(
if settings.DEBUG:
logger.info("Debug mode, would trigger: %s", url)
else:
openurl(url)
open_jenkins_url(url)
return "{base}/job/{job}/".format(**params)

@ -18,7 +18,7 @@ from requests.auth import HTTPBasicAuth
from ..conf import settings
from ..models import Project
from repoapi.utils import openurl
from repoapi.utils import open_jenkins_url
logger = logging.getLogger(__name__)
@ -62,7 +62,7 @@ def trigger_hotfix(project, branch, user, push="yes"):
if settings.DEBUG:
logger.warn("Debug mode, would trigger: %s", url)
else:
openurl(url)
open_jenkins_url(url)
return "%s/job/release-tools-runner/" % settings.JENKINS_URL
@ -109,7 +109,7 @@ def trigger_build(
if settings.DEBUG:
logger.debug("Debug mode, would trigger: %s", url)
else:
openurl(url)
open_jenkins_url(url)
return "{base}/job/{job}/".format(**params)

@ -20,7 +20,7 @@ import uuid
import requests
from ..conf import settings
from repoapi.utils import openurl
from repoapi.utils import open_jenkins_url
logger = logging.getLogger(__name__)
@ -50,7 +50,7 @@ def trigger_docker_build(project, branch):
if settings.DEBUG:
logger.debug("Debug mode, would trigger: %s", url)
else:
openurl(url)
open_jenkins_url(url)
return "{base}/job/build-project-docker/".format(**params)

@ -17,9 +17,11 @@ import os
import re
import shutil
import subprocess
import urllib.request
from distutils.dir_util import mkpath
import requests
from requests.auth import HTTPBasicAuth
from .conf import settings
logger = logging.getLogger(__name__)
@ -40,28 +42,40 @@ def executeAndReturnOutput(command, env=None):
return proc.returncode, stdoutdata, stderrdata
def get_jenkins_response(url):
auth = HTTPBasicAuth(
settings.JENKINS_HTTP_USER, settings.JENKINS_HTTP_PASSWD
)
response = requests.get(url, auth=auth)
response.raise_for_status()
return response
def dlfile(url, path):
if settings.DEBUG:
logger.info("I would call %s", url)
else:
remote_file = urllib.request.urlopen(url)
auth = HTTPBasicAuth(
settings.JENKINS_HTTP_USER, settings.JENKINS_HTTP_PASSWD
)
logger.debug("url:[%s]", url)
with open(path, "wb") as local_file:
shutil.copyfileobj(remote_file, local_file)
with requests.get(url, auth=auth, stream=True) as req:
with open(path, "wb") as local_file:
shutil.copyfileobj(req.raw, local_file)
def openurl(url):
req = urllib.request.Request(url)
def open_jenkins_url(url):
logger.debug("Trying to retrieve url: [%s]", url)
try:
response = urllib.request.urlopen(req)
if 199 < response.getcode() < 300:
logger.debug("OK[%d] URL[%s]", response.getcode(), url)
return True
except urllib.error.HTTPError as e:
logger.error("Error[%d] retrieving URL[%s]", e.getcode(), url)
except Exception:
logger.error("Fatal error retrieving URL[%s]", url)
res = get_jenkins_response(url)
logger.debug("OK[{}] URL[{}]".format(res.status_code, url))
return True
except requests.HTTPError as e:
logger.error(
"Error[{}] retrieving URL[{}]: {}".format(res.status_code, url, e)
)
except Exception as e:
logger.error("Fatal error retrieving URL[{}]: {}".format(url, e))
return False
@ -75,7 +89,7 @@ def jenkins_remove_ppa(repo):
if settings.DEBUG:
logger.debug("I would call %s", url)
else:
openurl(url)
open_jenkins_url(url)
def _jenkins_get(url, base_path, filename):

Loading…
Cancel
Save