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  }