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 }