mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	The NewRelic module relies on yfronto/newrelic, which no longer exists. yfronto deleted that directory quite awhile ago, and since then it has been vendored. But vendoring a missing repository creates problems when trying to update the vendored code. This PR brings the yfronto/newrelic code into the mainline. Signed-off-by: Chris Cummer <chriscummer@me.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package newrelic
 | |
| 
 | |
| import (
 | |
| 	"strconv"
 | |
| )
 | |
| 
 | |
| // LegacyAlertPolicyLinks describes object links for Alert Policies.
 | |
| type LegacyAlertPolicyLinks struct {
 | |
| 	NotificationChannels []int `json:"notification_channels,omitempty"`
 | |
| 	Servers              []int `json:"servers,omitempty"`
 | |
| }
 | |
| 
 | |
| // LegacyAlertPolicyCondition describes conditions that trigger an LegacyAlertPolicy.
 | |
| type LegacyAlertPolicyCondition struct {
 | |
| 	ID             int     `json:"id,omitempty"`
 | |
| 	Enabled        bool    `json:"enabled,omitempty"`
 | |
| 	Severity       string  `json:"severity,omitempty"`
 | |
| 	Threshold      float64 `json:"threshold,omitempty"`
 | |
| 	TriggerMinutes int     `json:"trigger_minutes,omitempty"`
 | |
| 	Type           string  `json:"type,omitempty"`
 | |
| }
 | |
| 
 | |
| // LegacyAlertPolicy describes a New Relic alert policy.
 | |
| type LegacyAlertPolicy struct {
 | |
| 	Conditions         []LegacyAlertPolicyCondition `json:"conditions,omitempty"`
 | |
| 	Enabled            bool                         `json:"enabled,omitempty"`
 | |
| 	ID                 int                          `json:"id,omitempty"`
 | |
| 	Links              LegacyAlertPolicyLinks       `json:"links,omitempty"`
 | |
| 	IncidentPreference string                       `json:"incident_preference,omitempty"`
 | |
| 	Name               string                       `json:"name,omitempty"`
 | |
| }
 | |
| 
 | |
| // LegacyAlertPolicyFilter provides filters for LegacyAlertPolicyOptions.
 | |
| type LegacyAlertPolicyFilter struct {
 | |
| 	Name string
 | |
| }
 | |
| 
 | |
| // LegacyAlertPolicyOptions is an optional means of filtering when calling
 | |
| // GetLegacyAlertPolicies.
 | |
| type LegacyAlertPolicyOptions struct {
 | |
| 	Filter LegacyAlertPolicyFilter
 | |
| 	Page   int
 | |
| }
 | |
| 
 | |
| func (o *LegacyAlertPolicyOptions) String() string {
 | |
| 	if o == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return encodeGetParams(map[string]interface{}{
 | |
| 		"filter[name]": o.Filter.Name,
 | |
| 		"page":         o.Page,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // GetLegacyAlertPolicy will return the LegacyAlertPolicy with  particular ID.
 | |
| func (c *Client) GetLegacyAlertPolicy(id int) (*LegacyAlertPolicy, error) {
 | |
| 	resp := &struct {
 | |
| 		LegacyAlertPolicy *LegacyAlertPolicy `json:"alert_policy,omitempty"`
 | |
| 	}{}
 | |
| 	err := c.doGet("alert_policies/"+strconv.Itoa(id)+".json", nil, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.LegacyAlertPolicy, nil
 | |
| }
 | |
| 
 | |
| // GetLegacyAlertPolicies will return a slice of LegacyAlertPolicy items,
 | |
| // optionally filtering by LegacyAlertPolicyOptions.
 | |
| func (c *Client) GetLegacyAlertPolicies(options *LegacyAlertPolicyOptions) ([]LegacyAlertPolicy, error) {
 | |
| 	resp := &struct {
 | |
| 		LegacyAlertPolicies []LegacyAlertPolicy `json:"alert_policies,omitempty"`
 | |
| 	}{}
 | |
| 	err := c.doGet("alert_policies.json", options, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.LegacyAlertPolicies, nil
 | |
| }
 |