github.com/kubeshop/testkube@v1.17.23/pkg/telemetry/generators.go (about)

     1  package telemetry
     2  
     3  import (
     4  	"crypto/md5"
     5  	"encoding/hex"
     6  	"os"
     7  
     8  	"github.com/denisbrodbeck/machineid"
     9  
    10  	"github.com/kubeshop/testkube/pkg/log"
    11  )
    12  
    13  // GetMachineID returns unique user machine ID
    14  func GetMachineID() string {
    15  	id, err := machineid.ProtectedID("testkube")
    16  	// fallback to hostname based machine id in case of error
    17  	if err != nil {
    18  		log.DefaultLogger.Debugw("error while generating machines protected id", "error", err.Error())
    19  		name, err := os.Hostname()
    20  		if err != nil {
    21  			log.DefaultLogger.Debugw("error while getting hostname for machine id", "error", err.Error())
    22  			return "default-machine-id"
    23  		}
    24  		sum := md5.Sum([]byte(name))
    25  		return hex.EncodeToString(sum[:])
    26  	}
    27  	return id
    28  }