Documentation ¶
Index ¶
- Constants
- type API
- type Addresses
- type BodyWatch
- type Config
- type Deploy
- type Digest
- type Http
- type LogHandler
- type LogWriter
- type Mutation
- type MutationService
- type MutationServiceInput
- type NestNodeResover
- func (r *NestNodeResover) Config() string
- func (r *NestNodeResover) DataCenter() string
- func (r *NestNodeResover) Ip() string
- func (r *NestNodeResover) IsSelf() bool
- func (r *NestNodeResover) Name() string
- func (r *NestNodeResover) Port() int32
- func (r *NestNodeResover) Progress() *NestProgressResover
- func (r *NestNodeResover) RpcPort() int32
- func (r *NestNodeResover) SnapShot() string
- func (r *NestNodeResover) StartTime() int32
- func (r *NestNodeResover) State() string
- func (r *NestNodeResover) StatusContent() string
- func (r *NestNodeResover) Version() int32
- type NestProgressResover
- type NestServiceResover
- func (r *NestServiceResover) Config() string
- func (r *NestServiceResover) Ip() string
- func (r *NestServiceResover) Name() string
- func (r *NestServiceResover) Port() int32
- func (r *NestServiceResover) Progress() *NestProgressResover
- func (r *NestServiceResover) StartTime() int32
- func (r *NestServiceResover) State() string
- func (r *NestServiceResover) StatusContent() string
- type Node
- type NodeResolver
- func (r *NodeResolver) DataCenter() string
- func (r *NodeResolver) HttpPort() int32
- func (r *NodeResolver) Ip() string
- func (r *NodeResolver) IsSelf() bool
- func (r *NodeResolver) Name() string
- func (r *NodeResolver) RpcPort() int32
- func (r *NodeResolver) Services() *[]*NestServiceResover
- func (r *NodeResolver) SnapShot() string
- func (r *NodeResolver) State() string
- func (r *NodeResolver) Version() int32
- type Nodes
- type Ports
- type Progress
- type Query
- func (q *Query) Node(p api.ParamNode, node *api.Node) error
- func (q *Query) Nodes(_ struct{}, nodes *api.Nodes) error
- func (q *Query) Service(p api.ParamService, service *api.Service) error
- func (q *Query) Services(_ struct{}, services *api.Services) error
- func (q *Query) SnapShot(_ struct{}, snap *string) error
- type RequestOptions
- type Resolver
- func (*Resolver) MutationService(args struct{ ... }) *[]*MutationService
- func (*Resolver) Node(args struct{ ... }) *NodeResolver
- func (*Resolver) Nodes() *[]*NodeResolver
- func (*Resolver) RegisteService(args struct{ ... }) (*bool, error)
- func (*Resolver) Riff() *RiffResolver
- func (*Resolver) Server() *NodeResolver
- func (*Resolver) Service(args struct{ ... }) *ServiceResolver
- func (*Resolver) Services() *[]*ServiceResolver
- func (*Resolver) UnregisteService(args struct{ ... }) *bool
- type Riff
- type RiffResolver
- type Server
- func (s *Server) AddNode(n *Node)
- func (s *Server) AddService(service *Service)
- func (s *Server) DeleteNode(key string)
- func (s *Server) ExchangeNode(n, d *Node)
- func (s *Server) GetNode(key string) *Node
- func (s *Server) GetService(findName string) interface{}
- func (s *Server) Keys() []string
- func (s *Server) MakeDiffNodes(digests []*Digest) (diff []*Node)
- func (s *Server) MakeDigest() (digests []*Digest)
- func (s *Server) MergeDiff(diffs []*Node) (reDiffs []*Node)
- func (s *Server) Range(f func(string, *Node) bool)
- func (s *Server) RemoveNodeDelay(n *Node)
- func (s *Server) ServicesSlice() []string
- func (s *Server) SetState(n *Node, state api.StateType) uint64
- func (s *Server) SetStateOnly(n *Node, state api.StateType) uint64
- func (s *Server) SetStateWithShutter(n *Node, state api.StateType) uint64
- func (s *Server) Shutdown() error
- func (s *Server) Shutter()
- func (s *Server) Slice() []*Node
- func (s *Server) String() string
- type Service
- func (s *Service) Address() string
- func (s *Service) GetPid() int
- func (s *Service) GetVersion() string
- func (s *Service) IsExist() bool
- func (s *Service) RemovePid() error
- func (s *Service) Restart() error
- func (s *Service) SetPid(pid int)
- func (s *Service) SetVersion(version string)
- func (s *Service) Start() error
- func (s *Service) Stop() error
- type ServiceConfig
- type ServiceResolver
- type Services
- type Watch
- type WatchHandler
- type WatchParam
- type WatchType
- type WsRequest
- type WsResponse
Constants ¶
const ( ContentTypeJSON = "application/json" ContentTypeGraphQL = "application/graphql" ContentTypeFormURLEncoded = "application/x-www-form-urlencoded" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { IP string `yaml:"ip"` //server ip Name string `yaml:"name"` //server random name DataCenter string `yaml:"data_center"` //server data center Join string `yaml:"join"` //join address AutoPilot bool `yaml:"auto_pilot"` //auto join node Addresses *Addresses `yaml:"addresses"` Ports *Ports `yaml:"ports"` Fanout int `yaml:"fan_out"` }
func DefaultConfig ¶
func DefaultConfig() *Config
func LoadConfig ¶
func LoadConfig() *Config
type LogHandler ¶
type LogHandler interface {
HandleLog(string)
}
LogHandler interface is used for clients that want to subscribe to logs, for example to stream them over an IPC mechanism
type LogWriter ¶
LogWriter implements io.Writer so it can be used as a log sink. It maintains a circular buffer of logs, and a set of handlers to which it can stream the logs to.
func NewLogWriter ¶
NewLogWriter creates a LogWriter with the given buffer capacity
func (*LogWriter) DeregisterHandler ¶
func (l *LogWriter) DeregisterHandler(lh LogHandler)
DeregisterHandler removes a LogHandler and prevents more invocations
func (*LogWriter) RegisterHandler ¶
func (l *LogWriter) RegisterHandler(lh LogHandler)
RegisterHandler adds a log handler to receive logs, and sends the last buffered logs to the handler
type Mutation ¶
type Mutation struct{}
func (*Mutation) RegisteService ¶
type MutationService ¶
type MutationService struct {
// contains filtered or unexported fields
}
func (*MutationService) Cmd ¶
func (r *MutationService) Cmd() string
func (*MutationService) Error ¶
func (r *MutationService) Error() string
func (*MutationService) Ip ¶
func (r *MutationService) Ip() string
func (*MutationService) Name ¶
func (r *MutationService) Name() string
func (*MutationService) Port ¶
func (r *MutationService) Port() int32
func (*MutationService) Success ¶
func (r *MutationService) Success() bool
type MutationServiceInput ¶
type NestNodeResover ¶
type NestNodeResover struct {
// contains filtered or unexported fields
}
func (*NestNodeResover) Config ¶
func (r *NestNodeResover) Config() string
func (*NestNodeResover) DataCenter ¶
func (r *NestNodeResover) DataCenter() string
func (*NestNodeResover) Ip ¶
func (r *NestNodeResover) Ip() string
func (*NestNodeResover) IsSelf ¶
func (r *NestNodeResover) IsSelf() bool
func (*NestNodeResover) Name ¶
func (r *NestNodeResover) Name() string
func (*NestNodeResover) Port ¶
func (r *NestNodeResover) Port() int32
func (*NestNodeResover) Progress ¶
func (r *NestNodeResover) Progress() *NestProgressResover
func (*NestNodeResover) RpcPort ¶
func (r *NestNodeResover) RpcPort() int32
func (*NestNodeResover) SnapShot ¶
func (r *NestNodeResover) SnapShot() string
func (*NestNodeResover) StartTime ¶
func (r *NestNodeResover) StartTime() int32
func (*NestNodeResover) State ¶
func (r *NestNodeResover) State() string
func (*NestNodeResover) StatusContent ¶
func (r *NestNodeResover) StatusContent() string
func (*NestNodeResover) Version ¶
func (r *NestNodeResover) Version() int32
type NestProgressResover ¶
type NestProgressResover struct {
// contains filtered or unexported fields
}
func (*NestProgressResover) Current ¶
func (r *NestProgressResover) Current() int32
func (*NestProgressResover) InProgress ¶
func (r *NestProgressResover) InProgress() bool
func (*NestProgressResover) Total ¶
func (r *NestProgressResover) Total() int32
type NestServiceResover ¶
type NestServiceResover struct {
// contains filtered or unexported fields
}
func (*NestServiceResover) Config ¶
func (r *NestServiceResover) Config() string
func (*NestServiceResover) Ip ¶
func (r *NestServiceResover) Ip() string
func (*NestServiceResover) Name ¶
func (r *NestServiceResover) Name() string
func (*NestServiceResover) Port ¶
func (r *NestServiceResover) Port() int32
func (*NestServiceResover) Progress ¶
func (r *NestServiceResover) Progress() *NestProgressResover
func (*NestServiceResover) StartTime ¶
func (r *NestServiceResover) StartTime() int32
func (*NestServiceResover) State ¶
func (r *NestServiceResover) State() string
func (*NestServiceResover) StatusContent ¶
func (r *NestServiceResover) StatusContent() string
type Node ¶
type Node struct { Name string DataCenter string IP string RpcPort int HttpPort int Version uint64 State api.StateType // Current state StateChange time.Time // Time last state change happened SnapShot string Services IsSelf bool // contains filtered or unexported fields }
func (*Node) LoadService ¶
func (*Node) LoadServices ¶
func (n *Node) LoadServices()
func (*Node) VersionGet ¶
func (*Node) VersionInc ¶
func (*Node) VersionSet ¶
Witness is called to update our local clock if necessary after witnessing a clock value received from another process
type NodeResolver ¶
type NodeResolver struct {
// contains filtered or unexported fields
}
func (*NodeResolver) DataCenter ¶
func (r *NodeResolver) DataCenter() string
func (*NodeResolver) HttpPort ¶
func (r *NodeResolver) HttpPort() int32
func (*NodeResolver) Ip ¶
func (r *NodeResolver) Ip() string
func (*NodeResolver) IsSelf ¶
func (r *NodeResolver) IsSelf() bool
func (*NodeResolver) Name ¶
func (r *NodeResolver) Name() string
func (*NodeResolver) RpcPort ¶
func (r *NodeResolver) RpcPort() int32
func (*NodeResolver) Services ¶
func (r *NodeResolver) Services() *[]*NestServiceResover
func (*NodeResolver) SnapShot ¶
func (r *NodeResolver) SnapShot() string
func (*NodeResolver) State ¶
func (r *NodeResolver) State() string
func (*NodeResolver) Version ¶
func (r *NodeResolver) Version() int32
type RequestOptions ¶
type Resolver ¶
type Resolver struct { }
func (*Resolver) MutationService ¶
func (*Resolver) MutationService(args struct { Services *[]*MutationServiceInput }) *[]*MutationService
func (*Resolver) Node ¶
func (*Resolver) Node(args struct{ Name string }) *NodeResolver
func (*Resolver) Nodes ¶
func (*Resolver) Nodes() *[]*NodeResolver
func (*Resolver) RegisteService ¶
func (*Resolver) Server ¶
func (*Resolver) Server() *NodeResolver
func (*Resolver) Service ¶
func (*Resolver) Service(args struct { Name string State *string }) *ServiceResolver
func (*Resolver) Services ¶
func (*Resolver) Services() *[]*ServiceResolver
type RiffResolver ¶
type RiffResolver struct { }
func (*RiffResolver) GitBranch ¶
func (r *RiffResolver) GitBranch() string
func (*RiffResolver) GitSha ¶
func (r *RiffResolver) GitSha() string
func (*RiffResolver) Version ¶
func (r *RiffResolver) Version() string
type Server ¶
type Server struct { Listener net.Listener Logger *log.Logger Self *Node ShutdownCh chan struct{} SnapShot string Nodes // contains filtered or unexported fields }
func (*Server) AddService ¶
func (*Server) DeleteNode ¶
func (*Server) ExchangeNode ¶
func (*Server) GetService ¶
func (*Server) MakeDiffNodes ¶
func (*Server) MakeDigest ¶
func (*Server) RemoveNodeDelay ¶
func (*Server) ServicesSlice ¶
func (*Server) SetStateOnly ¶
set node state version inc and shutter node return version
func (*Server) SetStateWithShutter ¶
SetState and make a snapsort return version ++
type Service ¶
type Service struct { Version uint64 State api.StateType //Current state StateChange time.Time //Time last state change happened Progress *Progress //update percent Config string //config file StartTime time.Time //start time StatusContent string //status content *ServiceConfig }
func (*Service) GetVersion ¶
func (*Service) SetVersion ¶
type ServiceConfig ¶
type ServiceConfig struct { Name string `yaml:"name,omitempty"` Ip string `yaml:"ip,omitempty"` Port int `yaml:"port,omitempty"` Env []string `yaml:"env,omitempty"` Dir string `yaml:"dir,omitempty"` Command []string `yaml:"command,omitempty"` StatusPage string `yaml:"status_page,omitempty"` PidFile string `yaml:"pid_file,omitempty"` StdOutFile string `yaml:"std_out_file,omitempty"` StdErrFile string `yaml:"std_err_file,omitempty"` Grace bool `yaml:"grace,omitempty"` RunAtLoad bool `yaml:"run_at_load,omitempty"` KeepAlive bool `yaml:"keep_alive,omitempty"` *Deploy `yaml:"deploy,omitempty"` }
type ServiceResolver ¶
type ServiceResolver struct {
// contains filtered or unexported fields
}
func (*ServiceResolver) Name ¶
func (r *ServiceResolver) Name() string
func (*ServiceResolver) Nodes ¶
func (r *ServiceResolver) Nodes() *[]*NestNodeResover
type Watch ¶
func (*Watch) DeregisterHandler ¶
func (w *Watch) DeregisterHandler(wh WatchHandler)
func (*Watch) Dispatch ¶
func (w *Watch) Dispatch(param WatchParam)
func (*Watch) RegisterHandler ¶
func (w *Watch) RegisterHandler(wh WatchHandler)
type WatchHandler ¶
type WatchHandler interface { GetParam() *WatchParam HandleWatch() }
type WatchParam ¶
type WsResponse ¶
type WsResponse struct { Event string `json:"event"` Body interface{} `json:"body"` }