nicolamarangoni opened a new issue, #25442:
URL: https://github.com/apache/airflow/issues/25442

   ### Apache Airflow version
   
   2.3.3 (latest released)
   
   ### What happened
   
   The following task using the **JenkinsJobTriggerOperator** to trigger a job 
on **Jenkins 2.346.1**
   ```
   jenkins_job = JenkinsJobTriggerOperator(
       task_id = 'jenkins_job',
       jenkins_connection_id = 'jenkins',
       job_name = 'PEW/Dev_Pipeline_2',
       dag=dag
   )
   ```
   runs into the following error since upgrading to 2.3.x:
   ```
   [2022-08-01, 15:00:20 CEST] {jenkins_job_trigger.py:190} INFO - Triggering 
the job PEW/Dev_Pipeline_2 on the jenkins : jenkins with the parameters : None
   [2022-08-01, 15:00:20 CEST] {base.py:68} INFO - Using connection ID 
'jenkins' for task execution.
   [2022-08-01, 15:00:20 CEST] {warnings.py:109} WARNING - 
/usr/lib/python3.10/site-packages/airflow/models/connection.py:294: 
DeprecationWarning: Encountered non-JSON in `extra` field for connection 
'jenkins'. Support for non-JSON `extra` will be removed in Airflow 3.0
     self._validate_extra(extra_val, self.conn_id)
   
   [2022-08-01, 15:00:20 CEST] {jenkins.py:46} INFO - Trying to connect to 
[https://jenkins.pharos.pke.fhm.de:443](https://jenkins.pharos.pke.fhm.de/)
   [2022-08-01, 15:00:20 CEST] {kerberos_.py:325} ERROR - handle_other(): 
Mutual authentication unavailable on 403 response
   [2022-08-01, 15:00:21 CEST] {taskinstance.py:1909} ERROR - Task failed with 
exception
   Traceback (most recent call last):
     File 
"/usr/lib/python3.10/site-packages/airflow/providers/jenkins/operators/jenkins_job_trigger.py",
 line 197, in execute
       jenkins_response = self.build_job(jenkins_server, self.parameters)
     File 
"/usr/lib/python3.10/site-packages/airflow/providers/jenkins/operators/jenkins_job_trigger.py",
 line 133, in build_job
       return jenkins_request_with_headers(jenkins_server, request)
     File 
"/usr/lib/python3.10/site-packages/airflow/providers/jenkins/operators/jenkins_job_trigger.py",
 line 51, in jenkins_request_with_headers
       response = jenkins_server.jenkins_request(req)
     File "/usr/lib/python3.10/site-packages/jenkins/__init__.py", line 575, in 
jenkins_request
       return self._response_handler(
     File "/usr/lib/python3.10/site-packages/jenkins/__init__.py", line 536, in 
_response_handler
       response.raise_for_status()
     File "/usr/lib/python3.10/site-packages/requests/models.py", line 1021, in 
raise_for_status
       raise HTTPError(http_error_msg, response=self)
   requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: 
[https://jenkins.pharos.pke.fhm.de:443/job/PEW/job/Dev_Pipeline_2/build](https://jenkins.pharos.pke.fhm.de/job/PEW/job/Dev_Pipeline_2/build)
   [2022-08-01, 15:00:21 CEST] {taskinstance.py:1415} INFO - Marking task as 
FAILED. dag_id=test_start_jenkins_job, task_id=jenkins_job, 
execution_date=20220801T110017, start_date=20220801T110019, 
end_date=20220801T110021
   [2022-08-01, 15:00:21 CEST] {standard_task_runner.py:92} ERROR - Failed to 
execute job 97 for task jenkins_job (400 Client Error: Bad Request for url: 
[https://jenkins.pharos.pke.fhm.de:443/job/PEW/job/Dev_Pipeline_2/build;](https://jenkins.pharos.pke.fhm.de/job/PEW/job/Dev_Pipeline_2/build;)
 107)
   ```
   
   ### What you think should happen instead
   
   The **JenkinsJobTriggerOperator** should successfully start a job on Jenkins.
   
   ### How to reproduce
   
   Create a DAG with the above Task to trigger a job on **Jenkins 2.346.1**
   
   ### Operating System
   
   Alpine Linux 3.16.1
   
   ### Versions of Apache Airflow Providers
   
   apache-airflow-providers-apache-hdfs==3.0.1
   apache-airflow-providers-celery==3.0.0
   apache-airflow-providers-cncf-kubernetes==4.2.0
   apache-airflow-providers-common-sql==1.0.0
   apache-airflow-providers-datadog==3.0.0
   apache-airflow-providers-exasol==2.1.3
   apache-airflow-providers-ftp==3.1.0
   apache-airflow-providers-http==4.0.0
   apache-airflow-providers-imap==3.0.0
   apache-airflow-providers-jenkins==3.0.0
   apache-airflow-providers-microsoft-mssql==3.1.0
   apache-airflow-providers-odbc==3.1.0
   apache-airflow-providers-oracle==3.1.0
   apache-airflow-providers-postgres==5.1.0
   apache-airflow-providers-redis==3.0.0
   apache-airflow-providers-slack==5.1.0
   apache-airflow-providers-sqlite==3.1.0
   
apache-airflow-providers-ssh==3.1.0apache-airflow-providers-apache-hdfs==3.0.1
   apache-airflow-providers-celery==3.0.0
   apache-airflow-providers-cncf-kubernetes==4.2.0
   apache-airflow-providers-common-sql==1.0.0
   apache-airflow-providers-datadog==3.0.0
   apache-airflow-providers-exasol==2.1.3
   apache-airflow-providers-ftp==3.1.0
   apache-airflow-providers-http==4.0.0
   apache-airflow-providers-imap==3.0.0
   apache-airflow-providers-jenkins==3.0.0
   apache-airflow-providers-microsoft-mssql==3.1.0
   apache-airflow-providers-odbc==3.1.0
   apache-airflow-providers-oracle==3.1.0
   apache-airflow-providers-postgres==5.1.0
   apache-airflow-providers-redis==3.0.0
   apache-airflow-providers-slack==5.1.0
   apache-airflow-providers-sqlite==3.1.0
   apache-airflow-providers-ssh==3.1.0
   
   ### Deployment
   
   Other 3rd-party Helm chart
   
   ### Deployment details
   
   One Pod on Kubernetes containing the following containers
   
   - 1 Container for the webserver service
   - 1 Container for the scheduler service
   - 1 Container for the dag-processor service
   - 1 Container for the flower service
   - 1 Container for the redis service
   - 2 or 3 containers for the celery workers services
   
   Due to a previous issue crashing the scheduler with the message `UNEXPECTED 
COMMIT - THIS WILL BREAK HA LOCKS`, we substitute `scheduler_job.py` with the 
file 
`https://raw.githubusercontent.com/tanelk/airflow/a4b22932e5ac9c2b6f37c8c58345eee0f63cae09/airflow/jobs/scheduler_job.py`.
   Sadly I don't remember which issue or MR exactly but it was related to 
scheduler and dag-processor running in separate containers.
   
   ### Anything else
   
   The issue is directly related to the **apache-airflow-providers-jenkins** 
itself, I could reproduce the issue with the following code:
   ```
   import jenkins, requests
   
   server = jenkins.Jenkins('https://jenkins.pharos.pke.fhm.de', 
username='UserName', password='myPassword')
   user = server.get_whoami()
   version = server.get_version()
   print('Hello %s from Jenkins %s' % (user['fullName'], version))
   request = requests.Request(method='POST', 
url=server.build_job_url('PEW/Dev_Pipeline_2', None, None))
   response = server.jenkins_request(request)
   ```
   This is the result:
   ```
   Hello UserName from Jenkins 2.346.1
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/usr/lib/python3.10/site-packages/jenkins/__init__.py", line 575, in 
jenkins_request
       return self._response_handler(
     File "/usr/lib/python3.10/site-packages/jenkins/__init__.py", line 536, in 
_response_handler
       response.raise_for_status()
     File "/usr/lib/python3.10/site-packages/requests/models.py", line 1021, in 
raise_for_status
       raise HTTPError(http_error_msg, response=self)
   requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: 
https://jenkins.pharos.pke.fhm.de/job/PEW/job/Dev_Pipeline_2/build
   ```
   It is possible that the libraries **jenkins-python** or **requests** have 
been broken by the version **2.346.x** of Jenkins, however the Jenkins-provider 
looks broken.
   It looks also like that work of **jenkins-python** is not really active:
   https://pypi.org/project/python-jenkins/#history
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to