From 12076e95b84017f480844ef4a3eaffce440efa96 Mon Sep 17 00:00:00 2001 From: Kostas Christidis Date: Fri, 20 Apr 2018 10:04:22 -0400 Subject: [PATCH] [FAB-9619] Export orderer configuration defaults Change-Id: I9128d79e363fd0b1dfcc70792cbdff76d3729e34 Signed-off-by: Kostas Christidis --- orderer/common/localconfig/config.go | 140 ++++++++++------------ orderer/common/localconfig/config_test.go | 27 +---- 2 files changed, 66 insertions(+), 101 deletions(-) diff --git a/orderer/common/localconfig/config.go b/orderer/common/localconfig/config.go index f9daf753c6..03bbdd04e3 100644 --- a/orderer/common/localconfig/config.go +++ b/orderer/common/localconfig/config.go @@ -1,39 +1,22 @@ -/* -Copyright IBM Corp. 2016 All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright IBM Corp. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 package config import ( "fmt" + "path/filepath" "strings" "time" + bccsp "github.com/hyperledger/fabric/bccsp/factory" "github.com/hyperledger/fabric/common/flogging" "github.com/hyperledger/fabric/common/viperutil" + cf "github.com/hyperledger/fabric/core/config" "github.com/Shopify/sarama" "github.com/op/go-logging" "github.com/spf13/viper" - - cf "github.com/hyperledger/fabric/core/config" - - "path/filepath" - - bccsp "github.com/hyperledger/fabric/bccsp/factory" - genesisconfig "github.com/hyperledger/fabric/common/tools/configtxgen/localconfig" ) const ( @@ -60,7 +43,7 @@ func init() { // Note, for non 1-1 mappings, you may append // something like `mapstructure:"weirdFoRMat"` to // modify the default mapping, see the "Unmarshal" -// section of https://github.com/spf13/viper for more info +// section of https://github.com/spf13/viper for more info. type TopLevel struct { General General FileLedger FileLedger @@ -89,7 +72,7 @@ type General struct { Authentication Authentication } -// Keepalive contains configuration for gRPC servers +// Keepalive contains configuration for gRPC servers. type Keepalive struct { ServerMinInterval time.Duration ServerInterval time.Duration @@ -107,7 +90,7 @@ type TLS struct { } // Authentication contains configuration parameters related to authenticating -// client messages +// client messages. type Authentication struct { TimeWindow time.Duration } @@ -180,20 +163,21 @@ type Consumer struct { RetryBackoff time.Duration } -// Debug contains configuration for the orderer's debug parameters +// Debug contains configuration for the orderer's debug parameters. type Debug struct { BroadcastTraceDir string DeliverTraceDir string } -var defaults = TopLevel{ +// Defaults carries the default orderer configuration values. +var Defaults = TopLevel{ General: General{ LedgerType: "file", ListenAddress: "127.0.0.1", ListenPort: 7050, GenesisMethod: "provisional", GenesisProfile: "SampleSingleMSPSolo", - SystemChannel: genesisconfig.TestChainID, + SystemChannel: "test_system_channel_name", GenesisFile: "genesisblock", Profile: Profile{ Enabled: false, @@ -291,31 +275,31 @@ func (c *TopLevel) completeInitialization(configDir string) { for { switch { case c.General.LedgerType == "": - logger.Infof("General.LedgerType unset, setting to %s", defaults.General.LedgerType) - c.General.LedgerType = defaults.General.LedgerType + logger.Infof("General.LedgerType unset, setting to %s", Defaults.General.LedgerType) + c.General.LedgerType = Defaults.General.LedgerType case c.General.ListenAddress == "": - logger.Infof("General.ListenAddress unset, setting to %s", defaults.General.ListenAddress) - c.General.ListenAddress = defaults.General.ListenAddress + logger.Infof("General.ListenAddress unset, setting to %s", Defaults.General.ListenAddress) + c.General.ListenAddress = Defaults.General.ListenAddress case c.General.ListenPort == 0: - logger.Infof("General.ListenPort unset, setting to %s", defaults.General.ListenPort) - c.General.ListenPort = defaults.General.ListenPort + logger.Infof("General.ListenPort unset, setting to %s", Defaults.General.ListenPort) + c.General.ListenPort = Defaults.General.ListenPort case c.General.LogLevel == "": - logger.Infof("General.LogLevel unset, setting to %s", defaults.General.LogLevel) - c.General.LogLevel = defaults.General.LogLevel + logger.Infof("General.LogLevel unset, setting to %s", Defaults.General.LogLevel) + c.General.LogLevel = Defaults.General.LogLevel case c.General.LogFormat == "": - logger.Infof("General.LogFormat unset, setting to %s", defaults.General.LogFormat) - c.General.LogFormat = defaults.General.LogFormat + logger.Infof("General.LogFormat unset, setting to %s", Defaults.General.LogFormat) + c.General.LogFormat = Defaults.General.LogFormat case c.General.GenesisMethod == "": - c.General.GenesisMethod = defaults.General.GenesisMethod + c.General.GenesisMethod = Defaults.General.GenesisMethod case c.General.GenesisFile == "": - c.General.GenesisFile = defaults.General.GenesisFile + c.General.GenesisFile = Defaults.General.GenesisFile case c.General.GenesisProfile == "": - c.General.GenesisProfile = defaults.General.GenesisProfile + c.General.GenesisProfile = Defaults.General.GenesisProfile case c.General.SystemChannel == "": - c.General.SystemChannel = defaults.General.SystemChannel + c.General.SystemChannel = Defaults.General.SystemChannel case c.Kafka.TLS.Enabled && c.Kafka.TLS.Certificate == "": logger.Panicf("General.Kafka.TLS.Certificate must be set if General.Kafka.TLS.Enabled is set to true.") @@ -325,68 +309,68 @@ func (c *TopLevel) completeInitialization(configDir string) { logger.Panicf("General.Kafka.TLS.CertificatePool must be set if General.Kafka.TLS.Enabled is set to true.") case c.General.Profile.Enabled && c.General.Profile.Address == "": - logger.Infof("Profiling enabled and General.Profile.Address unset, setting to %s", defaults.General.Profile.Address) - c.General.Profile.Address = defaults.General.Profile.Address + logger.Infof("Profiling enabled and General.Profile.Address unset, setting to %s", Defaults.General.Profile.Address) + c.General.Profile.Address = Defaults.General.Profile.Address case c.General.LocalMSPDir == "": - logger.Infof("General.LocalMSPDir unset, setting to %s", defaults.General.LocalMSPDir) - c.General.LocalMSPDir = defaults.General.LocalMSPDir + logger.Infof("General.LocalMSPDir unset, setting to %s", Defaults.General.LocalMSPDir) + c.General.LocalMSPDir = Defaults.General.LocalMSPDir case c.General.LocalMSPID == "": - logger.Infof("General.LocalMSPID unset, setting to %s", defaults.General.LocalMSPID) - c.General.LocalMSPID = defaults.General.LocalMSPID + logger.Infof("General.LocalMSPID unset, setting to %s", Defaults.General.LocalMSPID) + c.General.LocalMSPID = Defaults.General.LocalMSPID case c.General.Authentication.TimeWindow == 0: - logger.Infof("General.Authentication.TimeWindow unset, setting to %s", defaults.General.Authentication.TimeWindow) - c.General.Authentication.TimeWindow = defaults.General.Authentication.TimeWindow + logger.Infof("General.Authentication.TimeWindow unset, setting to %s", Defaults.General.Authentication.TimeWindow) + c.General.Authentication.TimeWindow = Defaults.General.Authentication.TimeWindow case c.FileLedger.Prefix == "": - logger.Infof("FileLedger.Prefix unset, setting to %s", defaults.FileLedger.Prefix) - c.FileLedger.Prefix = defaults.FileLedger.Prefix + logger.Infof("FileLedger.Prefix unset, setting to %s", Defaults.FileLedger.Prefix) + c.FileLedger.Prefix = Defaults.FileLedger.Prefix case c.Kafka.Retry.ShortInterval == 0: - logger.Infof("Kafka.Retry.ShortInterval unset, setting to %v", defaults.Kafka.Retry.ShortInterval) - c.Kafka.Retry.ShortInterval = defaults.Kafka.Retry.ShortInterval + logger.Infof("Kafka.Retry.ShortInterval unset, setting to %v", Defaults.Kafka.Retry.ShortInterval) + c.Kafka.Retry.ShortInterval = Defaults.Kafka.Retry.ShortInterval case c.Kafka.Retry.ShortTotal == 0: - logger.Infof("Kafka.Retry.ShortTotal unset, setting to %v", defaults.Kafka.Retry.ShortTotal) - c.Kafka.Retry.ShortTotal = defaults.Kafka.Retry.ShortTotal + logger.Infof("Kafka.Retry.ShortTotal unset, setting to %v", Defaults.Kafka.Retry.ShortTotal) + c.Kafka.Retry.ShortTotal = Defaults.Kafka.Retry.ShortTotal case c.Kafka.Retry.LongInterval == 0: - logger.Infof("Kafka.Retry.LongInterval unset, setting to %v", defaults.Kafka.Retry.LongInterval) - c.Kafka.Retry.LongInterval = defaults.Kafka.Retry.LongInterval + logger.Infof("Kafka.Retry.LongInterval unset, setting to %v", Defaults.Kafka.Retry.LongInterval) + c.Kafka.Retry.LongInterval = Defaults.Kafka.Retry.LongInterval case c.Kafka.Retry.LongTotal == 0: - logger.Infof("Kafka.Retry.LongTotal unset, setting to %v", defaults.Kafka.Retry.LongTotal) - c.Kafka.Retry.LongTotal = defaults.Kafka.Retry.LongTotal + logger.Infof("Kafka.Retry.LongTotal unset, setting to %v", Defaults.Kafka.Retry.LongTotal) + c.Kafka.Retry.LongTotal = Defaults.Kafka.Retry.LongTotal case c.Kafka.Retry.NetworkTimeouts.DialTimeout == 0: - logger.Infof("Kafka.Retry.NetworkTimeouts.DialTimeout unset, setting to %v", defaults.Kafka.Retry.NetworkTimeouts.DialTimeout) - c.Kafka.Retry.NetworkTimeouts.DialTimeout = defaults.Kafka.Retry.NetworkTimeouts.DialTimeout + logger.Infof("Kafka.Retry.NetworkTimeouts.DialTimeout unset, setting to %v", Defaults.Kafka.Retry.NetworkTimeouts.DialTimeout) + c.Kafka.Retry.NetworkTimeouts.DialTimeout = Defaults.Kafka.Retry.NetworkTimeouts.DialTimeout case c.Kafka.Retry.NetworkTimeouts.ReadTimeout == 0: - logger.Infof("Kafka.Retry.NetworkTimeouts.ReadTimeout unset, setting to %v", defaults.Kafka.Retry.NetworkTimeouts.ReadTimeout) - c.Kafka.Retry.NetworkTimeouts.ReadTimeout = defaults.Kafka.Retry.NetworkTimeouts.ReadTimeout + logger.Infof("Kafka.Retry.NetworkTimeouts.ReadTimeout unset, setting to %v", Defaults.Kafka.Retry.NetworkTimeouts.ReadTimeout) + c.Kafka.Retry.NetworkTimeouts.ReadTimeout = Defaults.Kafka.Retry.NetworkTimeouts.ReadTimeout case c.Kafka.Retry.NetworkTimeouts.WriteTimeout == 0: - logger.Infof("Kafka.Retry.NetworkTimeouts.WriteTimeout unset, setting to %v", defaults.Kafka.Retry.NetworkTimeouts.WriteTimeout) - c.Kafka.Retry.NetworkTimeouts.WriteTimeout = defaults.Kafka.Retry.NetworkTimeouts.WriteTimeout + logger.Infof("Kafka.Retry.NetworkTimeouts.WriteTimeout unset, setting to %v", Defaults.Kafka.Retry.NetworkTimeouts.WriteTimeout) + c.Kafka.Retry.NetworkTimeouts.WriteTimeout = Defaults.Kafka.Retry.NetworkTimeouts.WriteTimeout case c.Kafka.Retry.Metadata.RetryBackoff == 0: - logger.Infof("Kafka.Retry.Metadata.RetryBackoff unset, setting to %v", defaults.Kafka.Retry.Metadata.RetryBackoff) - c.Kafka.Retry.Metadata.RetryBackoff = defaults.Kafka.Retry.Metadata.RetryBackoff + logger.Infof("Kafka.Retry.Metadata.RetryBackoff unset, setting to %v", Defaults.Kafka.Retry.Metadata.RetryBackoff) + c.Kafka.Retry.Metadata.RetryBackoff = Defaults.Kafka.Retry.Metadata.RetryBackoff case c.Kafka.Retry.Metadata.RetryMax == 0: - logger.Infof("Kafka.Retry.Metadata.RetryMax unset, setting to %v", defaults.Kafka.Retry.Metadata.RetryMax) - c.Kafka.Retry.Metadata.RetryMax = defaults.Kafka.Retry.Metadata.RetryMax + logger.Infof("Kafka.Retry.Metadata.RetryMax unset, setting to %v", Defaults.Kafka.Retry.Metadata.RetryMax) + c.Kafka.Retry.Metadata.RetryMax = Defaults.Kafka.Retry.Metadata.RetryMax case c.Kafka.Retry.Producer.RetryBackoff == 0: - logger.Infof("Kafka.Retry.Producer.RetryBackoff unset, setting to %v", defaults.Kafka.Retry.Producer.RetryBackoff) - c.Kafka.Retry.Producer.RetryBackoff = defaults.Kafka.Retry.Producer.RetryBackoff + logger.Infof("Kafka.Retry.Producer.RetryBackoff unset, setting to %v", Defaults.Kafka.Retry.Producer.RetryBackoff) + c.Kafka.Retry.Producer.RetryBackoff = Defaults.Kafka.Retry.Producer.RetryBackoff case c.Kafka.Retry.Producer.RetryMax == 0: - logger.Infof("Kafka.Retry.Producer.RetryMax unset, setting to %v", defaults.Kafka.Retry.Producer.RetryMax) - c.Kafka.Retry.Producer.RetryMax = defaults.Kafka.Retry.Producer.RetryMax + logger.Infof("Kafka.Retry.Producer.RetryMax unset, setting to %v", Defaults.Kafka.Retry.Producer.RetryMax) + c.Kafka.Retry.Producer.RetryMax = Defaults.Kafka.Retry.Producer.RetryMax case c.Kafka.Retry.Consumer.RetryBackoff == 0: - logger.Infof("Kafka.Retry.Consumer.RetryBackoff unset, setting to %v", defaults.Kafka.Retry.Consumer.RetryBackoff) - c.Kafka.Retry.Consumer.RetryBackoff = defaults.Kafka.Retry.Consumer.RetryBackoff + logger.Infof("Kafka.Retry.Consumer.RetryBackoff unset, setting to %v", Defaults.Kafka.Retry.Consumer.RetryBackoff) + c.Kafka.Retry.Consumer.RetryBackoff = Defaults.Kafka.Retry.Consumer.RetryBackoff case c.Kafka.Version == sarama.KafkaVersion{}: - logger.Infof("Kafka.Version unset, setting to %v", defaults.Kafka.Version) - c.Kafka.Version = defaults.Kafka.Version + logger.Infof("Kafka.Version unset, setting to %v", Defaults.Kafka.Version) + c.Kafka.Version = Defaults.Kafka.Version default: return diff --git a/orderer/common/localconfig/config_test.go b/orderer/common/localconfig/config_test.go index bb2160a44e..e2bb153880 100644 --- a/orderer/common/localconfig/config_test.go +++ b/orderer/common/localconfig/config_test.go @@ -1,18 +1,5 @@ -/* -Copyright IBM Corp. 2016 All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright IBM Corp. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 package config @@ -24,16 +11,10 @@ import ( "testing" "time" - "github.com/hyperledger/fabric/common/flogging" - genesisconfig "github.com/hyperledger/fabric/common/tools/configtxgen/localconfig" "github.com/hyperledger/fabric/core/config/configtest" "github.com/stretchr/testify/assert" ) -func init() { - flogging.SetModuleLevel(pkgLogID, "DEBUG") -} - func TestLoadGoodConfig(t *testing.T) { cleanup := configtest.SetDevFabricConfigPath(t) defer cleanup() @@ -130,6 +111,6 @@ func TestSystemChannel(t *testing.T) { cleanup := configtest.SetDevFabricConfigPath(t) defer cleanup() conf, _ := Load() - assert.Equal(t, genesisconfig.TestChainID, conf.General.SystemChannel, - "Expected default system channel ID to be '%s', got '%s' instead", genesisconfig.TestChainID, conf.General.SystemChannel) + assert.Equal(t, Defaults.General.SystemChannel, conf.General.SystemChannel, + "Expected default system channel ID to be '%s', got '%s' instead", Defaults.General.SystemChannel, conf.General.SystemChannel) }