Esempio n. 1
0
def revert_reaction(redata, jdata, logger, r_server):
    ''' This method reverts the heavy lifting '''
    readded = 0
    result = r_server.smembers("cloudflare-dns-failover:%s:%s" %
                               (jdata['cid'], redata['id']))
    if len(result) < 1:
        logger.debug("cloudflare-dns-failover: no removed records found")
        return None
    zoneid = cloudflare.get_zoneid(redata['data']['email'],
                                   redata['data']['apikey'],
                                   redata['data']['domain'], logger)
    if zoneid is None:
        logger.debug("cloudflare-dns-failover: could not pull zoneid")
        return False

    for item in result:
        logger.debug("cloudflare-dns-failover: Working on Redis item " + item)
        redis_data = json.loads(item)
        redis_data.pop("id", None)
        readd = cloudflare.add_rec(redata['data']['email'],
                                   redata['data']['apikey'], zoneid, logger,
                                   redis_data)
        if readd:
            result = r_server.srem(
                "cloudflare-dns-failover:%s:%s" % (jdata['cid'], redata['id']),
                item)
            logger.debug("cloudflare-dns-failover: Re-added record %s" % item)
            readded = readded + 1
        else:
            logger.debug(
                "cloudflare-dns-failover: Could not re-add record %s" % item)
    if readded > 0:
        return True
    else:
        return None
Esempio n. 2
0
def run_reaction(redata, jdata, logger):
    ''' This method performs the heavy lifting '''
    rec_data = {
        'name': redata['data']['rec_name'],
        'type': redata['data']['rec_type'],
        'content': redata['data']['content']
    }
    zoneid = cloudflare.get_zoneid(redata['data']['email'],
                                   redata['data']['apikey'],
                                   redata['data']['domain'], logger)
    if zoneid is not None:
        check = cloudflare.get_recs(
            redata['data']['email'],
            redata['data']['apikey'],
            zoneid,
            logger,
            page=1,
            search=rec_data,
        )
        logger.debug("cloudflare-rec-add: Got Records " + json.dumps(check))
        if len(check) == 0:
            logger.debug("cloudflare-rec-add: Found " + str(len(check)) +
                         " matching records")
            rec_data['ttl'] = redata['data']['ttl']
            if "true" in redata['data']['proxied']:
                rec_data['proxied'] = True
            else:
                rec_data['proxied'] = False
            result = cloudflare.add_rec(redata['data']['email'],
                                        redata['data']['apikey'], zoneid,
                                        logger, rec_data)
            if result:
                logger.info(
                    "cloudflare-rec-add: Successfully added record for monitor "
                    + redata['id'])
                return True
            else:
                logger.debug(
                    "cloudflare-rec-add: Failed to add record for monitor " +
                    redata['id'])
                return False
        else:
            logger.debug("cloudflare-rec-add: Found " + str(len(check)) +
                         " matching records")
            return None
    else:
        logger.debug("cloudflare-rec-add: Could not pull zone id for domain " +
                     redata['data']['domain'] + " for monitor  " +
                     redata['id'])
        return False
Esempio n. 3
0
def run_reaction(redata, jdata, logger):
    ''' This method performs the heavy lifting '''
    rec_data = {
        'name' : redata['data']['rec_name'],
        'type' : redata['data']['rec_type'],
        'content' : redata['data']['content']
    }
    zoneid = cloudflare.get_zoneid(
          redata['data']['email'],
          redata['data']['apikey'],
          redata['data']['domain'],
          logger)
    if zoneid is not None:
        check = cloudflare.get_recs(
            redata['data']['email'],
            redata['data']['apikey'],
            zoneid,
            logger,
            page=1,
            search=rec_data,
            )
        logger.debug("cloudflare-rec-add: Got Records " + json.dumps(check))
        if len(check) == 0:
            logger.debug("cloudflare-rec-add: Found " + str(len(check)) + " matching records")
            rec_data['ttl'] = redata['data']['ttl']
            if "true" in redata['data']['proxied']:
                rec_data['proxied'] = True
            else:
                rec_data['proxied'] = False
            result = cloudflare.add_rec(
                redata['data']['email'],
                redata['data']['apikey'],
                zoneid,
                logger,
                rec_data)
            if result:
                logger.info("cloudflare-rec-add: Successfully added record for monitor " + redata['id'])
                return True
            else:
                logger.debug("cloudflare-rec-add: Failed to add record for monitor " + redata['id']) 
                return False
        else:
            logger.debug("cloudflare-rec-add: Found " + str(len(check)) + " matching records")
            return None
    else:
        logger.debug("cloudflare-rec-add: Could not pull zone id for domain " + redata['data']['domain'] + " for monitor  " + redata['id'])
        return False
Esempio n. 4
0
def revert_reaction(redata, jdata, logger, r_server):
    ''' This method reverts the heavy lifting '''
    readded = 0
    result = r_server.smembers("cloudflare-dns-failover:%s:%s" %
                               (jdata['cid'], redata['id']))
    if len(result) < 1:
        logger.debug("cloudflare-dns-failover: no removed records found")
        return None
    zoneid = cloudflare.get_zoneid(redata['data']['email'],
                                   redata['data']['apikey'],
                                   redata['data']['domain'],
                                   logger)
    if zoneid is None:
        logger.debug("cloudflare-dns-failover: could not pull zoneid")
        return False

    for item in result:
        logger.debug("cloudflare-dns-failover: Working on Redis item " + item)
        redis_data = json.loads(item)
        redis_data.pop("id", None)
        readd = cloudflare.add_rec(redata['data']['email'],
                                   redata['data']['apikey'],
                                   zoneid,
                                   logger,
                                   redis_data)
        if readd:
            result = r_server.srem("cloudflare-dns-failover:%s:%s" %
                                   (jdata['cid'], redata['id']), item)
            logger.debug("cloudflare-dns-failover: Re-added record %s" % item)
            readded = readded + 1
        else:
            logger.debug("cloudflare-dns-failover: Could not re-add record %s" % item)
    if readded > 0:
        return True
    else:
        return None