in internal/daemon/oracle/oracle.go [195:225]
func (s *Service) checkServiceCommunication(ctx context.Context) {
// Effectively give ctx.Done() priority over the channel.
if ctx.Err() != nil {
return
}
select {
case <-ctx.Done():
return
case msg := <-s.CommonCh:
log.CtxLogger(ctx).Debugw("Oracle workload agent service received a message on the common channel", "message", msg)
switch msg.Origin {
case servicecommunication.Discovery:
log.CtxLogger(ctx).Debugw("Oracle workload agent service received a discovery message")
s.processesMutex.Lock()
s.processes = msg.DiscoveryResult.Processes
s.processesMutex.Unlock()
for _, p := range msg.DiscoveryResult.Processes {
name, err := p.Name()
if err == nil && servicecommunication.HasAnyPrefix(name, oraProcessPrefixes) {
s.isProcessPresent = true
break
}
}
case servicecommunication.DWActivation:
log.CtxLogger(ctx).Debugw("Oracle workload agent service received a DW activation message")
default:
log.CtxLogger(ctx).Debugw("Oracle workload agent service received a message with an unexpected origin", "origin", msg.Origin)
}
}
}