Esempio n. 1
0
import requests
import os
import json
import library.migrationlogger as migrationlogger
import library.utils as utils

logger = migrationlogger.get_logger(os.path.basename(__file__))

ALERT_POLICIES_URL = 'https://api.newrelic.com/v2/alerts_policies.json'
DEL_ALERTS_URL = 'https://api.newrelic.com/v2/alerts_policies/'

POLICIES = "policies"

GET_APP_CONDITIONS_URL = 'https://api.newrelic.com/v2/alerts_conditions.json'
APP_CONDITIONS_URL = 'https://api.newrelic.com/v2/alerts_conditions/'
CREATE_APP_CONDITION_URL = 'https://api.newrelic.com/v2/alerts_conditions/policies/'
CONDITIONS = 'conditions'
ENTITIES = 'entities'
CONDITION = 'condition'

GET_SYNTH_CONDITIONS_URL = 'https://api.newrelic.com/v2/alerts_synthetics_conditions.json'
CREATE_SYNTHETICS_CONDITION_URL = 'https://api.newrelic.com/v2/alerts_synthetics_conditions/policies/'
SYNTH_CONDITIONS = 'synthetics_conditions'
SYNTH_CONDITION = 'synthetics_condition'

LOC_FAILURE_CONDITIONS_URL = 'https://api.newrelic.com/v2/alerts_location_failure_conditions/policies/'
LOCATION_FAILURE_CONDITIONS = 'location_failure_conditions'
LOCATION_FAILURE_CONDITION = 'location_failure_condition'

NRQL_CONDITIONS_URL = 'https://api.newrelic.com/v2/alerts_nrql_conditions.json'
NRQL_CONDITIONS = 'nrql_conditions'
Esempio n. 2
0
import os
import library.status.conditionstatus as cs
import library.migrationlogger as logger
import library.clients.alertsclient as ac
import library.clients.monitorsclient as mc
import library.clients.entityclient as ec

logger = logger.get_logger(os.path.basename(__file__))


def migrate(all_alert_status, per_api_key, policy_name, src_api_key, src_policy, tgt_acct_id, tgt_api_key, tgt_policy):
    logger.info('Loading source synthetic conditions ')
    synth_conditions = ac.get_synthetic_conditions(src_api_key, src_policy['id'])[ac.SYNTH_CONDITIONS]
    logger.info('Found synthetic conditions ' + str(len(synth_conditions)))
    logger.info('Loading target synthetic conditions ' + policy_name)
    tgt_synth_conds = ac.synth_conditions_by_name_monitor(tgt_api_key, tgt_policy['id'])
    condition_num = 0
    for synth_condition in synth_conditions:
        condition_num = condition_num + 1
        condition_row = policy_name + '-scon' + str(condition_num)
        src_monitor_id = synth_condition[ac.MONITOR_ID]
        src_monitor_name = mc.get_monitor(src_api_key, src_monitor_id)['monitor']['name']
        all_alert_status[condition_row] = {cs.COND_NAME: synth_condition['name']}
        all_alert_status[condition_row][cs.SRC_MONITOR] = src_monitor_name
        result = ec.gql_get_matching_entity_by_name(per_api_key, ec.SYNTH_MONITOR, src_monitor_name, tgt_acct_id)
        if result['entityFound']:
            tgt_monitor = result['entity']
            all_alert_status[condition_row][cs.TGT_ACCOUNT] = tgt_monitor['accountId']
            all_alert_status[condition_row][cs.TGT_MONITOR] = tgt_monitor['name']
            logger.info('Found matching target monitor ' + tgt_monitor['name'])
            tgt_key = synth_condition['name'] + tgt_monitor['monitorId']