Emmanuel BENOîT
78af496fe9
This PR refactors most of the internals to make them easier to test (and also because the names didn't make sense). It adds unit tests for all internal components. Reviewed-on: #2 Co-authored-by: Emmanuel BENOÎT <tseeker@nocternity.net> Co-committed-by: Emmanuel BENOÎT <tseeker@nocternity.net>
20 lines
685 B
Go
20 lines
685 B
Go
package plugin // import nocternity.net/gomonop/pkg/plugin
|
|
|
|
import "nocternity.net/gomonop/pkg/results"
|
|
|
|
// Plugin represents the interface to a monitoring plugin.
|
|
type Plugin interface {
|
|
// Results accesses the results of the monitoring plugin.
|
|
Results() *results.Results
|
|
|
|
// CheckArguments ensures that the arguments that were passed to the plugin
|
|
// actually make sense. Errors should be stored in the plugin's results.
|
|
CheckArguments() bool
|
|
|
|
// RunCheck actually runs whatever checks are implemented by the plugin and
|
|
// updates the results accordingly.
|
|
RunCheck()
|
|
}
|
|
|
|
// Builder is a function that can be called in order to instantiate a plugin.
|
|
type Builder func() Plugin
|