[ 
https://issues.apache.org/jira/browse/AIRFLOW-5518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16932626#comment-16932626
 ] 

ASF GitHub Bot commented on AIRFLOW-5518:
-----------------------------------------

K3UL commented on pull request #6145: [AIRFLOW-5518] Use correct scheme for 
Http connection parsed from URI
URL: https://github.com/apache/airflow/pull/6145
 
 
   [AIRFLOW-5518] Add tests for cases of HTTPS urls
   
   Make sure you have checked _all_ steps below.
   
   ### Jira
   
   - [X] My PR addresses the following [Airflow 
Jira](https://issues.apache.org/jira/browse/AIRFLOW/) issues and references 
them in the PR title. For example, "\[AIRFLOW-XXX\] My Airflow PR"
     - https://issues.apache.org/jira/browse/AIRFLOW-5518
   
   ### Description
   
   - [X] Here are some details about my PR, including screenshots of any UI 
changes:
   If a connection is parsed from a URI (for example if it's overloaded through 
an environment variable), the schema is the path or the URI.
   
   This is wrong because then the HttpHook uses the schema to prefix the 
base_url. It is particularly visible when using https, which gets transformed 
to default http. As a result the URLs are built with HTTP instead of HTTPS.
   
   I propose the following, which it is consistent with what happens when a 
connection is added through other ways (UI and config files):
   At the Connection level, in parse_from_uri(), implement a special treatment 
for http connection to have conn_type='http' and schema=scheme
   
   ### Tests
   
   - [X] My PR adds the following unit tests :
   3 new tests in test_connection_from_uri_with_path, targeting HTTPS. I also 
changed the pre-existing tests with HTTP URIs to indicate that the schema is 
HTTP.
   
   ### Commits
   
   - [X] My commits all reference Jira issues in their subject lines, and I 
have squashed multiple commits if they address the same issue. In addition, my 
commits follow the guidelines from "[How to write a good git commit 
message](http://chris.beams.io/posts/git-commit/)":
     1. Subject is separated from body by a blank line
     1. Subject is limited to 50 characters (not including Jira issue reference)
     1. Subject does not end with a period
     1. Subject uses the imperative mood ("add", not "adding")
     1. Body wraps at 72 characters
     1. Body explains "what" and "why", not "how"
   
   ### Documentation
   
   - [X] In case of new functionality, my PR adds documentation that describes 
how to use it.
     - All the public functions and the classes in the PR contain docstrings 
that explain what it does
     - If you implement backwards incompatible changes, please leave a note in 
the [Updating.md](https://github.com/apache/airflow/blob/master/UPDATING.md) so 
we can assign it to a appropriate release
   
 
----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mix between scheme and schema for HTTP connections
> --------------------------------------------------
>
>                 Key: AIRFLOW-5518
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-5518
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: hooks
>    Affects Versions: 1.10.5
>            Reporter: Mickael V
>            Priority: Minor
>             Fix For: 1.10.6
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> There is an inconsistence in the usage of *scheme* and *schema* when using an 
> HTTP connection.
> If the connection is made through the UI or imported through config files (or 
> to sum up, if it's kept in the Airflow DB), the *schema* represents the 
> *scheme* ({{http}}, {{https}}).
> But if the connection is parsed from a URI (for example if it's overloaded 
> through an environment variable), the {{schema}} is the {{path}} or the URI.
> This is wrong because then the {{HttpHook}} uses the {{schema}} to prefix the 
> {{base_url}}. It is particularly visible when using https, which gets 
> transformed to default http. As a result the URLs are built with HTTP instead 
> of HTTPS.
>  
> There are two possibilities that I see to fix this :
>  * At the {{Connection}} level, in {{parse_from_uri()}}, implement a special 
> treatment for http connection to have {{conn_type='http'}} and 
> {{schema=scheme}}
>  * At the {{HttpHook}} level, in {{get_conn}}, look up {{conn_type}} to get 
> the real {{scheme}}.
>  
> I propose using the first solution, as it is more consistent with what 
> happens when a connection is added through other ways (UI and config files).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to