def repeater_class(self): try: return get_all_repeater_types()[self.repeater_type] except KeyError: raise Http404( "No such repeater {}. Valid types: {}".format( self.repeater_type, list(get_all_repeater_types()) ) )
def repeater_types_info(self): return [ RepeaterTypeInfo(r.__name__, r.friendly_name, r._has_config, r.by_domain(self.domain)) for r in get_all_repeater_types().values() if r.available_for_domain(self.domain) ]
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 copy_repeaters(self): from corehq.motech.repeaters.models import Repeater from corehq.motech.repeaters.utils import get_all_repeater_types from corehq.motech.repeaters.dbaccessors import get_repeaters_by_domain for repeater in get_repeaters_by_domain(self.existing_domain): self.save_couch_copy(repeater, self.new_domain) Repeater.by_domain.clear(Repeater, self.new_domain) for repeater_type in get_all_repeater_types().values(): Repeater.by_domain.clear(repeater_type, self.new_domain)
def repeaters(self): return [ ( r.__name__, r.by_domain(self.domain), r.friendly_name, r.get_custom_url(self.domain) ) for r in get_all_repeater_types().values() if r.available_for_domain(self.domain) ]
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 obj_get(self, bundle, **kwargs): return get_object_or_not_exist(Repeater, kwargs['pk'], kwargs['domain'], additional_doc_types=list( get_all_repeater_types()))
def obj_get(self, bundle, **kwargs): return get_object_or_not_exist(Repeater, kwargs['pk'], kwargs['domain'], additional_doc_types=list(get_all_repeater_types()))