overflow_probes/auth/service/NoAuthProbeService.go
crusader 94a4f3136c ing
2018-03-21 19:22:13 +09:00

81 lines
2.4 KiB
Go

package rpc
import (
"fmt"
"time"
"git.loafle.net/commons_go/logging"
cc "git.loafle.net/commons_go/config"
ooccn "git.loafle.net/overflow/overflow_commons_go/config/noauthprobe"
oocmn "git.loafle.net/overflow/overflow_commons_go/modules/noauthprobe"
oopai "git.loafle.net/overflow/overflow_probes/auth/info"
"git.loafle.net/overflow/overflow_probes/config"
)
type NoAuthProbeService struct {
DoneChan chan error
ConfigPath string
Config ooccn.NoAuthProbeConfig
}
func (s *NoAuthProbeService) Accept(probeKey string) error {
config.Config.Probe.Key = &probeKey
if err := cc.Save(*config.Config, *config.ConfigFilePath, true); nil != err {
s.DoneChan <- fmt.Errorf("Auth: Saving of config file[%s] failed error[%v]", *config.ConfigFilePath, err)
return nil
}
logging.Logger().Infof("Auth: Probe[%s] has been accepted from central", probeKey)
s.DoneChan <- nil
return nil
}
func (s *NoAuthProbeService) Deny() error {
n := time.Now()
s.Config.DenyDate = &n
if err := cc.Save(s.Config, s.ConfigPath, true); nil != err {
s.DoneChan <- fmt.Errorf("Auth: Saving of NoAuth config file[%s] failed error[%v]", s.ConfigPath, err)
return nil
}
logging.Logger().Infof("Auth: Probe has been denyed from central")
s.DoneChan <- nil
return nil
}
func (s *NoAuthProbeService) GetRequestHeader() map[string][]string {
header := make(map[string][]string)
switch s.Config.State() {
case ooccn.NoAuthProbeStateTypeNotRegisterd:
header[oocmn.HTTPRequestHeaderKey_NoAuthProbe_Method] = []string{oocmn.HTTPRequestHeaderValue_NoAuthProbe_Method_Regist}
header[oocmn.HTTPRequestHeaderKey_NoAuthProbe_Info] = []string{s.GetRegisterRequestHeader()}
case ooccn.NoAuthProbeStateTypeRegisterd:
header[oocmn.HTTPRequestHeaderKey_NoAuthProbe_Method] = []string{oocmn.HTTPRequestHeaderValue_NoAuthProbe_Method_Connect}
header[oocmn.HTTPRequestHeaderKey_NoAuthProbe_TempProbeKey] = []string{*s.Config.TempKey}
}
return header
}
func (s *NoAuthProbeService) GetRegisterRequestHeader() string {
i, err := oopai.GetRegistHeader()
if nil != err {
logging.Logger().Errorf("Auth: Gathering system information has been failed %v", err)
}
return i
}
func (s *NoAuthProbeService) SetTempProbeKey(tempProbeKey string) {
s.Config.TempKey = &tempProbeKey
if err := cc.Save(s.Config, s.ConfigPath, true); nil != err {
s.DoneChan <- fmt.Errorf("Auth: Saving of NoAuth config file[%s] failed error[%v]", s.ConfigPath, err)
return
}
}