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

[jira] [Created] (AIRFLOW-2873) Improvements to Quick Start flow

G. Geijteman created AIRFLOW-2873:
-------------------------------------

             Summary: Improvements to Quick Start flow
                 Key: AIRFLOW-2873
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-2873
             Project: Apache Airflow
          Issue Type: Improvement
          Components: configuration
    Affects Versions: Airflow 1.9.0
            Reporter: G. Geijteman


Thank you for developing Airflow!

Having ran through the Quick Start, i've come across two issues that I would like to highlight:
{code:java}
bash-3.2$ cd ~/project/airflow/
bash-3.2$ export AIRFLOW_HOME=~/project/airflow
bash-3.2$ python3 -m venv $AIRFLOW_HOME/venv
bash-3.2$ source venv/bin/activate
(venv) bash-3.2$ pip install --upgrade pip
(venv) bash-3.2$ uname -a Darwin mac.local 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
(venv) bash-3.2$ python -V
Python 3.6.5
(venv) bash-3.2$ pip -V
pip 18.0 from ~/project/airflow/venv/lib/python3.6/site-packages/pip (python 3.6)
(venv) bash-3.2$ pip install apache-airflow[redis,postgres] -U {code}
Results in:
{code:java}
During handling of the above exception, another exception occurred:Traceback (most recent call last):
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 639, in set_extra
fernet = get_fernet()
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 103, in get_fernet
raise AirflowException('Failed to import Fernet, it may not be installed')
airflow.exceptions.AirflowException: Failed to import Fernet, it may not be installed
[2018-08-08 10:49:01,121]{models.py:643}ERROR - Failed to load fernet while encrypting value, using non-encrypted value.
Traceback (most recent call last):
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 101, in get_fernet
from cryptography.fernet import Fernet
ModuleNotFoundError: No module named 'cryptography'{code}
This is solved by:
{code:java}
(venv) bash-3.2$ pip install cryptography{code}
*Proposed fix:*

_Include the `cryptography` package_

 

Having fixed that, the following issue occurs when trying to:
{code:java}
(venv) bash-3.2$ airflow initdb{code}
Exempt:
{code:java}
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 639, in set_extra
fernet = get_fernet()
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 107, in get_fernet
raise AirflowException("Could not create Fernet object: {}".format(ve))
airflow.exceptions.AirflowException: Could not create Fernet object: Incorrect padding
[2018-08-08 10:50:50,697]

{models.py:643}

ERROR - Failed to load fernet while encrypting value, using non-encrypted value.
Traceback (most recent call last):
File "~/project/airflow/venv/lib/python3.6/site-packages/airflow/models.py", line 105, in get_fernet
return Fernet(configuration.get('core', 'FERNET_KEY').encode('utf-8'))
File "~/project/airflow/venv/lib/python3.6/site-packages/cryptography/fernet.py", line 34, in _init_
key = base64.urlsafe_b64decode(key)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/base64.py", line 133, in urlsafe_b64decode
return b64decode(s)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/base64.py", line 87, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding{code}

 Which after some googling leads to the conclusion that the ~/project/airflow/airflow.cfg fernet_key field is not set to the correct value.

*Feature request:*

_Have the setup automatically generate a valid fernet key for the user._

The fact that this page exists: [https://bcb.github.io/airflow/fernet-key] suggests this could easily be a part of the package.

I understand that this project is in incubator phase, but I would say having a quick start that is not working as-is will discourage users from trying out this project. Thank you for considering.



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