Adding a Close() function to the Output interface and to the agent

This commit is contained in:
Cameron Sparr 2015-08-12 11:04:25 -06:00
parent 08042089f9
commit 32124a7913
3 changed files with 16 additions and 1 deletions

View File

@ -67,7 +67,7 @@ func NewAgent(config *Config) (*Agent, error) {
return agent, nil
}
// Connect connects to the agent's config URL
// Connect connects to all configured outputs
func (a *Agent) Connect() error {
for _, o := range a.outputs {
err := o.output.Connect()
@ -78,6 +78,15 @@ func (a *Agent) Connect() error {
return nil
}
// Close closes the connection to all configured outputs
func (a *Agent) Close() error {
var err error
for _, o := range a.outputs {
err = o.output.Close()
}
return err
}
// LoadOutputs loads the agent's outputs
func (a *Agent) LoadOutputs() ([]string, error) {
var names []string

View File

@ -52,6 +52,11 @@ func (i *InfluxDB) Connect() error {
return nil
}
func (i *InfluxDB) Close() error {
// InfluxDB client does not provide a Close() function
return nil
}
func (i *InfluxDB) Write(bp client.BatchPoints) error {
bp.Database = i.Database
if _, err := i.conn.Write(bp); err != nil {

View File

@ -6,6 +6,7 @@ import (
type Output interface {
Connect() error
Close() error
Write(client.BatchPoints) error
}