package v2

import (
	cnsms "git.loafle.net/commons/service_matcher-go/snmp/v2"
	ocmsc "git.loafle.net/overflow/commons-go/model/sensorconfig"
	"git.loafle.net/overflow/container_network/crawler/health"
	"git.loafle.net/overflow/crawler-go"
)

type SNMPHealthCrawler struct {
	health.SocketHeahthCrawler
}

func (c *SNMPHealthCrawler) Name() string {
	return "SNMPV2C_HEALTH"
}

func (c *SNMPHealthCrawler) String() string {
	return "SNMP V2C Health Crawler"
}

func (c *SNMPHealthCrawler) Auth(auth map[string]interface{}) error {
	return nil
}

func (c *SNMPHealthCrawler) Get(config *ocmsc.SensorConfig) (map[string]string, error) {
	rss, err := c.CheckHeahth(config)
	if err != nil {
		return nil, err
	}
	return rss, nil
}

func NewCrawler() crawler.Crawler {
	c := &SNMPHealthCrawler{}
	c.SetMatcher(cnsms.NewMatcher())
	return c
}