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
|