Exemplo n.º 1
0
def createChainingDev(request, service_id):
    if request.is_ajax() and request.method == 'POST':
        token = request.session.get('passToken')
        auth_url = request.session.get("auth_url")
        ctrl_header = request.session.get("ctrl_header")

        control = ControlEngine(ctrl_header)
        neutron = NeutronRestAPI(auth_url, token)

        service_detail, map_data = control.get_service_detail_and_link_list(
            service_id)

        # rel
        map_data = control.get_map(service_id)
        public_network = neutron.get_external_network(
            {"router:external": True})

        #dev        # {'success':{'id':"",'chain_id':""}}
        return JsonResponse({
            'success': {
                'service': {
                    "service_detail":
                    service_detail["success"]["service_detail"]
                },
                "links": map_data["success"]["map_link_list"],
                "public_network": public_network
            }
        })


#rel
# return JsonResponse({'service': service_detail["success"], 'instance_list':instanceList, "links": map_data["success"]["map_link_list"], "public_network": public_network})
    else:

        sfc_name = request.POST.get("sfc_name")
        sfc_desc = request.POST.get("sfc_desc")

        # print "~~~~~~~~~~~~~~~"
        # print sfc_name
        # print sfc_desc

        return render(request, 'service/create_chaining.html', {
            'sfc_name': sfc_name,
            'sfc_desc': sfc_desc
        })
Exemplo n.º 2
0
def detail_service(request, service_id):
    """
    서비스 상세조회
    :param request:
    :param service_id:
    :return:
    """
    token = request.session.get("passToken")
    auth_url = request.session.get("auth_url")
    if request.method == 'POST':
        logger.info("detailServicePOST")
        control = ControlEngine(request.session.get("ctrl_header"))
        # control = ControllerEngine()  # TODO: debugging 용
        service_detail, map_data = control.get_service_detail_and_link_list(
            service_id)

        public_network = []
        logger.info("detailServicePOST_end_public_network")
        try:
            neutron = NeutronRestAPI(auth_url, token)
            result = neutron.get_network_list({"router:external": True})
        except Exception as e:
            logger.warning("get public_network fail" + str(e))
            return JsonResponse(service_detail)
        else:
            if result.get("success"):
                public_network = filter(
                    lambda network: network["router:external"],
                    result["success"]["networks"])
        if service_detail.get("success"):
            # print service_detail["success"], map_data, public_network
            jsonDic = {
                "success": service_detail["success"],
                "links": {},
                "security_types": {},
                "public_network": public_network
            }

            template = control.get_template(service_id)
            if template.get("success"):
                user_template = template["success"].get("user_template")
                if user_template:
                    # print "user_template: {}\nservice_id: {}".format(user_template, service_id)
                    user_template["service_id"] = service_id
                    jsonDic["success"]["template"] = user_template
            else:
                jsonDic.get("success").get("service_detail").get(
                    "error_msg_list").push(template.get("error"))
            if map_data.get("success"):
                map_link_list = map_data["success"].get("map_link_list")
                if map_link_list:
                    jsonDic["links"] = map_link_list.get("links")
                    jsonDic["asLinks"] = map_link_list.get("asLinks")
                    jsonDic["security_types"] = map_link_list.get(
                        "security_types")
                    jsonDic["used_security_group_list"] = map_link_list.get(
                        "used_security_group_list")
            # request.session["service_dic"] = jsonDic
            return JsonResponse(jsonDic)
        else:
            return JsonResponse(service_detail)
    else:
        token = request.session.get('passToken')
        if not token:
            return redirect("/dashboard/domains/?next=/dashboard/service/" +
                            service_id + "/detail")
        logger.info("detailService_end")
        response = render(request, 'service/info.html', {})
        return response