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

Kenneth Knowles commented on BEAM-8814:
---------------------------------------

Per https://beam.apache.org/contribute/jira-priorities/ this is probably at 
most P1

> --no_auth flag is boolean type and is misleading
> ------------------------------------------------
>
>                 Key: BEAM-8814
>                 URL: https://issues.apache.org/jira/browse/BEAM-8814
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-harness
>    Affects Versions: 2.14.0, 2.15.0, 2.16.0
>         Environment: Python2, Python3
>            Reporter: David Song
>            Priority: Critical
>             Fix For: 2.17.0
>
>   Original Estimate: 168h
>          Time Spent: 1h 50m
>  Remaining Estimate: 166h 10m
>
> Pipeline options defines a 
> [no_auth|[https://github.com/apache/beam/blob/master/sdks/python/apache_beam/options/pipeline_options.py#L468]]
>  flag that is type=bool. This type is known to be ambiguous because it will 
> expect a value, but anything passed to it will be considered True. For 
> example, passing in "--no_auth=False" would still evaluate to True. We should 
> instead use action="store_true" which only detects whether the flag is passed 
> or not. 
> Furthermore, 
> [PipelineOptions.from_dictionary|[https://github.com/apache/beam/blob/master/sdks/python/apache_beam/options/pipeline_options.py#L229]]
>  will assume that boolean flags are passed in without values (e.g. passing 
> --no_auth, instead of --no_auth=True). This, combined with type=bool failing 
> without a value, will ensure that it always fails. 
> sdk_worker_main is the only place that uses from_dictionary (aside from 
> tests), and it will crash if no_auth flag is passed. Looking at 
> pipeline_options_test, tests that call 
> [from_dictionary|[https://github.com/apache/beam/blob/master/sdks/python/apache_beam/options/pipeline_options_test.py#L218]]
>  will feed in get_all_options, which means it have intended to only be used 
> for serializing/deserializing flag options.
> So from here, to support the no_auth flag:
>  * we change no_auth so that it is action="store_true", or
>  * we change sdk_worker_main so that it does not use from_dictionary
> Or both.



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

Reply via email to