Ejemplo n.º 1
0
def quickSearch(request):
    if request.method == "GET":
        search_customer = request.GET.get("customer", None)
        search_manager = request.GET.get('manager', None)
        search_status = request.GET.get('status', None)
        search_module = request.GET.get('module', None)
        search_permission = request.GET.get('permission', None)
        search_perm_num = request.GET.get('num', None)
        search_perm_bool = request.GET.get('bool', None)
        search_config = request.GET.get('config', None)
        is_actual = request.GET.get('isActual', None)
        search_position = request.GET.get('position', None)
        if search_customer:
            if is_actual == "是":
                customers = Customer.objects(is_sys=False).order_by('+tag')
            elif is_actual == "否":
                customers = Customer.objects(is_sys=True).order_by('+tag')
            elif is_actual == "任意":
                customers = Customer.objects().order_by('+tag')

            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                cus_aftersales.append(customer.aftersale)

            results = []
            if search_customer:
                for customer in customers:
                    if search_customer == customer.name:
                        results.append(customer)
            if search_manager and search_manager != '任意':
                for customer in customers:
                    if search_manager == customer.aftersale:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_status and search_status != '任意':
                for customer in customers:
                    if search_status == customer.customerstatus:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_module and search_module != '任意':
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if search_module == module.name:
                            if is_actual == '是':
                                if "实盘" in customer.name:
                                    results.append(customer)
                            else:
                                results.append(customer)
            if search_permission and search_permission != '任意':
                for customer in customers:
                    cus_permission = customer.permissions
                    perm_settings = CustomerPermissionSettings.objects()
                    for perm_setting in perm_settings:
                        if perm_setting.name == search_permission[1:]:
                            perm_id = str(perm_setting.id)
                            if str(search_perm_num) == str(
                                    cus_permission[perm_id]) or str(
                                        search_perm_bool) == str(
                                            cus_permission[perm_id]):
                                if is_actual == '是':
                                    if "实盘" in customer.name:
                                        results.append(customer)
                                else:
                                    results.append(customer)
            if search_config:
                for customer in customers:
                    setting = customer.settings
                    pattern = re.compile(search_config, re.X)
                    match = pattern.search(setting)
                    if match is not None:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)

            if is_actual == '是':
                for customer in customers:
                    if '实盘' in customer.name:
                        results.append(customer)
            elif is_actual == '否':
                for customer in customers:
                    results.append(customer)

            if search_position and search_position != '任意':
                for customer in customers:
                    if customer.position == search_position:
                        results.append(customer)

        else:
            customers = Customer.objects().order_by('+tag')
            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            results = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                    cus_aftersales.append(customer.aftersale)
                    results.append(customer)
        return render_to_response("demo/search_view.html",
                                  locals(),
                                  context_instance=RequestContext(request))

    elif request.method == 'POST':
        response = {"success": False, "error": "", "id": None}
        try:
            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
        except Exception, e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
Ejemplo n.º 2
0
def quickSearch(request):
    if request.method == "GET":
        search_customer = request.GET.get("customer", None)
        search_manager = request.GET.get("manager", None)
        search_status = request.GET.get("status", None)
        search_module = request.GET.get("module", None)
        search_permission = request.GET.get("permission", None)
        search_perm_num = request.GET.get("num", None)
        search_perm_bool = request.GET.get("bool", None)
        search_config = request.GET.get("config", None)
        is_actual = request.GET.get("isActual", None)
        search_position = request.GET.get("position", None)
        if search_customer:
            if is_actual == "是":
                customers = Customer.objects(is_sys=False).order_by("+tag")
            elif is_actual == "否":
                customers = Customer.objects(is_sys=True).order_by("+tag")
            elif is_actual == "任意":
                customers = Customer.objects().order_by("+tag")

            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                cus_aftersales.append(customer.aftersale)

            results = []
            if search_customer:
                for customer in customers:
                    if search_customer == customer.name:
                        results.append(customer)
            if search_manager and search_manager != "任意":
                for customer in customers:
                    if search_manager == customer.aftersale:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_status and search_status != "任意":
                for customer in customers:
                    if search_status == customer.customerstatus:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_module and search_module != "任意":
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if search_module == module.name:
                            if is_actual == "是":
                                if "实盘" in customer.name:
                                    results.append(customer)
                            else:
                                results.append(customer)
            if search_permission and search_permission != "任意":
                for customer in customers:
                    cus_permission = customer.permissions
                    perm_settings = CustomerPermissionSettings.objects()
                    for perm_setting in perm_settings:
                        if perm_setting.name == search_permission[1:]:
                            perm_id = str(perm_setting.id)
                            if str(search_perm_num) == str(cus_permission[perm_id]) or str(search_perm_bool) == str(
                                cus_permission[perm_id]
                            ):
                                if is_actual == "是":
                                    if "实盘" in customer.name:
                                        results.append(customer)
                                else:
                                    results.append(customer)
            if search_config:
                for customer in customers:
                    setting = customer.settings
                    pattern = re.compile(search_config, re.X)
                    match = pattern.search(setting)
                    if match is not None:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)

            if is_actual == "是":
                for customer in customers:
                    if "实盘" in customer.name:
                        results.append(customer)
            elif is_actual == "否":
                for customer in customers:
                    results.append(customer)

            if search_position and search_position != "任意":
                for customer in customers:
                    if customer.position == search_position:
                        results.append(customer)

        else:
            customers = Customer.objects().order_by("+tag")
            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            results = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                    cus_aftersales.append(customer.aftersale)
                    results.append(customer)
        return render_to_response("demo/search_view.html", locals(), context_instance=RequestContext(request))

    elif request.method == "POST":
        response = {"success": False, "error": "", "id": None}
        try:
            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response), mimetype="application/json")
        except Exception, e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response), mimetype="application/json")
Ejemplo n.º 3
0
def main():
    response = {"success": False, "error": ""}
    customers = Customer.objects.order_by('-create_time')

    machine_json = {'portal_svn_info': [], 'server_svn_info': []}
    i = 0
    for customer in customers:
        i += 1
        print i
        if not customer:
            response['error'] = '查找客户失败!'
            return HttpResponse(json.dumps(response, ensure_ascii=False),
                                mimetype="application/json")

        customerdeploystatus = CustomerDeployStatus()
        customerdeploystatus.customer = customer
        if not customer.machines:
            customerdeploystatus.state = 'unkown'
            customerdeploystatus.save()
            continue
        machines = customer.machines
        portal_is_old = False
        server_is_old = False
        customerdeploystatus.machines = machines

        records = CustomerDeployRecord.objects(
            customer=customer).order_by("-start_time")

        server_key_submits = []
        portal_key_submits = []

        if len(records) == 0:
            customerdeploystatus.state = '未知'
            customerdeploystatus.save()
            continue

        record = records[0]

        cus_pack = record.cus_package
        portal_package = cus_pack.portal_package
        server_pack = cus_pack.machine_packages[0]
        if not server_pack:
            response['error'] = '查找server包失败!'
            return HttpResponse(json.dumps(response, ensure_ascii=False),
                                mimetype="application/json")
        if not portal_package:
            response['error'] = '查找portal包失败!'
            return HttpResponse(json.dumps(response, ensure_ascii=False),
                                mimetype="application/json")

        #判断portal的svn_url和server的svn_url是否存在
        if not portal_package.svn_url and not server_pack.svn_info:
            customerdeploystatus.state = '未知'
            customerdeploystatus.save()
            continue
        if portal_package.svn_url:
            machine_json[
                'portal_svn_info'], portal_is_old, portal_key_submits = get_portal_status(
                    portal_package)

        if server_pack.svn_info:
            machine_json[
                'server_svn_info'], server_is_old, server_key_submits = get_serve_status(
                    server_pack.svn_info)

        #判断是否为关键更新
        if (portal_is_old and portal_key_submits) or (server_key_submits
                                                      and server_is_old):
            customerdeploystatus.portal_svn_info = machine_json[
                'portal_svn_info']
            customerdeploystatus.server_svn_info = machine_json[
                'server_svn_info']
            customerdeploystatus.state = '关键更新'
        elif portal_is_old or server_is_old:
            customerdeploystatus.portal_svn_info = machine_json[
                'portal_svn_info']
            customerdeploystatus.server_svn_info = machine_json[
                'server_svn_info']
            customerdeploystatus.state = '有更新'
        else:
            customerdeploystatus.state = '未知'
        customerdeploystatus.portal_is_old = portal_is_old
        customerdeploystatus.server_is_old = server_is_old
        customerdeploystatus.create_time = datetime.datetime.now()
        customerdeploystatus.save()

    return HttpResponse(json.dumps(response, ensure_ascii=False),
                        mimetype="application/json")