pkg/discovery/config.go (63 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
package discovery
import (
"flag"
"seata.apache.org/seata-go/pkg/util/flagext"
)
type ServiceConfig struct {
VgroupMapping flagext.StringMap `yaml:"vgroup-mapping" json:"vgroup-mapping" koanf:"vgroup-mapping"`
Grouplist flagext.StringMap `yaml:"grouplist" json:"grouplist" koanf:"grouplist"`
EnableDegrade bool `yaml:"enable-degrade" json:"enable-degrade" koanf:"enable-degrade"`
DisableGlobalTransaction bool `yaml:"disable-global-transaction" json:"disable-global-transaction" koanf:"disable-global-transaction"`
}
func (cfg *ServiceConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.BoolVar(&cfg.EnableDegrade, prefix+".enable-degrade", false, "degrade current not support.")
f.BoolVar(&cfg.DisableGlobalTransaction, prefix+".disable-global-transaction", false, "disable globalTransaction.")
f.Var(&cfg.VgroupMapping, prefix+".vgroup-mapping", "The vgroup mapping.")
f.Var(&cfg.Grouplist, prefix+".grouplist", "The group list.")
}
type RegistryConfig struct {
Type string `yaml:"type" json:"type" koanf:"type"`
File FileConfig `yaml:"file" json:"file" koanf:"file"`
Nacos NacosConfig `yaml:"nacos" json:"nacos" koanf:"nacos"`
Etcd3 Etcd3Config `yaml:"etcd3" json:"etcd3" koanf:"etcd3"`
}
func (cfg *RegistryConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.StringVar(&cfg.Type, prefix+".type", "file", "The registry type.")
cfg.File.RegisterFlagsWithPrefix(prefix+".file", f)
cfg.Nacos.RegisterFlagsWithPrefix(prefix+".nacos", f)
cfg.Etcd3.RegisterFlagsWithPrefix(prefix+".etcd3", f)
}
type FileConfig struct {
Name string `yaml:"name" json:"name" koanf:"name"`
}
func (cfg *FileConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.StringVar(&cfg.Name, prefix+".name", "registry.conf", "The file name of registry.")
}
type NacosConfig struct {
Application string `yaml:"application" json:"application" koanf:"application"`
ServerAddr string `yaml:"server-addr" json:"server-addr" koanf:"server-addr"`
Group string `yaml:"group" json:"group" koanf:"group"`
Namespace string `yaml:"namespace" json:"namespace" koanf:"namespace"`
Username string `yaml:"username" json:"username" koanf:"username"`
Password string `yaml:"password" json:"password" koanf:"password"`
AccessKey string `yaml:"access-key" json:"access-key" koanf:"access-key"`
SecretKey string `yaml:"secret-key" json:"secret-key" koanf:"secret-key"`
}
func (cfg *NacosConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.StringVar(&cfg.Application, prefix+".application", "seata", "The application name of registry.")
f.StringVar(&cfg.ServerAddr, prefix+".server-addr", "", "The server address of registry.")
f.StringVar(&cfg.Group, prefix+".group", "SEATA_GROUP", "The group of registry.")
f.StringVar(&cfg.Namespace, prefix+".namespace", "", "The namespace of registry.")
f.StringVar(&cfg.Username, prefix+".username", "", "The username of registry.")
f.StringVar(&cfg.Password, prefix+".password", "", "The password of registry.")
f.StringVar(&cfg.AccessKey, prefix+".access-key", "", "The access key of registry.")
f.StringVar(&cfg.SecretKey, prefix+".secret-key", "", "The secret key of registry.")
}
type Etcd3Config struct {
Cluster string `yaml:"cluster" json:"cluster" koanf:"cluster"`
ServerAddr string `yaml:"server-addr" json:"server-addr" koanf:"server-addr"`
}
func (cfg *Etcd3Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
f.StringVar(&cfg.Cluster, prefix+".cluster", "default", "The server address of registry.")
f.StringVar(&cfg.ServerAddr, prefix+".server-addr", "http://localhost:2379", "The server address of registry.")
}