github.com/anuvu/nomad@v0.8.7-atom1/client/fingerprint/signal.go (about)

     1  package fingerprint
     2  
     3  import (
     4  	"log"
     5  	"strings"
     6  
     7  	"github.com/hashicorp/consul-template/signals"
     8  	cstructs "github.com/hashicorp/nomad/client/structs"
     9  )
    10  
    11  // SignalFingerprint is used to fingerprint the available signals
    12  type SignalFingerprint struct {
    13  	StaticFingerprinter
    14  	logger *log.Logger
    15  }
    16  
    17  // NewSignalFingerprint is used to create a Signal fingerprint
    18  func NewSignalFingerprint(logger *log.Logger) Fingerprint {
    19  	f := &SignalFingerprint{logger: logger}
    20  	return f
    21  }
    22  
    23  func (f *SignalFingerprint) Fingerprint(req *cstructs.FingerprintRequest, resp *cstructs.FingerprintResponse) error {
    24  	// Build the list of available signals
    25  	sigs := make([]string, 0, len(signals.SignalLookup))
    26  	for signal := range signals.SignalLookup {
    27  		sigs = append(sigs, signal)
    28  	}
    29  
    30  	resp.AddAttribute("os.signals", strings.Join(sigs, ","))
    31  	resp.Detected = true
    32  	return nil
    33  }