allow jetstream to be enabled in the config file

This commit is contained in:
R.I.Pienaar
2020-01-30 16:16:50 +01:00
committed by Derek Collison
parent dc207be04f
commit ef77156890

View File

@@ -34,8 +34,9 @@ import (
"time"
"github.com/nats-io/jwt"
"github.com/nats-io/nats-server/v2/conf"
"github.com/nats-io/nkeys"
"github.com/nats-io/nats-server/v2/conf"
)
var allowUnknownTopLevelField = int32(0)
@@ -184,7 +185,7 @@ type Options struct {
Gateway GatewayOpts `json:"gateway,omitempty"`
LeafNode LeafNodeOpts `json:"leaf,omitempty"`
JetStream bool `json:"jetstream"`
StoreDir string `json:"-"`
StoreDir string `json:"store_dir"`
ProfPort int `json:"-"`
PidFile string `json:"-"`
PortsFileDir string `json:"-"`
@@ -617,6 +618,12 @@ func (o *Options) processConfigFileLine(k string, v interface{}, errors *[]error
*errors = append(*errors, err)
return
}
case "jetstream":
err := parseJetStream(tk, o, &errors, &warnings)
if err != nil {
errors = append(errors, err)
continue
}
case "logfile", "log_file":
o.LogFile = v.(string)
case "logfile_size_limit", "log_size_limit":
@@ -1124,6 +1131,37 @@ func parseGateway(v interface{}, o *Options, errors *[]error, warnings *[]error)
return nil
}
func parseJetStream(v interface{}, opts *Options, errors *[]error, warnings *[]error) error {
tk, v := unwrapValue(v)
cm, ok := v.(map[string]interface{})
if !ok {
return &configErr{tk, fmt.Sprintf("Expected map to define JetStream, got %T", v)}
}
opts.JetStream = true
for mk, mv := range cm {
tk, mv = unwrapValue(mv)
switch strings.ToLower(mk) {
case "store_dir", "storedir":
opts.StoreDir = mv.(string)
default:
if !tk.IsUsedVariable() {
err := &unknownConfigFieldErr{
field: mk,
configErr: configErr{
token: tk,
},
}
*errors = append(*errors, err)
continue
}
}
}
return nil
}
// parseLeafNodes will parse the leaf node config.
func parseLeafNodes(v interface{}, opts *Options, errors *[]error, warnings *[]error) error {
var lt token