This commit is contained in:
crusader
2018-09-04 19:09:15 +09:00
parent fdb2635edc
commit a1ecf315c6
15 changed files with 531 additions and 141 deletions

View File

@@ -4,6 +4,9 @@ import (
"log"
"reflect"
"git.loafle.net/overflow_scanner/probe/internal/pubsub"
"git.loafle.net/overflow_scanner/probe/internal/rpc"
oa "git.loafle.net/overflow/annotation-go"
od "git.loafle.net/overflow/di-go"
omd "git.loafle.net/overflow/model/discovery"
@@ -21,6 +24,7 @@ type DiscoveryService struct {
oa.TypeAnnotation `annotation:"@Injectable('name': 'DiscoveryService') @Service()"`
Discoverer discovery.Discoverer `annotation:"@Inject('name': 'Discoverer')"`
PubSub *pubsub.PubSub `annotation:"@Inject('name': 'PubSub')"`
_InitService oa.MethodAnnotation `annotation:"@PostConstruct()"`
_DestroyService oa.MethodAnnotation `annotation:"@PreDestroy()"`
@@ -35,26 +39,99 @@ func (s *DiscoveryService) InitService() {
return
}
switch msg.Type() {
request, messageType, data, err := msg()
switch messageType {
case types.DiscoveryMessageTypeStart:
log.Print("Start ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.DiscoveryStart",
[]interface{}{data},
),
"/scanner",
)
log.Print("Start ", data)
case types.DiscoveryMessageTypeStop:
log.Print("Stop ", msg.Data())
return
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.DiscoveryStop",
[]interface{}{data},
),
"/scanner",
)
log.Print("Stop ", data)
case types.DiscoveryMessageTypeQueueing:
log.Print("Queueing ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.Queueing",
[]interface{}{data},
),
"/scanner",
)
log.Print("Queueing ", data)
case types.DiscoveryMessageTypeFailedQueueing:
log.Print("FailedQueueing ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.FailedQueueing",
[]interface{}{data},
),
"/scanner",
)
log.Print("FailedQueueing ", data)
case types.DiscoveryMessageTypeTimeout:
log.Print("Timeout ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.Timeout",
[]interface{}{data},
),
"/scanner",
)
log.Print("Timeout ", data)
case types.DiscoveryMessageTypeError:
log.Print("Error ", msg.Error())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.Error",
[]interface{}{err},
),
"/scanner",
)
log.Print("Error ", err)
case types.DiscoveryMessageTypeHost:
log.Print("Host ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.DiscoveredHost",
[]interface{}{data},
),
"/scanner",
)
log.Print("Host ", data)
case types.DiscoveryMessageTypePort:
log.Print("Port ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.DiscoveredPort",
[]interface{}{data},
),
"/scanner",
)
log.Print("Port ", data)
case types.DiscoveryMessageTypeService:
log.Print("Service ", msg.Data())
s.PubSub.Pub(
rpc.MakeRPCMessage(
[]string{request.RequesterID()},
"DiscoveryService.DiscoveredService",
[]interface{}{data},
),
"/scanner",
)
log.Print("Service ", data)
default:
}