示例#1
0
 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())
             )
         )
示例#2
0
 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())
             )
         )
示例#3
0
 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)
     ]
示例#4
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."
            }))
示例#5
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')
        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."
            }))
示例#6
0
    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)
示例#7
0
 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)
     ]
示例#8
0
    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)
示例#9
0
 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)
     ]
示例#10
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."}))
示例#11
0
 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()))
示例#12
0
 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()))