Ejemplo n.º 1
0
def download_from_http(source_uri, rulesets_id=None):
    job = Job.create_job('download_from_http', source_uri)
    rulesets = list()
    if rulesets_id:
        for ruleset_id in rulesets_id:
            rulesets.append(RuleSetSuricata.get_by_id(ruleset_id))
    try:
        source = SourceSuricata.get_by_uri(source_uri)
        if source is None:
            job.update_job("Error - source is None : " + str(source_uri),
                           'Error')
            return {"message": "Error - source is None : " + str(source_uri)}
    except Exception as e:
        logger.exception("Error for source to upload")
        job.update_job(repr_instance.repr(e), 'Error')
        return {"message": "Error for source to upload", "exception": str(e)}
    try:
        message = source.download_from_http(rulesets)
        job.update_job(message, 'Completed')
        logger.info("task - download_from_http : " + str(source_uri) + " - " +
                    str(message))
    except Exception as e:
        logger.exception("Error for source to upload")
        job.update_job(repr_instance.repr(e), 'Error')
        send_notification("Error for source " + str(source.uri), str(e))
        return {
            "message": "Error for source " + str(source.uri) + " to upload",
            "exception": str(e)
        }
    return {
        "message":
        "Source " + str(source.uri) + " uploaded successfully by HTTP",
        "upload_message": message
    }
Ejemplo n.º 2
0
def deploy_critical_stack(api_key):
    job = Job.create_job('deploy_critical_stack', api_key)
    try:
        critical_stack = CriticalStack.objects.get(api_key=api_key)
    except CriticalStack.DoesNotExist:  # pragma: no cover
        logger.exception()
        job.update_job(
            "Error - Critical Stack is None - param id not set : " +
            str(api_key), 'Error')
        return {
            "message":
            "Error - Critical Stack is None - param id not set : " +
            str(api_key)
        }
    else:
        try:
            response_deploy_critical_stack = critical_stack.deploy()
            if response_deploy_critical_stack['status']:
                job.update_job('Deployed Critical Stack successfully',
                               'Completed')
            elif not response_deploy_critical_stack[
                    'status']:  # pragma: no cover
                if 'errors' in response_deploy_critical_stack:
                    job.update_job(
                        'Error during the critical stack deployed',
                        'Error: ' + str(api_key) + " - " + repr_instance.repr(
                            response_deploy_critical_stack['errors']))
                    logger.error("task - deploy_critical_stack : " +
                                 str(api_key) + " - " + repr_instance.repr(
                                     response_deploy_critical_stack['errors']))
                    return {
                        "message": "Error for Critical Stack " + str(api_key) +
                        " to deploy",
                        "exception":
                        str(response_deploy_critical_stack['errors'])
                    }
                else:
                    job.update_job('Error during the critical stack deployed',
                                   'Error: ' + str(api_key))
                    logger.error("task - deploy_critical_stack : " +
                                 str(api_key))
                    return {
                        "message": "Error for Critical Stack " + str(api_key) +
                        " to deploy",
                        "exception": " "
                    }
        except Exception as e:  # pragma: no cover
            logger.exception('Error during the critical stack deployed')
            job.update_job(repr_instance.repr(e), 'Error')
            send_notification("Critical stack " + str(api_key), str(e))
            return {
                "message":
                "Error for Critical Stack " + str(api_key) + " to deploy",
                "exception": str(e)
            }
        return {
            "message":
            "Critical Stack " + str(api_key) + ' deployed successfully'
        }
Ejemplo n.º 3
0
 def setUpTestData(cls):
     now = datetime(year=2017, month=5, day=5, hour=12, tzinfo=pytz.UTC)
     before = now - timedelta(minutes=30)
     cls.job1 = Job.objects.create(name="test",
                                   probe="test",
                                   status='Error',
                                   result="",
                                   created=before,
                                   completed=now)
     cls.job2 = Job.create_job('test2', 'probe1')
Ejemplo n.º 4
0
def deploy_reputation_list(probe_name):
    job = Job.create_job('deploy_reputation_list', probe_name)
    probe = Probe.get_by_name(probe_name)
    if probe is None:
        return {
            "message":
            "Error - probe is None - param id not set : " + str(probe_name)
        }
    my_class = getattr(importlib.import_module(probe.type.lower() + ".models"),
                       probe.type)
    probe = my_class.get_by_name(probe_name)
    try:
        response_cat = CategoryReputation.deploy(probe)
        response_ip = IPReputation.deploy(probe)
        if response_cat['status'] and response_ip['status']:
            job.update_job(
                str(response_cat) + " - " + str(response_ip), 'Completed')
            logger.info("task - deploy_reputation_list : " + str(probe_name) +
                        " - " + str(response_cat) + " - " + str(response_ip))
        else:
            logger.error(str(response_cat) + " - " + str(response_ip))
            job.update_job(
                str(response_cat) + " - " + str(response_ip), 'Error')
            send_notification(
                "Error during deploy reputation list for " + str(probe.name),
                str(response_cat) + " - " + str(response_ip))
            return {
                "message": "Error for probe " + str(probe.name) +
                " to deploy reputation list",
                "exception": str(response_cat) + " - " + str(response_ip)
            }
    except Exception as e:  # pragma: no cover
        logger.exception(str(e))
        job.update_job(repr_instance.repr(e), 'Error')
        send_notification(
            "Error during deploy reputation list for " + str(probe.name),
            str(e))
        return {
            "message": "Error for probe " + str(probe.name) +
            " to deploy reputation list",
            "exception": str(e)
        }
    return {
        "message":
        "Probe " + str(probe.name) + " deployed successfully reputation list"
    }