public void RaiseNew(string subject, string message) { var incidents = _apiClient.GetOpenIncidents(); var incident = incidents.FirstOrDefault(i => i.trigger_summary_data != null && i.trigger_summary_data.IndexOf(subject, StringComparison.OrdinalIgnoreCase) >= 0); if (incident == null) { //raise new var newIncident = new IncidentEvent { client = "ParkmobilePagerdutyCli", description = subject, incident_key = Guid.NewGuid().ToString(), service_key = _config.EventAuthToken, details = message }; var response = _apiClient.Trigger(newIncident); if (response.IsOk()) { Console.WriteLine("Issue created, key: {0}", response.incident_key); } else { Console.WriteLine("Failed to create issue: {0} {1}", response.status, response.message); } } else { Console.WriteLine("Issue exists, key: {0}\nSubject:{1}", incident.incident_key, incident.trigger_summary_data); } }
public void SerializeEvent() { var incident = new IncidentEvent { client = "UnitTest", description = "Event triggered by unittest", incident_key = "bdf7c75f-90c8-4870-a1c5-4c9855e58767", service_key = "Test", }; var json = JsonSerializer.SerializeToString(incident); Trace.WriteLine(json); Assert.AreEqual("{\"service_key\":\"Test\",\"event_type\":\"trigger\"," + "\"description\":\"Event triggered by unittest\"," + "\"incident_key\":\"bdf7c75f-90c8-4870-a1c5-4c9855e58767\",\"client\":\"UnitTest\"}", json); }
public void CreateAcknowledgeResolve() { var config = GetPagerDutyConfig(); /*var config = new PagerDutyConfig { EventAuthToken = "YOUR_EVENT_API_KEY_HERE", EventApiUrl = "https://events.pagerduty.com/generic/2010-04-15/create_event.json" }; */ var incident = new IncidentEvent { client = "UnitTest", description = "Event triggered by unittest", incident_key = Guid.NewGuid().ToString(), service_key = config.EventAuthToken, }; var apiClient = new IntegrationApi(config); var response = apiClient.Trigger(incident); Assert.IsTrue(response.IsOk(), "Incident should be created"); var acknowledge = new AcknowledgeEvent(incident, "Working on it!"); var ackResponse = apiClient.Acknowledge(acknowledge); Assert.IsTrue(ackResponse.IsOk(), "Incident should be acknowledged"); var resolveEvent = new ResolveEvent(incident, "Fixed!"); var resResponse = apiClient.Resolve(resolveEvent); Assert.IsTrue(resResponse.IsOk(), "Incident should be resolved"); }
public void RaiseIfNotKnown() { var config = GetPagerDutyConfig(); var subject = "[IPHost] 'Parkmobile NL Web02 on web02-nl.parkmobile.com' - 'down'"; var api = new IntegrationApi(config); var incidents = api.GetOpenIncidents(); var incident = incidents.FirstOrDefault(i => i.trigger_summary_data != null && i.trigger_summary_data.IndexOf("IPHOST", StringComparison.OrdinalIgnoreCase) >= 0 ); if (incident == null) { //raise new var newIncident = new IncidentEvent { client = "IPHost", description = subject, incident_key = Guid.NewGuid().ToString(), service_key = config.EventAuthToken, }; var response = api.Trigger(newIncident); Assert.IsTrue(response.IsOk(), "Incident should be created"); } else { //already known, keep on going } }