You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2019/12/03 01:56:00 UTC

[jira] [Work logged] (BEAM-8814) --no_auth flag is boolean type and is misleading

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

ASF GitHub Bot logged work on BEAM-8814:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Dec/19 01:55
            Start Date: 03/Dec/19 01:55
    Worklog Time Spent: 10m 
      Work Description: aaltay commented on issue #10202: [BEAM-8814] Changed no_auth option from bool to store_true
URL: https://github.com/apache/beam/pull/10202#issuecomment-560962720
 
 
   > Yes, this would be backwards incompatible, but is impossible to use correctly as is (and is probably rare), so I view it as a bug fix rather than a feature change.
   
   +1
   
   @wintermelons please update the fix version for the JIRA based on the merge time, so that this change can be included in the release notes.
 
----------------------------------------------------------------
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:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 352393)
    Remaining Estimate: 166h 50m  (was: 167h)
            Time Spent: 1h 10m  (was: 1h)

> --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, 2.17.0
>         Environment: Python2, Python3
>            Reporter: David Song
>            Priority: Blocker
>             Fix For: 2.18.0
>
>   Original Estimate: 168h
>          Time Spent: 1h 10m
>  Remaining Estimate: 166h 50m
>
> 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)