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." }))
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."}))
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__)