package rmi

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

type RMIHealthCrawler struct {
	health.SocketHealthCrawler
}

func (c *RMIHealthCrawler) Key() string {
	return "RMI_HEALTH"
}

func (c *RMIHealthCrawler) String() string {
	return "RMI Health Crawler"
}

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

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

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