Exemple #1
0
def test_repeater(request, domain):
    url = request.POST["url"]
    repeater_type = request.POST['repeater_type']
    format = request.POST.get('format', None)
    repeater_class = get_all_repeater_types()[repeater_type]

    form = GenericRepeaterForm({
        "url": url,
        "format": format
    },
                               domain=domain,
                               repeater_class=repeater_class)
    if form.is_valid():
        url = form.cleaned_data["url"]
        format = format or RegisterGenerator.default_format_by_repeater(
            repeater_class)
        generator_class = RegisterGenerator.generator_class_by_repeater_format(
            repeater_class, format)
        repeater = repeater_class(
            username=request.POST.get('username'),
            password=request.POST.get('password'),
            auth_type=request.POST.get('auth_type'),
        )
        generator = generator_class(repeater)
        fake_post = generator.get_test_payload(domain)
        headers = generator.get_headers()
        verify = not request.POST.get('skip_cert_verify') == 'true'
        try:
            resp = simple_post(
                domain,
                url,
                fake_post,
                headers=headers,
                auth_manager=repeater.get_auth_manager(),
                verify=verify,
            )
            if 200 <= resp.status_code < 300:
                return HttpResponse(
                    json.dumps({
                        "success": True,
                        "response": resp.text,
                        "status": resp.status_code
                    }))
            else:
                return HttpResponse(
                    json.dumps({
                        "success": False,
                        "response": resp.text,
                        "status": resp.status_code
                    }))

        except Exception as e:
            errors = str(e)
        return HttpResponse(json.dumps({"success": False, "response": errors}))
    else:
        return HttpResponse(
            json.dumps({
                "success": False,
                "response": "Please enter a valid url."
            }))
def test_repeater(request, domain):
    url = request.POST["url"]
    repeater_type = request.POST['repeater_type']
    format = request.POST.get('format', None)
    repeater_class = get_all_repeater_types()[repeater_type]
    auth_type = request.POST.get('auth_type')

    form = GenericRepeaterForm({
        "url": url,
        "format": format
    },
                               domain=domain,
                               repeater_class=repeater_class)
    if form.is_valid():
        url = form.cleaned_data["url"]
        format = format or RegisterGenerator.default_format_by_repeater(
            repeater_class)
        generator_class = RegisterGenerator.generator_class_by_repeater_format(
            repeater_class, format)
        generator = generator_class(repeater_class())
        fake_post = generator.get_test_payload(domain)
        headers = generator.get_headers()

        username = request.POST.get('username')
        password = request.POST.get('password')
        if auth_type == BASIC_AUTH:
            auth = HTTPBasicAuth(username, password)
        elif auth_type == DIGEST_AUTH:
            auth = HTTPDigestAuth(username, password)
        else:
            auth = None

        try:
            resp = simple_post(fake_post, url, headers=headers, auth=auth)
            if 200 <= resp.status_code < 300:
                return HttpResponse(
                    json.dumps({
                        "success": True,
                        "response": resp.content,
                        "status": resp.status_code
                    }))
            else:
                return HttpResponse(
                    json.dumps({
                        "success": False,
                        "response": resp.content,
                        "status": resp.status_code
                    }))

        except Exception as e:
            errors = str(e)
        return HttpResponse(json.dumps({"success": False, "response": errors}))
    else:
        return HttpResponse(
            json.dumps({
                "success": False,
                "response": "Please enter a valid url."
            }))
Exemple #3
0
def test_repeater(request, domain):
    url = request.POST["url"]
    repeater_type = request.POST['repeater_type']
    format = request.POST.get('format', None)
    repeater_class = get_all_repeater_types()[repeater_type]
    auth_type = request.POST.get('auth_type')

    form = GenericRepeaterForm(
        {"url": url, "format": format},
        domain=domain,
        repeater_class=repeater_class
    )
    if form.is_valid():
        url = form.cleaned_data["url"]
        format = format or RegisterGenerator.default_format_by_repeater(repeater_class)
        generator_class = RegisterGenerator.generator_class_by_repeater_format(repeater_class, format)
        generator = generator_class(repeater_class())
        fake_post = generator.get_test_payload(domain)
        headers = generator.get_headers()

        username = request.POST.get('username')
        password = request.POST.get('password')
        verify = not request.POST.get('skip_cert_verify') == 'true'
        if auth_type == BASIC_AUTH:
            auth = HTTPBasicAuth(username, password)
        elif auth_type == DIGEST_AUTH:
            auth = HTTPDigestAuth(username, password)
        else:
            auth = None

        try:
            resp = simple_post(fake_post, url, headers=headers, auth=auth, verify=verify)
            if 200 <= resp.status_code < 300:
                return HttpResponse(json.dumps({"success": True,
                                                "response": resp.content,
                                                "status": resp.status_code}))
            else:
                return HttpResponse(json.dumps({"success": False,
                                                "response": resp.content,
                                                "status": resp.status_code}))

        except Exception as e:
            errors = str(e)
        return HttpResponse(json.dumps({"success": False, "response": errors}))
    else:
        return HttpResponse(json.dumps({"success": False, "response": "Please enter a valid url."}))
Exemple #4
0
 def _format_or_default_format(self):
     from corehq.motech.repeaters.repeater_generators import RegisterGenerator
     return self.format or RegisterGenerator.default_format_by_repeater(self.__class__)