github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/providers/agent/mcorpc/golang/provider.go (about) 1 // Copyright (c) 2020-2021, R.I. Pienaar and the Choria Project contributors 2 // 3 // SPDX-License-Identifier: Apache-2.0 4 5 package agents 6 7 import ( 8 "context" 9 "fmt" 10 11 "github.com/choria-io/go-choria/config" 12 "github.com/choria-io/go-choria/inter" 13 "github.com/choria-io/go-choria/providers/agent/mcorpc/golang/choriautil" 14 "github.com/choria-io/go-choria/providers/agent/mcorpc/golang/discovery" 15 "github.com/choria-io/go-choria/providers/agent/mcorpc/golang/rpcutil" 16 "github.com/choria-io/go-choria/server" 17 "github.com/choria-io/go-choria/server/agents" 18 "github.com/sirupsen/logrus" 19 ) 20 21 // Provider is a Agent Provider capable of executing compiled mcollective compatible agents written in Go 22 type Provider struct { 23 } 24 25 // Initialize configures the agent provider 26 func (p *Provider) Initialize(_ *config.Config, _ *logrus.Entry) {} 27 28 // Version reports the version for this provider 29 func (p *Provider) Version() string { 30 return fmt.Sprintf("%s version %s", p.PluginName(), p.PluginVersion()) 31 } 32 33 // RegisterAgents registers known ruby agents using a shimm agent 34 func (p *Provider) RegisterAgents(ctx context.Context, mgr server.AgentManager, connector inter.AgentConnector, _ *logrus.Entry) error { 35 var agent agents.Agent 36 37 agent, err := discovery.New(mgr) 38 if err != nil { 39 return err 40 } 41 42 err = mgr.RegisterAgent(ctx, "discovery", agent, connector) 43 if err != nil { 44 return err 45 } 46 47 agent, err = rpcutil.New(mgr) 48 if err != nil { 49 return err 50 } 51 52 err = mgr.RegisterAgent(ctx, "rpcutil", agent, connector) 53 if err != nil { 54 return err 55 } 56 57 agent, err = choriautil.New(mgr) 58 if err != nil { 59 return err 60 } 61 62 err = mgr.RegisterAgent(ctx, "choria_util", agent, connector) 63 if err != nil { 64 return err 65 } 66 67 return nil 68 }