Peer command options


Arnaud Le Hors
 

Hi all,

There currently are two ways one can specify settings for the peer command: yaml file and environment variables, with the latter taking precedence over the former. So in core.yaml we have for instance:

peer:
        tls-enabled: false

that can then be overridden at run time with:

CORE_PEER_TLS_ENABLED=true peer node start

Viper which is used for handling this also supports the ability to specify command flags that take precedence over everything else. So, one could do:

peer node start --peer-tls-enabled

There is some code in peer/main.go intended to do just that but it's currently broken and looking into it I realized that while the fix is trivial (thanks to Kostas who figured it out, ref issue #578) very few settings are currently supported via command flags. This leaves us with several options:

1) fix the current flags and add support for more as need arises
2) take a pass at all the different settings we have and figure out which ones to support as flags
3) take this out entirely - it's not currently working anyway so that shouldn't bother anyone

A few people on slack have expressed preference for the latter. Before I go ahead and take it out though I thought I'd give everyone a chance to express their preference.

Thanks.
--
Arnaud  Le Hors - Senior Technical Staff Member, Open Web Technologies - IBM Cloud


Christopher B Ferris <chrisfer@...>
 

I wonder whether we should warn that the yaml is being over-ridden by env and print the setting that will be run? As a user, surprises are never a good thing, in my book.

Cheers,

Christopher Ferris
IBM Distinguished Engineer, CTO Open Technology
IBM Cloud, Open Technologies
email: chrisfer@...
twitter: @christo4ferris
blog: https://developer.ibm.com/opentech/author/chrisfer/
phone: +1 508 667 0402

On Jun 14, 2016, at 4:28 PM, Arnaud Le Hors <lehors@...> wrote:

Hi all,

There currently are two ways one can specify settings for the peer command: yaml file and environment variables, with the latter taking precedence over the former. So in core.yaml we have for instance:

peer:
        tls-enabled: false

that can then be overridden at run time with:

CORE_PEER_TLS_ENABLED=true peer node start

Viper which is used for handling this also supports the ability to specify command flags that take precedence over everything else. So, one could do:

peer node start --peer-tls-enabled

There is some code in peer/main.go intended to do just that but it's currently broken and looking into it I realized that while the fix is trivial (thanks to Kostas who figured it out, ref issue #578) very few settings are currently supported via command flags. This leaves us with several options:

1) fix the current flags and add support for more as need arises
2) take a pass at all the different settings we have and figure out which ones to support as flags
3) take this out entirely - it's not currently working anyway so that shouldn't bother anyone

A few people on slack have expressed preference for the latter. Before I go ahead and take it out though I thought I'd give everyone a chance to express their preference.

Thanks.
--
Arnaud  Le Hors - Senior Technical Staff Member, Open Web Technologies - IBM Cloud



Baohua Yang
 

IMHO, it may be not necessary to support all options in all styles.

But it's a good idea to highlight the default priority. Usually, there can be some comments in the help doc of commands, and in the core.yaml.

On Wed, Jun 15, 2016 at 6:27 AM, Christopher B Ferris <chrisfer@...> wrote:
I wonder whether we should warn that the yaml is being over-ridden by env and print the setting that will be run? As a user, surprises are never a good thing, in my book.

Cheers,

Christopher Ferris
IBM Distinguished Engineer, CTO Open Technology
IBM Cloud, Open Technologies
email: chrisfer@...
twitter: @christo4ferris
blog: https://developer.ibm.com/opentech/author/chrisfer/
phone: +1 508 667 0402

On Jun 14, 2016, at 4:28 PM, Arnaud Le Hors <lehors@...> wrote:

Hi all,

There currently are two ways one can specify settings for the peer command: yaml file and environment variables, with the latter taking precedence over the former. So in core.yaml we have for instance:

peer:
        tls-enabled: false

that can then be overridden at run time with:

CORE_PEER_TLS_ENABLED=true peer node start

Viper which is used for handling this also supports the ability to specify command flags that take precedence over everything else. So, one could do:

peer node start --peer-tls-enabled

There is some code in peer/main.go intended to do just that but it's currently broken and looking into it I realized that while the fix is trivial (thanks to Kostas who figured it out, ref issue #578) very few settings are currently supported via command flags. This leaves us with several options:

1) fix the current flags and add support for more as need arises
2) take a pass at all the different settings we have and figure out which ones to support as flags
3) take this out entirely - it's not currently working anyway so that shouldn't bother anyone

A few people on slack have expressed preference for the latter. Before I go ahead and take it out though I thought I'd give everyone a chance to express their preference.

Thanks.
--
Arnaud  Le Hors - Senior Technical Staff Member, Open Web Technologies - IBM Cloud



_______________________________________________
Hyperledger-fabric mailing list
Hyperledger-fabric@...
https://lists.hyperledger.org/mailman/listinfo/hyperledger-fabric




--
Best wishes!
Baohua