// getLocalNodeID returns the node ID of the local Nomad Client and an error if // it couldn't be determined or the Agent is not running in Client mode. func getLocalNodeID(client *api.Client) (string, error) { info, err := client.Agent().Self() if err != nil { return "", fmt.Errorf("Error querying agent info: %s", err) } var stats map[string]interface{} stats, _ = info["stats"] clientStats, ok := stats["client"].(map[string]interface{}) if !ok { return "", fmt.Errorf("Nomad not running in client mode") } nodeID, ok := clientStats["node_id"].(string) if !ok { return "", fmt.Errorf("Failed to determine node ID") } return nodeID, nil }