func joinMonitorsAndHosts(client *mkr.Client, alerts []*mkr.Alert) []*alertSet { hostsJSON, err := client.FindHosts(&mkr.FindHostsParam{ Statuses: []string{"working", "standby", "poweroff", "maintenance"}, }) logger.DieIf(err) hosts := map[string]*mkr.Host{} for _, host := range hostsJSON { hosts[host.ID] = host } monitorsJSON, err := client.FindMonitors() logger.DieIf(err) monitors := map[string]*mkr.Monitor{} for _, monitor := range monitorsJSON { monitors[monitor.ID] = monitor } alertSets := []*alertSet{} for _, alert := range alerts { alertSets = append( alertSets, &alertSet{Alert: alert, Host: hosts[alert.HostID], Monitor: monitors[alert.MonitorID]}, ) } return alertSets }