Пример #1
0
def update_domain(req, domain_table_id):
    if req.method == "POST":
        s_id = req.POST.get('edit_session_id')
        if not req.session.has_key("edit_session_id"):
            req.session['current_js'] = JS_DICT["fail_update"] % 'Null edit_session_id'
            return HttpResponseRedirect('/domain_manage/')
        if req.session["edit_session_id"] != s_id:
            req.session['current_js'] = JS_DICT["fail_update"] % '请勿重复提交'
            return HttpResponseRedirect('/domain_manage/')
        else:
            del req.session["edit_session_id"]
        cache_rules = req.POST.get('cache_rules', None)
        ip_str = req.POST.get('ip_list').strip()
        token = req.session.get('token')

        d = Domain.objects.using('api_db').get(id=domain_table_id)
        domain_name = d.domain_name
        test_url = d.test_url
        domain_id = d.domain_id
        service_type = d.domain_type

        ip_list = ip_str.split('\r\n')
        ip_list.reverse()
        try:
            api = DomainApi(token)
            domain = common_struct.Domain(domain_name=domain_name,
                                          origin_ips=ip_list,
                                          test_url=test_url,
                                          domain_id=domain_id,
                                          service_type=service_type,
                                          cache_behaviors=cache_rules)
            res = api.modify(domain)
        except Exception, e:
            traceback.print_exc(file=sys.stdout)
            LOG.error('Modify Domain Failed')
            req.session['current_js'] = JS_DICT["fail_update"] % e
            return HttpResponseRedirect('/domain_manage/')
        if res.status == 200:
            req.session['current_js'] = JS_DICT["succ_update"]
        else:
            req.session['current_js'] = JS_DICT["fail_update"] % json.loads(res.read()).get("error")
        session_id = '%s' % uuid.uuid1()
        req.session['edit_session_id'] = session_id
        return HttpResponseRedirect('/domain_manage/')