1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package registry
- import (
- "errors"
- "strconv"
- )
- var (
- ErrAddressNotExists = errors.New("address not exists")
- )
- type (
- Addr struct {
- Address string `json:"address"`
- Port int `json:"port"`
- }
- ServiceNode struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Version string `json:"version"`
- Status string `json:"status"`
- Address string `json:"address"`
- Port int `json:"port"`
- Addresses map[string]Addr `json:"addresses"`
- Metadata map[string]string `json:"metadata"`
- }
- )
- func (addr Addr) String() string {
- return addr.Address + ":" + strconv.Itoa(addr.Port)
- }
- func (s *ServiceNode) GetAddress(name string) (addr Addr, err error) {
- if s.Addresses == nil {
- err = ErrAddressNotExists
- return
- }
- var (
- ok bool
- )
- if addr, ok = s.Addresses[name]; !ok {
- err = ErrAddressNotExists
- }
- return
- }
- func (s *ServiceNode) SetAddress(name string, address string, port int) {
- if s.Addresses == nil {
- s.Addresses = make(map[string]Addr)
- }
- s.Addresses[name] = Addr{
- Address: address,
- Port: port,
- }
- }
|