Documentation
¶
Index ¶
- Constants
- func GenerateDiamondtWorkflowSpec(colonyName string) *core.WorkflowSpec
- func GenerateSingleWorkflowSpec(colonyName string) *core.WorkflowSpec
- func GenerateTreeWorkflowSpec(colonyName string) *core.WorkflowSpec
- func SetupTestEnv1(t *testing.T) (*TestEnv1, *client.ColoniesClient, *Server, string, chan bool)
- func SetupTestEnv2(t *testing.T) (*TestEnv2, *client.ColoniesClient, *Server, string, chan bool)
- func WaitForCluster(t *testing.T, cluster []ServerInfo)
- func WaitForProcessGraphs(t *testing.T, c *client.ColoniesClient, colonyName string, generatorID string, ...) int
- func WaitForProcesses(t *testing.T, server *Server, processes []*core.Process, state int)
- func WaitForServerToDie(t *testing.T, s ServerInfo)
- type BackendFactory
- type BackendType
- type CoAPConfig
- type GRPCBackendFactory
- type GRPCConfig
- type GRPCManagedServer
- func (gms *GRPCManagedServer) GetAddr() string
- func (gms *GRPCManagedServer) GetBackendType() BackendType
- func (gms *GRPCManagedServer) GetPort() int
- func (gms *GRPCManagedServer) GetServer() *Server
- func (gms *GRPCManagedServer) HealthCheck() error
- func (gms *GRPCManagedServer) IsRunning() bool
- func (gms *GRPCManagedServer) Start() error
- func (gms *GRPCManagedServer) Stop(ctx context.Context) error
- type GenericServer
- type GinBackendFactory
- type GinManagedServer
- func (gms *GinManagedServer) GetAddr() string
- func (gms *GinManagedServer) GetBackendType() BackendType
- func (gms *GinManagedServer) GetPort() int
- func (gms *GinManagedServer) GetServer() *Server
- func (gms *GinManagedServer) HealthCheck() error
- func (gms *GinManagedServer) IsRunning() bool
- func (gms *GinManagedServer) Start() error
- func (gms *GinManagedServer) Stop(ctx context.Context) error
- type HTTPBackendFactory
- type HTTPManagedServer
- func (hms *HTTPManagedServer) GetAddr() string
- func (hms *HTTPManagedServer) GetBackendType() BackendType
- func (hms *HTTPManagedServer) GetPort() int
- func (hms *HTTPManagedServer) GetServer() *Server
- func (hms *HTTPManagedServer) HealthCheck() error
- func (hms *HTTPManagedServer) IsRunning() bool
- func (hms *HTTPManagedServer) Start() error
- func (hms *HTTPManagedServer) Stop(ctx context.Context) error
- type LibP2PBackendFactory
- type LibP2PConfig
- type LibP2PManagedServer
- func (lms *LibP2PManagedServer) GetAddr() string
- func (lms *LibP2PManagedServer) GetBackendType() BackendType
- func (lms *LibP2PManagedServer) GetHost() host.Host
- func (lms *LibP2PManagedServer) GetPort() int
- func (lms *LibP2PManagedServer) GetPubSub() *pubsub.PubSub
- func (lms *LibP2PManagedServer) HealthCheck() error
- func (lms *LibP2PManagedServer) IsRunning() bool
- func (lms *LibP2PManagedServer) PublishProcessUpdate(process *core.Process) error
- func (lms *LibP2PManagedServer) Start() error
- func (lms *LibP2PManagedServer) Stop(ctx context.Context) error
- type ManagedServer
- type Server
- func CreateServer(db database.Database, port int, tls bool, tlsPrivateKeyPath string, ...) *Server
- func CreateServerWithBackend(db database.Database, port int, tls bool, tlsPrivateKeyPath string, ...) *Server
- func CreateServerWithBackendType(db database.Database, port int, tls bool, tlsPrivateKeyPath string, ...) *Server
- func PrepareTests(t *testing.T) (*client.ColoniesClient, *Server, string, chan bool)
- func (server *Server) FileDB() database.FileDatabase
- func (server *Server) GenerateRPCErrorMsg(err error, errorCode int) (*rpc.RPCReplyMsg, error)
- func (server *Server) HandleHTTPError(c backends.Context, err error, errorCode int) bool
- func (server *Server) HandleRPC(jsonPayload string) (string, error)
- func (server *Server) ParseSignature(payload string, signature string) (string, error)
- func (server *Server) SendEmptyHTTPReply(c backends.Context, payloadType string)
- func (server *Server) SendHTTPReply(c backends.Context, payloadType string, jsonString string)
- func (server *Server) ServeForever() error
- func (server *Server) SetAllowExecutorReregister(allow bool)
- func (server *Server) Shutdown()
- func (server *Server) WSController() WSController
- type ServerAdapter
- func (s *ServerAdapter) AllowExecutorReregister() bool
- func (s *ServerAdapter) AttributeController() attributehandlers.Controller
- func (s *ServerAdapter) BlueprintDB() database.BlueprintDatabase
- func (s *ServerAdapter) ColonyDB() database.ColonyDatabase
- func (s *ServerAdapter) Controller() colony.Controller
- func (s *ServerAdapter) CronController() interface{ ... }
- func (s *ServerAdapter) ExclusiveAssign() bool
- func (s *ServerAdapter) ExecutorController() executor.Controller
- func (s *ServerAdapter) ExecutorDB() database.ExecutorDatabase
- func (s *ServerAdapter) FileDB() database.FileDatabase
- func (s *ServerAdapter) FunctionController() functionhandlers.Controller
- func (s *ServerAdapter) FunctionDB() database.FunctionDatabase
- func (s *ServerAdapter) GenerateRPCErrorMsg(err error, errorCode int) (*rpc.RPCReplyMsg, error)
- func (s *ServerAdapter) GeneratorController() generatorhandlers.Controller
- func (s *ServerAdapter) GeneratorDB() database.GeneratorDatabase
- func (s *ServerAdapter) GetColonyDB() database.ColonyDatabase
- func (s *ServerAdapter) GetController() interface{ ... }
- func (s *ServerAdapter) GetSecurityDB() database.SecurityDatabase
- func (s *ServerAdapter) GetServerID() (string, error)
- func (s *ServerAdapter) GetUserDB() database.UserDatabase
- func (s *ServerAdapter) GetValidator() security.Validator
- func (s *ServerAdapter) HandleHTTPError(c backends.Context, err error, errorCode int) bool
- func (s *ServerAdapter) LogDB() database.LogDatabase
- func (s *ServerAdapter) LogProcessController() loghandlers.Controller
- func (s *ServerAdapter) ParseSignature(payload string, signature string) (string, error)
- func (s *ServerAdapter) ProcessController() process.Controller
- func (s *ServerAdapter) ProcessDB() database.ProcessDatabase
- func (s *ServerAdapter) ProcessgraphController() processgraph.Controller
- func (s *ServerAdapter) ProcessgraphServer() processgraph.Server
- func (s *ServerAdapter) ProcessgraphValidator() processgraph.Validator
- func (s *ServerAdapter) RealtimeHandler() realtimehandlers.RealtimeHandler
- func (s *ServerAdapter) SecurityDB() database.SecurityDatabase
- func (s *ServerAdapter) SendEmptyHTTPReply(c backends.Context, payloadType string)
- func (s *ServerAdapter) SendHTTPReply(c backends.Context, payloadType string, jsonString string)
- func (s *ServerAdapter) ServerController() serverhandlers.Controller
- func (s *ServerAdapter) ServerServer() serverhandlers.Server
- func (s *ServerAdapter) ServerValidator() serverhandlers.Validator
- func (s *ServerAdapter) SetAllowExecutorReregister(allow bool)
- func (s *ServerAdapter) SnapshotDB() database.SnapshotDatabase
- func (s *ServerAdapter) TLS() bool
- func (s *ServerAdapter) UserDB() database.UserDatabase
- func (s *ServerAdapter) Validator() security.Validator
- func (s *ServerAdapter) WSController() gin.WSController
- func (s *ServerAdapter) WSControllerCompat() WSController
- type ServerConfig
- type ServerInfo
- type ServerManager
- func (sm *ServerManager) AddServerConfig(config *ServerConfig) error
- func (sm *ServerManager) GetRunningServers() map[BackendType]ManagedServer
- func (sm *ServerManager) GetServer(backendType BackendType) (ManagedServer, bool)
- func (sm *ServerManager) GetStatus() map[BackendType]ServerStatus
- func (sm *ServerManager) IsRunning() bool
- func (sm *ServerManager) RegisterBackendFactory(factory BackendFactory) error
- func (sm *ServerManager) StartAll() error
- func (sm *ServerManager) StopAll(timeout time.Duration) error
- type ServerStatus
- type SharedResources
- type TestEnv1
- type TestEnv2
- type WSController
Constants ¶
const (
ColoniesProcotolID = protocol.ID("/colonies/rpc/1.0.0")
)
const EnableTLS = false
const Insecure = true
const SkipTLSVerify = false
Variables ¶
This section is empty.
Functions ¶
func GenerateDiamondtWorkflowSpec ¶ added in v1.9.0
func GenerateDiamondtWorkflowSpec(colonyName string) *core.WorkflowSpec
func GenerateSingleWorkflowSpec ¶ added in v1.9.0
func GenerateSingleWorkflowSpec(colonyName string) *core.WorkflowSpec
func GenerateTreeWorkflowSpec ¶ added in v1.9.0
func GenerateTreeWorkflowSpec(colonyName string) *core.WorkflowSpec
func SetupTestEnv1 ¶ added in v1.9.0
func SetupTestEnv2 ¶ added in v1.9.0
func WaitForCluster ¶
func WaitForCluster(t *testing.T, cluster []ServerInfo)
func WaitForProcessGraphs ¶
func WaitForProcesses ¶ added in v1.9.0
func WaitForServerToDie ¶
func WaitForServerToDie(t *testing.T, s ServerInfo)
Types ¶
type BackendFactory ¶ added in v1.9.0
type BackendFactory interface {
CreateServer(config *ServerConfig, sharedResources *SharedResources) (ManagedServer, error)
GetBackendType() BackendType
}
BackendFactory creates backend-specific servers
type BackendType ¶ added in v1.9.0
type BackendType string
BackendType represents different server backend types
const ( GinBackendType BackendType = "gin" LibP2PBackendType BackendType = "libp2p" GRPCBackendType BackendType = "grpc" CoAPBackendType BackendType = "coap" HTTPGRPCBackendType BackendType = "http+grpc" HTTPGRPCLibP2PBackendType BackendType = "http+grpc+libp2p" HTTPGRPCLibP2PCoAPBackendType BackendType = "http+grpc+libp2p+coap" )
func ParseServerBackendsFromEnv ¶ added in v1.9.0
func ParseServerBackendsFromEnv(backendsEnv string) BackendType
ParseServerBackendsFromEnv parses COLONIES_SERVER_BACKENDS environment variable Returns the appropriate BackendType based on comma-separated backend list Supports: "http", "libp2p", "grpc", "http,libp2p", "libp2p,http"
type CoAPConfig ¶ added in v1.9.0
type CoAPConfig struct {
Port int // CoAP server port (UDP)
}
CoAPConfig holds CoAP-specific configuration
type GRPCBackendFactory ¶ added in v1.9.0
type GRPCBackendFactory struct{}
GRPCBackendFactory creates gRPC managed servers
func NewGRPCBackendFactory ¶ added in v1.9.0
func NewGRPCBackendFactory() *GRPCBackendFactory
NewGRPCBackendFactory creates a new gRPC backend factory
func (*GRPCBackendFactory) CreateServer ¶ added in v1.9.0
func (gbf *GRPCBackendFactory) CreateServer(config *ServerConfig, sharedResources *SharedResources) (ManagedServer, error)
CreateServer creates a new gRPC managed server
func (*GRPCBackendFactory) GetBackendType ¶ added in v1.9.0
func (gbf *GRPCBackendFactory) GetBackendType() BackendType
GetBackendType returns the backend type this factory creates
type GRPCConfig ¶ added in v1.9.0
type GRPCConfig struct {
Port int // gRPC server port
TLSCert string // Path to TLS certificate file (optional)
TLSKey string // Path to TLS private key file (optional)
Insecure bool // Run without TLS (default: false)
}
GRPCConfig holds gRPC-specific configuration
type GRPCManagedServer ¶ added in v1.9.0
type GRPCManagedServer struct {
// contains filtered or unexported fields
}
GRPCManagedServer wraps the existing Server to make it compatible with ServerManager
func NewGRPCManagedServer ¶ added in v1.9.0
func NewGRPCManagedServer(config *ServerConfig, sharedResources *SharedResources) (*GRPCManagedServer, error)
NewGRPCManagedServer creates a new gRPC managed server
func (*GRPCManagedServer) GetAddr ¶ added in v1.9.0
func (gms *GRPCManagedServer) GetAddr() string
GetAddr returns the server address
func (*GRPCManagedServer) GetBackendType ¶ added in v1.9.0
func (gms *GRPCManagedServer) GetBackendType() BackendType
GetBackendType returns the backend type
func (*GRPCManagedServer) GetPort ¶ added in v1.9.0
func (gms *GRPCManagedServer) GetPort() int
GetPort returns the server port
func (*GRPCManagedServer) GetServer ¶ added in v1.9.0
func (gms *GRPCManagedServer) GetServer() *Server
GetServer returns the underlying server (for compatibility)
func (*GRPCManagedServer) HealthCheck ¶ added in v1.9.0
func (gms *GRPCManagedServer) HealthCheck() error
HealthCheck performs a health check on the server
func (*GRPCManagedServer) IsRunning ¶ added in v1.9.0
func (gms *GRPCManagedServer) IsRunning() bool
IsRunning returns whether the server is running
func (*GRPCManagedServer) Start ¶ added in v1.9.0
func (gms *GRPCManagedServer) Start() error
Start starts the gRPC server
type GenericServer ¶ added in v1.9.0
type GenericServer interface {
// HTTP Response methods
HandleHTTPError(c backends.Context, err error, errorCode int) bool
SendHTTPReply(c backends.Context, payloadType string, jsonString string)
SendEmptyHTTPReply(c backends.Context, payloadType string)
// Server identity
GetServerID() (string, error)
// Security and validation
Validator() security.Validator
// Database access
UserDB() database.UserDatabase
ExecutorDB() database.ExecutorDatabase
ColonyDB() database.ColonyDatabase
SecurityDB() database.SecurityDatabase
ProcessDB() database.ProcessDatabase
ProcessGraphDB() database.ProcessGraphDatabase
AttributeDB() database.AttributeDatabase
FileDB() database.FileDatabase
LogDB() database.LogDatabase
FunctionDB() database.FunctionDatabase
GeneratorDB() database.GeneratorDatabase
CronDB() database.CronDatabase
SnapshotDB() database.SnapshotDatabase
BlueprintDB() database.BlueprintDatabase
// Controllers
ColonyController() controllers.ColoniesController
ProcessController() interface {
AddProcess(process *core.Process) (*core.Process, error)
GetProcess(processID string) (*core.Process, error)
GetProcesses(colonyName string, count int, state int) ([]*core.Process, error)
FindProcesses(colonyName string, processType string, label string, initiatorID string, count int, state int) ([]*core.Process, error)
GetProcessesByExecutorID(executorID string, count int, state int) ([]*core.Process, error)
GetProcessesByProcessGraphID(processGraphID string, count int, state int) ([]*core.Process, error)
RemoveProcess(processID string, state int) error
RemoveAllProcesses(colonyName string, state int) error
RemoveAllProcessesInProcessGraphs(colonyName string, state int) error
RemoveAllProcessesInProcessGraphsByID(processGraphID string, state int) error
SetProcessState(processID string, state int) error
AssignProcess(colonyName string, executorID string) (*core.Process, error)
UnassignProcess(processID string) (*core.Process, error)
MarkSuccessful(processID string) (*core.Process, error)
MarkFailed(processID string, errorMsg string) (*core.Process, error)
CloseSuccessful(processID string, output []interface{}) (*core.Process, error)
CloseFailed(processID string, errorMsg string) (*core.Process, error)
SetOutput(processID string, output []interface{}) (*core.Process, error)
}
ExecutorController() interface {
AddExecutor(executor *core.Executor) (*core.Executor, error)
GetExecutor(executorID string) (*core.Executor, error)
GetExecutorByName(colonyName string, executorName string) (*core.Executor, error)
GetExecutors(colonyName string) ([]*core.Executor, error)
GetExecutorsWithState(colonyName string, state int) ([]*core.Executor, error)
RemoveExecutor(executorID string) error
ApproveExecutor(executorID string) error
RejectExecutor(executorID string) error
ReportAllocation(executorID string, available bool, executorType string, nodes int, cpu string, memory string, storage string, gpu string, gpuCount int) error
}
GeneratorController() interface {
AddGenerator(generator *core.Generator) (*core.Generator, error)
GetGenerator(generatorID string) (*core.Generator, error)
ResolveGenerator(colonyName string, generatorName string) (*core.Generator, error)
GetGenerators(colonyName string, count int) ([]*core.Generator, error)
PackGenerator(generatorID string, colonyName string, arg string) error
RemoveGenerator(generatorID string) error
GetGeneratorPeriod() int
}
CronController() interface {
AddCron(cron *core.Cron) (*core.Cron, error)
GetCron(cronID string) (*core.Cron, error)
GetCrons(colonyName string, count int) ([]*core.Cron, error)
RunCron(cronID string) (*core.Cron, error)
RemoveCron(cronID string) error
GetCronPeriod() int
}
}
GenericServer defines the interface that handlers can use to interact with the server This interface abstracts away the HTTP backend implementation
type GinBackendFactory ¶ added in v1.9.0
type GinBackendFactory struct{}
GinBackendFactory creates gin managed servers
func NewGinBackendFactory ¶ added in v1.9.0
func NewGinBackendFactory() *GinBackendFactory
NewGinBackendFactory creates a new gin backend factory
func (*GinBackendFactory) CreateServer ¶ added in v1.9.0
func (gbf *GinBackendFactory) CreateServer(config *ServerConfig, sharedResources *SharedResources) (ManagedServer, error)
CreateServer creates a new gin managed server
func (*GinBackendFactory) GetBackendType ¶ added in v1.9.0
func (gbf *GinBackendFactory) GetBackendType() BackendType
GetBackendType returns the backend type this factory creates
type GinManagedServer ¶ added in v1.9.0
type GinManagedServer struct {
// contains filtered or unexported fields
}
GinManagedServer wraps the existing Server to make it compatible with ServerManager
func NewGinManagedServer ¶ added in v1.9.0
func NewGinManagedServer(config *ServerConfig, sharedResources *SharedResources) (*GinManagedServer, error)
NewGinManagedServer creates a new gin managed server
func (*GinManagedServer) GetAddr ¶ added in v1.9.0
func (gms *GinManagedServer) GetAddr() string
GetAddr returns the server address
func (*GinManagedServer) GetBackendType ¶ added in v1.9.0
func (gms *GinManagedServer) GetBackendType() BackendType
GetBackendType returns the backend type
func (*GinManagedServer) GetPort ¶ added in v1.9.0
func (gms *GinManagedServer) GetPort() int
GetPort returns the server port
func (*GinManagedServer) GetServer ¶ added in v1.9.0
func (gms *GinManagedServer) GetServer() *Server
GetServer returns the underlying server (for compatibility)
func (*GinManagedServer) HealthCheck ¶ added in v1.9.0
func (gms *GinManagedServer) HealthCheck() error
HealthCheck performs a health check on the server
func (*GinManagedServer) IsRunning ¶ added in v1.9.0
func (gms *GinManagedServer) IsRunning() bool
IsRunning returns whether the server is running
func (*GinManagedServer) Start ¶ added in v1.9.0
func (gms *GinManagedServer) Start() error
Start starts the gin server
type HTTPBackendFactory ¶ added in v1.9.0
type HTTPBackendFactory struct{}
HTTPBackendFactory creates HTTP managed servers
func NewHTTPBackendFactory ¶ added in v1.9.0
func NewHTTPBackendFactory() *HTTPBackendFactory
NewHTTPBackendFactory creates a new HTTP backend factory
func (*HTTPBackendFactory) CreateServer ¶ added in v1.9.0
func (hbf *HTTPBackendFactory) CreateServer(config *ServerConfig, sharedResources *SharedResources) (ManagedServer, error)
CreateServer creates a new HTTP managed server
func (*HTTPBackendFactory) GetBackendType ¶ added in v1.9.0
func (hbf *HTTPBackendFactory) GetBackendType() BackendType
GetBackendType returns the backend type this factory creates
type HTTPManagedServer ¶ added in v1.9.0
type HTTPManagedServer struct {
// contains filtered or unexported fields
}
HTTPManagedServer wraps the existing Server to make it compatible with ServerManager
func NewHTTPManagedServer ¶ added in v1.9.0
func NewHTTPManagedServer(config *ServerConfig, sharedResources *SharedResources) (*HTTPManagedServer, error)
NewHTTPManagedServer creates a new HTTP managed server
func (*HTTPManagedServer) GetAddr ¶ added in v1.9.0
func (hms *HTTPManagedServer) GetAddr() string
GetAddr returns the server address
func (*HTTPManagedServer) GetBackendType ¶ added in v1.9.0
func (hms *HTTPManagedServer) GetBackendType() BackendType
GetBackendType returns the backend type
func (*HTTPManagedServer) GetPort ¶ added in v1.9.0
func (hms *HTTPManagedServer) GetPort() int
GetPort returns the server port
func (*HTTPManagedServer) GetServer ¶ added in v1.9.0
func (hms *HTTPManagedServer) GetServer() *Server
GetServer returns the underlying server (for compatibility)
func (*HTTPManagedServer) HealthCheck ¶ added in v1.9.0
func (hms *HTTPManagedServer) HealthCheck() error
HealthCheck performs a health check on the server
func (*HTTPManagedServer) IsRunning ¶ added in v1.9.0
func (hms *HTTPManagedServer) IsRunning() bool
IsRunning returns whether the server is running
func (*HTTPManagedServer) Start ¶ added in v1.9.0
func (hms *HTTPManagedServer) Start() error
Start starts the HTTP server
type LibP2PBackendFactory ¶ added in v1.9.0
type LibP2PBackendFactory struct{}
LibP2PBackendFactory creates libp2p managed servers
func NewLibP2PBackendFactory ¶ added in v1.9.0
func NewLibP2PBackendFactory() *LibP2PBackendFactory
NewLibP2PBackendFactory creates a new libp2p backend factory
func (*LibP2PBackendFactory) CreateServer ¶ added in v1.9.0
func (lbf *LibP2PBackendFactory) CreateServer(config *ServerConfig, sharedResources *SharedResources) (ManagedServer, error)
CreateServer creates a new libp2p managed server
func (*LibP2PBackendFactory) GetBackendType ¶ added in v1.9.0
func (lbf *LibP2PBackendFactory) GetBackendType() BackendType
GetBackendType returns the backend type this factory creates
type LibP2PConfig ¶ added in v1.9.0
type LibP2PConfig struct {
Port int // LibP2P TCP port (QUIC will be port+1)
Identity string // Hex-encoded LibP2P identity key (optional)
BootstrapPeers string // Comma-separated bootstrap peer multiaddresses (optional)
AnnounceAddrs string // Comma-separated multiaddresses to announce for external discovery (optional)
}
LibP2PConfig holds LibP2P-specific configuration
type LibP2PManagedServer ¶ added in v1.9.0
type LibP2PManagedServer struct {
// contains filtered or unexported fields
}
LibP2PManagedServer implements a libp2p-based server for distributed Colony operations
func NewLibP2PManagedServer ¶ added in v1.9.0
func NewLibP2PManagedServer(config *ServerConfig, sharedResources *SharedResources) (*LibP2PManagedServer, error)
NewLibP2PManagedServer creates a new libp2p managed server
func (*LibP2PManagedServer) GetAddr ¶ added in v1.9.0
func (lms *LibP2PManagedServer) GetAddr() string
GetAddr returns the server address (multiaddr format)
func (*LibP2PManagedServer) GetBackendType ¶ added in v1.9.0
func (lms *LibP2PManagedServer) GetBackendType() BackendType
GetBackendType returns the backend type
func (*LibP2PManagedServer) GetHost ¶ added in v1.9.0
func (lms *LibP2PManagedServer) GetHost() host.Host
GetHost returns the libp2p host (for external integration)
func (*LibP2PManagedServer) GetPort ¶ added in v1.9.0
func (lms *LibP2PManagedServer) GetPort() int
GetPort returns the server port
func (*LibP2PManagedServer) GetPubSub ¶ added in v1.9.0
func (lms *LibP2PManagedServer) GetPubSub() *pubsub.PubSub
GetPubSub returns the pubsub instance (for external integration)
func (*LibP2PManagedServer) HealthCheck ¶ added in v1.9.0
func (lms *LibP2PManagedServer) HealthCheck() error
HealthCheck performs a health check on the server
func (*LibP2PManagedServer) IsRunning ¶ added in v1.9.0
func (lms *LibP2PManagedServer) IsRunning() bool
IsRunning returns whether the server is running
func (*LibP2PManagedServer) PublishProcessUpdate ¶ added in v1.9.0
func (lms *LibP2PManagedServer) PublishProcessUpdate(process *core.Process) error
PublishProcessUpdate publishes a process update via the realtime handler
func (*LibP2PManagedServer) Start ¶ added in v1.9.0
func (lms *LibP2PManagedServer) Start() error
Start starts the libp2p server
type ManagedServer ¶ added in v1.9.0
type ManagedServer interface {
// Lifecycle management
Start() error
Stop(ctx context.Context) error
// Server info
GetBackendType() BackendType
GetPort() int
GetAddr() string
IsRunning() bool
// Health checks
HealthCheck() error
}
ManagedServer represents a server instance managed by ServerManager
type Server ¶ added in v1.9.0
type Server struct {
// contains filtered or unexported fields
}
func CreateServer ¶ added in v1.9.0
func CreateServer(db database.Database, port int, tls bool, tlsPrivateKeyPath string, tlsCertPath string, thisNode cluster.Node, clusterConfig cluster.Config, etcdDataPath string, generatorPeriod int, cronPeriod int, exclusiveAssign bool, allowExecutorReregister bool, retention bool, retentionPolicy int64, retentionPeriod int) *Server
func CreateServerWithBackend ¶ added in v1.9.0
func CreateServerWithBackend(db database.Database, port int, tls bool, tlsPrivateKeyPath string, tlsCertPath string, thisNode cluster.Node, clusterConfig cluster.Config, etcdDataPath string, generatorPeriod int, cronPeriod int, exclusiveAssign bool, allowExecutorReregister bool, retention bool, retentionPolicy int64, retentionPeriod int, backendType BackendType, libp2pConfig *LibP2PConfig, grpcConfig *GRPCConfig, coapConfig *CoAPConfig) *Server
func CreateServerWithBackendType ¶ added in v1.9.0
func CreateServerWithBackendType(db database.Database, port int, tls bool, tlsPrivateKeyPath string, tlsCertPath string, thisNode cluster.Node, clusterConfig cluster.Config, etcdDataPath string, generatorPeriod int, cronPeriod int, exclusiveAssign bool, allowExecutorReregister bool, retention bool, retentionPolicy int64, retentionPeriod int, backendType BackendType, libp2pConfig *LibP2PConfig, grpcConfig *GRPCConfig, coapConfig *CoAPConfig) *Server
CreateServerWithBackendType creates a server with the specified backend type This is the main server creation function that should be called from CLI libp2pConfig is optional and only used when backendType is LibP2PBackendType grpcConfig is optional and only used when backendType is GRPCBackendType coapConfig is optional and only used when backendType is CoAPBackendType
func PrepareTests ¶ added in v1.5.0
func (*Server) FileDB ¶ added in v1.9.0
func (server *Server) FileDB() database.FileDatabase
func (*Server) GenerateRPCErrorMsg ¶ added in v1.9.0
GenerateRPCErrorMsg exposes the RPC error message generation
func (*Server) HandleHTTPError ¶ added in v1.9.0
func (*Server) HandleRPC ¶ added in v1.9.0
HandleRPC implements the RPCHandler interface for gRPC backend
func (*Server) ParseSignature ¶ added in v1.9.0
ParseSignature exposes the signature parsing functionality
func (*Server) SendEmptyHTTPReply ¶ added in v1.9.0
func (*Server) SendHTTPReply ¶ added in v1.9.0
func (*Server) ServeForever ¶ added in v1.9.0
func (*Server) SetAllowExecutorReregister ¶ added in v1.9.0
func (*Server) WSController ¶ added in v1.9.0
func (server *Server) WSController() WSController
WSController returns the WebSocket controller for realtime subscriptions
type ServerAdapter ¶ added in v1.9.0
type ServerAdapter struct {
// contains filtered or unexported fields
}
ServerAdapter implements interfaces needed by handler packages
func NewServerAdapter ¶ added in v1.9.0
func NewServerAdapter(server *Server) *ServerAdapter
func (*ServerAdapter) AllowExecutorReregister ¶ added in v1.9.0
func (s *ServerAdapter) AllowExecutorReregister() bool
func (*ServerAdapter) AttributeController ¶ added in v1.9.0
func (s *ServerAdapter) AttributeController() attributehandlers.Controller
func (*ServerAdapter) BlueprintDB ¶ added in v1.9.3
func (s *ServerAdapter) BlueprintDB() database.BlueprintDatabase
func (*ServerAdapter) ColonyDB ¶ added in v1.9.0
func (s *ServerAdapter) ColonyDB() database.ColonyDatabase
func (*ServerAdapter) Controller ¶ added in v1.9.0
func (s *ServerAdapter) Controller() colony.Controller
func (*ServerAdapter) CronController ¶ added in v1.9.0
func (s *ServerAdapter) CronController() interface { AddCron(cron *core.Cron) (*core.Cron, error) GetCron(cronID string) (*core.Cron, error) GetCrons(colonyName string, count int) ([]*core.Cron, error) RunCron(cronID string) (*core.Cron, error) RemoveCron(cronID string) error GetCronPeriod() int }
CronController returns the server's controller interface for cron operations
func (*ServerAdapter) ExclusiveAssign ¶ added in v1.9.0
func (s *ServerAdapter) ExclusiveAssign() bool
func (*ServerAdapter) ExecutorController ¶ added in v1.9.0
func (s *ServerAdapter) ExecutorController() executor.Controller
func (*ServerAdapter) ExecutorDB ¶ added in v1.9.0
func (s *ServerAdapter) ExecutorDB() database.ExecutorDatabase
Executor handler interface methods
func (*ServerAdapter) FileDB ¶ added in v1.9.0
func (s *ServerAdapter) FileDB() database.FileDatabase
func (*ServerAdapter) FunctionController ¶ added in v1.9.0
func (s *ServerAdapter) FunctionController() functionhandlers.Controller
func (*ServerAdapter) FunctionDB ¶ added in v1.9.0
func (s *ServerAdapter) FunctionDB() database.FunctionDatabase
func (*ServerAdapter) GenerateRPCErrorMsg ¶ added in v1.9.0
func (s *ServerAdapter) GenerateRPCErrorMsg(err error, errorCode int) (*rpc.RPCReplyMsg, error)
func (*ServerAdapter) GeneratorController ¶ added in v1.9.0
func (s *ServerAdapter) GeneratorController() generatorhandlers.Controller
func (*ServerAdapter) GeneratorDB ¶ added in v1.9.0
func (s *ServerAdapter) GeneratorDB() database.GeneratorDatabase
func (*ServerAdapter) GetColonyDB ¶ added in v1.9.0
func (s *ServerAdapter) GetColonyDB() database.ColonyDatabase
func (*ServerAdapter) GetController ¶ added in v1.9.0
func (s *ServerAdapter) GetController() interface { AddColony(colony *core.Colony) (*core.Colony, error) RemoveColony(colonyName string) error GetColonies() ([]*core.Colony, error) GetColony(colonyName string) (*core.Colony, error) GetColonyStatistics(colonyName string) (*core.Statistics, error) }
Controller access for handlers
func (*ServerAdapter) GetSecurityDB ¶ added in v1.9.0
func (s *ServerAdapter) GetSecurityDB() database.SecurityDatabase
func (*ServerAdapter) GetServerID ¶ added in v1.9.0
func (s *ServerAdapter) GetServerID() (string, error)
func (*ServerAdapter) GetUserDB ¶ added in v1.9.0
func (s *ServerAdapter) GetUserDB() database.UserDatabase
User handler interface methods
func (*ServerAdapter) GetValidator ¶ added in v1.9.0
func (s *ServerAdapter) GetValidator() security.Validator
func (*ServerAdapter) HandleHTTPError ¶ added in v1.9.0
func (*ServerAdapter) LogDB ¶ added in v1.9.0
func (s *ServerAdapter) LogDB() database.LogDatabase
func (*ServerAdapter) LogProcessController ¶ added in v1.9.0
func (s *ServerAdapter) LogProcessController() loghandlers.Controller
func (*ServerAdapter) ParseSignature ¶ added in v1.9.0
func (s *ServerAdapter) ParseSignature(payload string, signature string) (string, error)
func (*ServerAdapter) ProcessController ¶ added in v1.9.0
func (s *ServerAdapter) ProcessController() process.Controller
func (*ServerAdapter) ProcessDB ¶ added in v1.9.0
func (s *ServerAdapter) ProcessDB() database.ProcessDatabase
Process handler interface methods
func (*ServerAdapter) ProcessgraphController ¶ added in v1.9.0
func (s *ServerAdapter) ProcessgraphController() processgraph.Controller
func (*ServerAdapter) ProcessgraphServer ¶ added in v1.9.0
func (s *ServerAdapter) ProcessgraphServer() processgraph.Server
func (*ServerAdapter) ProcessgraphValidator ¶ added in v1.9.0
func (s *ServerAdapter) ProcessgraphValidator() processgraph.Validator
func (*ServerAdapter) RealtimeHandler ¶ added in v1.9.0
func (s *ServerAdapter) RealtimeHandler() realtimehandlers.RealtimeHandler
func (*ServerAdapter) SecurityDB ¶ added in v1.9.0
func (s *ServerAdapter) SecurityDB() database.SecurityDatabase
func (*ServerAdapter) SendEmptyHTTPReply ¶ added in v1.9.0
func (s *ServerAdapter) SendEmptyHTTPReply(c backends.Context, payloadType string)
func (*ServerAdapter) SendHTTPReply ¶ added in v1.9.0
func (s *ServerAdapter) SendHTTPReply(c backends.Context, payloadType string, jsonString string)
func (*ServerAdapter) ServerController ¶ added in v1.9.0
func (s *ServerAdapter) ServerController() serverhandlers.Controller
func (*ServerAdapter) ServerServer ¶ added in v1.9.0
func (s *ServerAdapter) ServerServer() serverhandlers.Server
func (*ServerAdapter) ServerValidator ¶ added in v1.9.0
func (s *ServerAdapter) ServerValidator() serverhandlers.Validator
func (*ServerAdapter) SetAllowExecutorReregister ¶ added in v1.9.0
func (s *ServerAdapter) SetAllowExecutorReregister(allow bool)
func (*ServerAdapter) SnapshotDB ¶ added in v1.9.0
func (s *ServerAdapter) SnapshotDB() database.SnapshotDatabase
func (*ServerAdapter) TLS ¶ added in v1.9.0
func (s *ServerAdapter) TLS() bool
func (*ServerAdapter) UserDB ¶ added in v1.9.0
func (s *ServerAdapter) UserDB() database.UserDatabase
func (*ServerAdapter) Validator ¶ added in v1.9.0
func (s *ServerAdapter) Validator() security.Validator
func (*ServerAdapter) WSController ¶ added in v1.9.0
func (s *ServerAdapter) WSController() gin.WSController
func (*ServerAdapter) WSControllerCompat ¶ added in v1.9.0
func (s *ServerAdapter) WSControllerCompat() WSController
type ServerConfig ¶ added in v1.9.0
type ServerConfig struct {
BackendType BackendType
Port int
LibP2PPort int // Port for LibP2P transport (required for LibP2P backend)
TLS bool
TLSPrivateKeyPath string
TLSCertPath string
GRPCConfig *GRPCConfig // gRPC-specific configuration (required for gRPC backend)
ExclusiveAssign bool
AllowExecutorReregister bool
Retention bool
RetentionPolicy int64
RetentionPeriod int
Enabled bool
}
ServerConfig holds configuration for a managed server
type ServerInfo ¶
type ServerInfo struct {
ServerID string
ServerPrvKey string
Server *Server
Node cluster.Node
Done chan struct{}
}
func StartCluster ¶
type ServerManager ¶ added in v1.9.0
type ServerManager struct {
// contains filtered or unexported fields
}
ServerManager manages multiple server backends
func NewServerManager ¶ added in v1.9.0
func NewServerManager( db database.Database, thisNode cluster.Node, clusterConfig cluster.Config, etcdDataPath string, generatorPeriod int, cronPeriod int, ) *ServerManager
NewServerManager creates a new ServerManager
func (*ServerManager) AddServerConfig ¶ added in v1.9.0
func (sm *ServerManager) AddServerConfig(config *ServerConfig) error
AddServerConfig adds configuration for a server backend
func (*ServerManager) GetRunningServers ¶ added in v1.9.0
func (sm *ServerManager) GetRunningServers() map[BackendType]ManagedServer
GetRunningServers returns all currently running servers
func (*ServerManager) GetServer ¶ added in v1.9.0
func (sm *ServerManager) GetServer(backendType BackendType) (ManagedServer, bool)
GetServer returns a managed server by backend type
func (*ServerManager) GetStatus ¶ added in v1.9.0
func (sm *ServerManager) GetStatus() map[BackendType]ServerStatus
GetStatus returns status information about all servers
func (*ServerManager) IsRunning ¶ added in v1.9.0
func (sm *ServerManager) IsRunning() bool
IsRunning returns whether the server manager is running
func (*ServerManager) RegisterBackendFactory ¶ added in v1.9.0
func (sm *ServerManager) RegisterBackendFactory(factory BackendFactory) error
RegisterBackendFactory registers a factory for creating backend servers
func (*ServerManager) StartAll ¶ added in v1.9.0
func (sm *ServerManager) StartAll() error
StartAll starts all configured and enabled servers
type ServerStatus ¶ added in v1.9.0
type ServerStatus struct {
BackendType BackendType
Running bool
Port int
Addr string
HealthError error
}
ServerStatus represents the status of a managed server
type SharedResources ¶ added in v1.9.0
type SharedResources struct {
}
SharedResources contains blueprints shared between all server backends
type WSController ¶ added in v1.9.0
type WSController interface {
SubscribeProcesses(executorID string, subscription *backends.RealtimeSubscription) error
SubscribeProcess(executorID string, subscription *backends.RealtimeSubscription) error
}
WSController interface for WebSocket subscription management