You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "isaac martin (JIRA)" <ji...@apache.org> on 2018/08/16 22:23:00 UTC

[jira] [Created] (AIRFLOW-2910) models.Connection cannot use https

isaac martin created AIRFLOW-2910:
-------------------------------------

             Summary: models.Connection cannot use https
                 Key: AIRFLOW-2910
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-2910
             Project: Apache Airflow
          Issue Type: Bug
            Reporter: isaac martin


The SimpleHttpOperator, and anything else relying on airlfow.models.Connection, cannot make use of https due to what appears to be a bug in the way it parses user-provided urls. The bug ends up replacing any https uri with an http uri.

To reproduce:
 * Create a new airflow implementation.
 * Set a connection environment var: AIRFLOW_CONN_ETL_API=[https://yourdomain.com|https://yourdomain.com/]
 * Instantiate a SimpleHttpOperator which uses the above for its http_conn_id argument.
 * Notice with horror that your requests are made to http://yourdomain.com

To fix:

Proposal 1

Line 590 of airflow.models.py assigns nothing to Connection.schema. 

Change:

self.schema = temp_uri.path[1:]

to

self.schema = temp_uri[0]

 

Proposal 2:

Line 40 or airflow.hooks.http_hook.py starts a block which tries to set the base_url. We could add a new elif which checks self.conn_type, as self.conn_type is correctly populated with 'https'.

For example:

elif conn.conn_type:
    self.base_url = conn.conn_type + "://" + conn.host



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)