В настоящее время мы запускаем задания Jenkins из Python script с помощью PycURL. Мы хотели бы, однако, избавиться от зависимости PycURL, но пока не добились большого успеха. Что усложняет наш сценарий, так это то, что нам нужно отправить файл в качестве параметра. Наша текущая логика PycURL для отправки запроса выглядит следующим образом:
url = "https://myjenkins/job/myjob/build"
with contextlib.closing(pycurl.Curl()) as curl:
curl.setopt(pycurl.URL, url)
curl.setopt(pycurl.USERPWD, "myuser:mypassword")
curl.setopt(pycurl.SSL_VERIFYPEER, False)
curl.setopt(pycurl.SSL_VERIFYHOST, False)
curl.setopt(pycurl.FAILONERROR, True)
data = [
("name", "integration.xml"),
("file0", (pycurl.FORM_FILE, "integration.xml")),
("json", "{'parameter': [{'name': 'integration.xml', 'file': 'file0'}]}"),
("Submit", "Build"),
]
curl.setopt(pycurl.HTTPPOST, data)
try:
curl.perform()
except pycurl.error, err:
raise JenkinsTriggerError(curl.errstr())
Как мы можем заменить это средствами из стандартной библиотеки Python?
Мы уже пробовали, но мне пришлось отказаться, поскольку мы не могли увидеть, как загружать файлы успешно, как вы можете видеть из моего вопроса по этой проблеме.