The one in Dataflow 1.x was one system property that contained all the JSON
so it wasn't exactly what you were looking for.

On Tue, Feb 13, 2018 at 9:51 AM, Romain Manni-Bucau <rmannibu...@gmail.com>
wrote:

> I like your proposal Kenneth. Perfectly fits my use case and deployment
> one as well - when ops configure the env without modifying the code.
>
> How do we move forward on that? Should I send a PR or do you want to
> import what was in dataflow?
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
> 2018-02-13 18:49 GMT+01:00 Lukasz Cwik <lc...@google.com>:
>
>> PipelineOptionsFactory.fromSystemProperties did exist in Dataflow 1.x
>> and was dropped for the reason that Ken mentioned.
>>
>> On Tue, Feb 13, 2018 at 9:46 AM, Kenneth Knowles <k...@google.com> wrote:
>>
>>> Pipeline options are not global - they are a property of a single job.
>>> The TestPipeline reads them from a very particular system property because
>>> it is a special testing rule.
>>>
>>> If you want a generic way to build pipeline options from a set of system
>>> properties, it should be from an explicit prefix, not global defaults. So
>>> if a user wants to put a bunch of options into properties, they choose a
>>> namespace like "my.random.namespace" and everything under it can be
>>> interpreted as a pipelineoption:
>>>
>>> my.random.namespace.SomeOption=bizzle
>>> my.random.namespace.SomeOtherOption=whatever
>>>
>>> And you could do PipelineOptionsFactory.fromSys
>>> temProperties("my.random.namespace")
>>>
>>> We should use the full name of the option not split it with dots - dots
>>> represent hierarchy not words separation.
>>>
>>> interface FooOptions extends PipelineOptions {
>>>   getSomeOption()
>>>   getSomeOtherOption()
>>> }
>>>
>>> I think I can be +0.5 on this. We might also reserve a namespace like
>>> "beam.TestPipeline.options" and use it for specification of test config.
>>> Could be easier than embedding JSON in a property, in some cases. Easier to
>>> override little pieces for sure.
>>>
>>> Kenn
>>>
>>> On Tue, Feb 13, 2018 at 9:29 AM, Romain Manni-Bucau <
>>> rmannibu...@gmail.com> wrote:
>>>
>>>> makes sense, do we want beam.foo.bar -> --foo-bar conversion too?
>>>>
>>>>
>>>> Romain Manni-Bucau
>>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>> <https://rmannibucau.metawerx.net/> | Old Blog
>>>> <http://rmannibucau.wordpress.com> | Github
>>>> <https://github.com/rmannibucau> | LinkedIn
>>>> <https://www.linkedin.com/in/rmannibucau> | Book
>>>> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>>>>
>>>> 2018-02-13 18:19 GMT+01:00 Eugene Kirpichov <kirpic...@google.com>:
>>>>
>>>>> Neutral about this one: haven't seen a case where this was needed, but
>>>>> don't see anything wrong with it either. One thing I'd recommend if you go
>>>>> through with it, extract from system properties under "beam." rather than
>>>>> all of them, to avoid clashes.
>>>>>
>>>>> On Tue, Feb 13, 2018, 7:53 AM Jean-Baptiste Onofré <j...@nanthrax.net>
>>>>> wrote:
>>>>>
>>>>>> Hi Romain,
>>>>>>
>>>>>> it sounds interesting to me, and doesn't break anything, so +1 from
>>>>>> my side.
>>>>>>
>>>>>> Regards
>>>>>> JB
>>>>>>
>>>>>> On 02/13/2018 03:42 PM, Romain Manni-Bucau wrote:
>>>>>> > Hi guys,
>>>>>> >
>>>>>> > there are hacks in beam testing code to read the args from a system
>>>>>> property but
>>>>>> > I wonder if we shouldnt add a PipelineOptionsFactory.fromSys
>>>>>> temProperties().
>>>>>> >
>>>>>> > It would iterate over the system properties and take all --xxx=foo
>>>>>> as potential
>>>>>> > argument it tries to bind.
>>>>>> >
>>>>>> > Rational behind that is to enable users to wrap the pipeline API
>>>>>> but still
>>>>>> > expose the pipeline options to end users for advanced cases.
>>>>>> >
>>>>>> > Any discussion on this kind of usages already? What do you think of
>>>>>> this proposal?
>>>>>> >
>>>>>> > Side note: we can think about a fromEnv() too.
>>>>>> >
>>>>>> > Romain Manni-Bucau
>>>>>> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>> > <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>> > <http://rmannibucau.wordpress.com> | Github <
>>>>>> https://github.com/rmannibucau> |
>>>>>> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>> > <https://www.packtpub.com/application-development/java-ee-8-
>>>>>> high-performance>
>>>>>>
>>>>>> --
>>>>>> Jean-Baptiste Onofré
>>>>>> jbono...@apache.org
>>>>>> http://blog.nanthrax.net
>>>>>> Talend - http://www.talend.com
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to