[jira] [Commented] (AIRFLOW-3124) Broken webserver debug mode (RBAC)

2018-10-02 Thread Iuliia Volkova (JIRA)


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

Iuliia Volkova commented on AIRFLOW-3124:
-

PR was merged. Could we close the issue? [~ajkosel] [~TaoFeng]

> Broken webserver debug mode (RBAC)
> --
>
> Key: AIRFLOW-3124
> URL: https://issues.apache.org/jira/browse/AIRFLOW-3124
> Project: Apache Airflow
>  Issue Type: Bug
>  Components: webapp, webserver
>Reporter: Aaron Kosel
>Assignee: Aaron Kosel
>Priority: Minor
>
> {code:java}
> Traceback (most recent call last):
> File "/usr/local/bin/airflow", line 7, in 
> exec(compile(f.read(), __file__, 'exec'))
> File "/airflow/airflow/bin/airflow", line 32, in 
> args.func(args)
> File "/airflow/airflow/utils/cli.py", line 74, in wrapper
> return f(*args, **kwargs)
> File "/airflow/airflow/bin/cli.py", line 875, in webserver
> app.run(debug=True, port=args.port, host=args.hostname,
> AttributeError: 'tuple' object has no attribute 'run'
> {code}
> Nearly the same issue as https://issues.apache.org/jira/browse/AIRFLOW-2204, 
> but only affecting RBAC debug mode. The problem is that `create_app` returns 
> a tuple, but the `cli` script expects to just receive the flask app back 
> without the appbuilder.



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


[jira] [Commented] (AIRFLOW-3124) Broken webserver debug mode (RBAC)

2018-09-28 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on AIRFLOW-3124:
-

feng-tao closed pull request #3958: [AIRFLOW-3124] Fix RBAC webserver debug mode
URL: https://github.com/apache/incubator-airflow/pull/3958
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/airflow/bin/cli.py b/airflow/bin/cli.py
index 1c5494ead1..09bd0c1806 100644
--- a/airflow/bin/cli.py
+++ b/airflow/bin/cli.py
@@ -870,8 +870,12 @@ def webserver(args):
 print(
 "Starting the web server on port {0} and host {1}.".format(
 args.port, args.hostname))
-app = create_app_rbac(conf) if settings.RBAC else create_app(conf)
-app.run(debug=True, port=args.port, host=args.hostname,
+if settings.RBAC:
+app, _ = create_app_rbac(conf, testing=conf.get('core', 
'unit_test_mode'))
+else:
+app = create_app(conf, testing=conf.get('core', 'unit_test_mode'))
+app.run(debug=True, use_reloader=False if app.config['TESTING'] else 
True,
+port=args.port, host=args.hostname,
 ssl_context=(ssl_cert, ssl_key) if ssl_cert and ssl_key else 
None)
 else:
 os.environ['SKIP_DAGS_PARSING'] = 'True'
diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py
index 93ec0576e6..aeafdd85fe 100644
--- a/tests/cli/test_cli.py
+++ b/tests/cli/test_cli.py
@@ -139,7 +139,21 @@ def test_ready_prefix_on_cmdline_dead_process(self):
 
self.assertEqual(get_num_ready_workers_running(self.gunicorn_master_proc), 0)
 
 def test_cli_webserver_debug(self):
-p = psutil.Popen(["airflow", "webserver", "-d"])
+env = os.environ.copy()
+p = psutil.Popen(["airflow", "webserver", "-d"], env=env)
+sleep(3)  # wait for webserver to start
+return_code = p.poll()
+self.assertEqual(
+None,
+return_code,
+"webserver terminated with return code {} in debug 
mode".format(return_code))
+p.terminate()
+p.wait()
+
+def test_cli_rbac_webserver_debug(self):
+env = os.environ.copy()
+env['AIRFLOW__WEBSERVER__RBAC'] = 'True'
+p = psutil.Popen(["airflow", "webserver", "-d"], env=env)
 sleep(3)  # wait for webserver to start
 return_code = p.poll()
 self.assertEqual(


 


This is an automated message from the Apache Git Service.
To respond to the message, please log on 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


> Broken webserver debug mode (RBAC)
> --
>
> Key: AIRFLOW-3124
> URL: https://issues.apache.org/jira/browse/AIRFLOW-3124
> Project: Apache Airflow
>  Issue Type: Bug
>  Components: webapp, webserver
>Reporter: Aaron Kosel
>Assignee: Aaron Kosel
>Priority: Minor
>
> {code:java}
> Traceback (most recent call last):
> File "/usr/local/bin/airflow", line 7, in 
> exec(compile(f.read(), __file__, 'exec'))
> File "/airflow/airflow/bin/airflow", line 32, in 
> args.func(args)
> File "/airflow/airflow/utils/cli.py", line 74, in wrapper
> return f(*args, **kwargs)
> File "/airflow/airflow/bin/cli.py", line 875, in webserver
> app.run(debug=True, port=args.port, host=args.hostname,
> AttributeError: 'tuple' object has no attribute 'run'
> {code}
> Nearly the same issue as https://issues.apache.org/jira/browse/AIRFLOW-2204, 
> but only affecting RBAC debug mode. The problem is that `create_app` returns 
> a tuple, but the `cli` script expects to just receive the flask app back 
> without the appbuilder.



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


[jira] [Commented] (AIRFLOW-3124) Broken webserver debug mode (RBAC)

2018-09-26 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on AIRFLOW-3124:
-

akosel opened a new pull request #3958: [AIRFLOW-3124] Fix RBAC webserver debug 
mode
URL: https://github.com/apache/incubator-airflow/pull/3958
 
 
   Make sure you have checked _all_ steps below.
   
   ### Jira
   
   - [x] My PR addresses the following [Airflow 
Jira](https://issues.apache.org/jira/browse/AIRFLOW-3124) issues and references 
them in the PR title.
   ### Description
   
   - [x] Here are some details about my PR, including screenshots of any UI 
changes:
   The command `airflow webserver -d` crashes when `settings.RBAC == True`. 
This is because `create_app` currently returns `app, appbuilder`, which causes 
the app to crash with an `AttributeError`. Reading through the code, it doesn't 
look like we rely on `appbuilder` being returned by `create_app` anywhere, so 
it should be safe to remove this. 
   
   ### Tests
   
   - [x] My PR adds the following unit tests
   
   I set up the CLI to pass in the `unit_test_mode` setting to the flask app so 
we can disable the werkzeug reloader when running tests. If the reloader runs, 
there is an extra monitoring process left running after killing the main 
webserver process. This causes conflicts if multiple tests rely on being able 
to start a webserver (as the process will not be able to bind to the default 
socket).
   
   ### 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"
   
   
   ### Code Quality
   
   - [x] Passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on 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


> Broken webserver debug mode (RBAC)
> --
>
> Key: AIRFLOW-3124
> URL: https://issues.apache.org/jira/browse/AIRFLOW-3124
> Project: Apache Airflow
>  Issue Type: Bug
>  Components: webapp, webserver
>Reporter: Aaron Kosel
>Assignee: Aaron Kosel
>Priority: Minor
>
> {code:java}
> Traceback (most recent call last):
> File "/usr/local/bin/airflow", line 7, in 
> exec(compile(f.read(), __file__, 'exec'))
> File "/airflow/airflow/bin/airflow", line 32, in 
> args.func(args)
> File "/airflow/airflow/utils/cli.py", line 74, in wrapper
> return f(*args, **kwargs)
> File "/airflow/airflow/bin/cli.py", line 875, in webserver
> app.run(debug=True, port=args.port, host=args.hostname,
> AttributeError: 'tuple' object has no attribute 'run'
> {code}
> Nearly the same issue as https://issues.apache.org/jira/browse/AIRFLOW-2204, 
> but only affecting RBAC debug mode. The problem is that `create_app` returns 
> a tuple, but the `cli` script expects to just receive the flask app back 
> without the appbuilder.



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