12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package discov
- import "errors"
- var (
- // errEmptyEtcdHosts indicates that etcd hosts are empty.
- errEmptyEtcdHosts = errors.New("empty etcd hosts")
- // errEmptyEtcdKey indicates that etcd key is empty.
- errEmptyEtcdKey = errors.New("empty etcd key")
- )
- // EtcdConf is the config item with the given key on etcd.
- type EtcdConf struct {
- Hosts []string
- Key string
- ID int64 `json:",optional"`
- User string `json:",optional"`
- Pass string `json:",optional"`
- CertFile string `json:",optional"`
- CertKeyFile string `json:",optional=CertFile"`
- CACertFile string `json:",optional=CertFile"`
- InsecureSkipVerify bool `json:",optional"`
- }
- // HasAccount returns if account provided.
- func (c EtcdConf) HasAccount() bool {
- return len(c.User) > 0 && len(c.Pass) > 0
- }
- // HasID returns if ID provided.
- func (c EtcdConf) HasID() bool {
- return c.ID > 0
- }
- // HasTLS returns if TLS CertFile/CertKeyFile/CACertFile are provided.
- func (c EtcdConf) HasTLS() bool {
- return len(c.CertFile) > 0 && len(c.CertKeyFile) > 0 && len(c.CACertFile) > 0
- }
- // Validate validates c.
- func (c EtcdConf) Validate() error {
- if len(c.Hosts) == 0 {
- return errEmptyEtcdHosts
- } else if len(c.Key) == 0 {
- return errEmptyEtcdKey
- } else {
- return nil
- }
- }
|