예제 #1
0
def add_form(request):
    lists = dict()
    try:
        if request.method == 'GET':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            if not request.GET.__contains__('equip_name'):
                form = SearchEquipForm()
            else:
                form = SearchEquipForm(request.GET)

            if form.is_valid():

                name_equip = form.cleaned_data['equip_name']

                equip = client.create_equipamento().listar_por_nome(name_equip)
                id_equip = equip.get('equipamento').get('id')
                protocol_list = client.create_tipo_acesso().listar()

                lists['formCad'] = formCad = EquipAccessForm(protocol_list)
                formCad.fields['id_equip'].initial = id_equip
                formCad.fields['name_equip'].initial = name_equip

            lists['form'] = form
            return render_to_response(EQUIPMENTACESS_FORM, lists, context_instance=RequestContext(request))

        if request.method == 'POST':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            form = SearchEquipForm()
            form.fields['equip_name'].initial = request.POST['name_equip']

            protocol_list = client.create_tipo_acesso().listar()

            formCad = EquipAccessForm(protocol_list, request.POST)

            if formCad.is_valid():
                user = formCad.cleaned_data['user']
                host = formCad.cleaned_data['host']
                password = formCad.cleaned_data['password']
                second_password = formCad.cleaned_data['second_password']
                equip = formCad.cleaned_data['id_equip']
                protocol = formCad.cleaned_data['protocol']

                try:
                    client.create_equipamento_acesso().inserir(
                        equip, host, user, password, protocol, second_password)
                    messages.add_message(
                        request, messages.SUCCESS, equip_access_messages.get("success_insert"))
                    return search_list_param(request, equip)
                except EquipamentoAcessoError, e:
                    messages.add_message(
                        request, messages.ERROR, equip_access_messages.get("already_association"))
                except NetworkAPIClientError, e:
                    messages.add_message(request, messages.ERROR, e)
예제 #2
0
def edit_form(request, id_group_user):

    try:
        lists = dict()
        lists['form'] = GroupUserForm()

        if request.method == 'POST':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            id_group = int(id_group_user)

            form = GroupUserForm(request.POST)

            lists['form'] = form
            lists['action'] = reverse("group-user.edit", args=[id_group])

            if form.is_valid():
                id_group_user = form.cleaned_data['id_group_user']
                name = form.cleaned_data['name']
                read = PERMISSION.get(form.cleaned_data['read'])
                write = PERMISSION.get(form.cleaned_data['write'])
                edition = PERMISSION.get(form.cleaned_data['edition'])
                delete = PERMISSION.get(form.cleaned_data['delete'])

                try:
                    client.create_grupo_usuario().alterar(
                        id_group_user, name, read, write, edition, delete)
                    messages.add_message(
                        request, messages.SUCCESS, group_user_messages.get("success_edit"))
                    return redirect('group-user.list')

                except NetworkAPIClientError, e:
                    messages.add_message(request, messages.ERROR, e)

            return render_to_response(GROUPUSER_FORM, lists, context_instance=RequestContext(request))

        id_group = int(id_group_user)

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        group_user = client.create_grupo_usuario().search(id_group)

        if group_user is None:
            messages.add_message(
                request, messages.ERROR, group_user_messages.get("invalid_group_user"))
            return redirect('group-user.list')

        group_user = group_user.get('user_group')

        # Set Group User data
        initial = {'id_group_user':  group_user.get('id'), 'name':  group_user.get('nome'), 'read': get_permission(group_user.get('leitura')), 'write': get_permission(
            group_user.get('escrita')), 'edition': get_permission(group_user.get('edicao')), 'delete': get_permission(group_user.get('exclusao'))}
        form = GroupUserForm(initial=initial)

        lists['form'] = form
        lists['action'] = reverse("group-user.edit", args=[id_group])
예제 #3
0
def edit_form(request, id_optionvip):

    try:
        lists = dict()
        lists['form'] = OptionVipForm()

        if request.method == 'POST':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            id_ovip = int(id_optionvip)

            form = OptionVipForm(request.POST)

            lists['form'] = form
            lists['action'] = reverse("option-vip.edit", args=[id_ovip])

            if form.is_valid():
                id_option = form.cleaned_data['id_option']
                name_option = form.cleaned_data['name_option']
                type_option = form.cleaned_data['type_option']

                try:
                    client.create_option_vip().alter(
                        id_option, type_option, name_option)
                    messages.add_message(
                        request, messages.SUCCESS, option_vip_messages.get("success_edit"))
                    return redirect('option-vip.list')

                except NetworkAPIClientError, e:
                    messages.add_message(request, messages.ERROR, e)

            return render_to_response(OPTIONVIP_FORM, lists, context_instance=RequestContext(request))

        id_ovip = int(id_optionvip)

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        option_vip = client.create_option_vip().search(id_ovip)

        if option_vip is None:
            messages.add_message(
                request, messages.ERROR, option_vip_messages.get("invalid_option_vip"))
            return redirect('option-vip.list')

        option_vip = option_vip.get('option_vip')

        # Set Option VIP data
        initial = {'id_option':  option_vip.get('id'), 'name_option':  option_vip.get(
            'nome_opcao_txt'), 'type_option':  option_vip.get('tipo_opcao')}
        form = OptionVipForm(initial=initial)

        lists['form'] = form
        lists['action'] = reverse("option-vip.edit", args=[id_ovip])
예제 #4
0
def edit_form(request, id_group_equipament):

    try:
        lists = dict()

        if request.method == 'POST':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            id_egroup = int(id_group_equipament)

            form = GroupEquipForm(request.POST)

            lists['form'] = form
            lists['action'] = reverse("group-equip.edit", args=[id_egroup])

            if form.is_valid():
                id = form.cleaned_data['id']
                name = form.cleaned_data['name']

                try:
                    client.create_grupo_equipamento().alterar(id, name)
                    messages.add_message(
                        request, messages.SUCCESS,
                        group_equip_messages.get("success_edit"))
                    return redirect('group-equip.list')

                except NetworkAPIClientError, e:
                    messages.add_message(request, messages.ERROR, e)

            return render_to_response(GROUP_EQUIPMENT_FORM,
                                      lists,
                                      context_instance=RequestContext(request))

        id_egroup = int(id_group_equipament)

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        egroup = client.create_grupo_equipamento().search(id_egroup)

        if egroup is None:
            messages.add_message(
                request, messages.ERROR,
                group_equip_messages.get("invalid_group_equipament"))
            return redirect('group-equip.list')

        egroup = egroup.get('group_equipament')

        # Set Group Equipament data
        initial = {'id': egroup.get('id'), 'name': egroup.get('nome')}
        form = GroupEquipForm(initial=initial)

        lists['form'] = form
        lists['action'] = reverse("group-equip.edit", args=[id_egroup])
예제 #5
0
def add_configuration(request, id_environment):

    context = dict()

    try:

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()
        net_type_list = client.create_tipo_rede().listar()

        form = IpConfigForm(net_type_list, request.POST or None)

        # Get user auth
        auth = AuthSession(request.session)
        environment_client = auth.get_clientFactory().create_ambiente()

        environment_dict = environment_client.buscar_por_id(id_environment)
        environment = environment_dict.get('ambiente')

        context["form"] = form
        context["action"] = reverse(
            'environment.configuration.add', args=[id_environment])
        context["environment"] = environment

        if form.is_valid():
            network = form.cleaned_data['network_validate']
            prefix = form.cleaned_data['prefix']
            ip_version = form.cleaned_data['ip_version']
            network_type = form.cleaned_data['net_type']

            environment_client.configuration_save(
                id_environment, network, prefix, ip_version, network_type)
            messages.add_message(request, messages.SUCCESS, environment_messages.get(
                "success_configuration_insert"))
            context["form"] = IpConfigForm(net_type_list)

    except AmbienteNaoExisteError as e:
        messages.add_message(request, messages.ERROR, e)
        return redirect('environment.list')

    except InvalidParameterError as e:
        messages.add_message(request, messages.ERROR, e)

    except NetworkAPIClientError as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)

    except BaseException as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)

    return render_to_response(templates.ENVIRONMENT_CIDR, context,
                              context_instance=RequestContext(request))
예제 #6
0
def edit_form_perm(request, id_ugroup, id_perm):

    try:

        lists = dict()
        lists['edit_perms'] = True
        lists['action_edit_perms'] = reverse(
            "user-group-perm.edit", args=[id_ugroup, id_perm])

        # Get user
        auth = AuthSession(request.session)
        client_perm = auth.get_clientFactory(
        ).create_permissao_administrativa()

        # Get Group User by ID from NetworkAPI
        lists['ugroup'] = auth.get_clientFactory().create_grupo_usuario().search(
            id_ugroup).get('user_group')

        function_list = validates_dict(
            auth.get_clientFactory().create_permission().list_all(), 'perms')

        perm = client_perm.search(id_perm).get("perm")

        if request.method == "POST":

            form = PermissionGroupForm(function_list, request.POST)
            lists['form_perms'] = form

            if form.is_valid():

                id_perm = form.cleaned_data['id_group_perms']
                function = form.cleaned_data['function']
                read = convert_boolean_to_int(form.cleaned_data['read'])
                write = convert_boolean_to_int(form.cleaned_data['write'])

                client_perm.alterar(id_perm, function, read, write, id_ugroup)

                messages.add_message(
                    request, messages.SUCCESS, perm_group_messages.get("success_edit"))

                return redirect('user-group.list', id_ugroup, 1)

        # GET
        else:
            initial = {"id_group_perms": perm.get("id"), "function": perm.get("permission"), "read": convert_string_to_boolean(
                perm.get("leitura")), "write": convert_string_to_boolean(perm.get("escrita"))}
            lists['form_perms'] = PermissionGroupForm(
                function_list, initial=initial)

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #7
0
def edit_form(request, id_vip):
    """
    Method to call edit_form_shared
    """
    auth = AuthSession(request.session)
    client_api = auth.get_clientFactory()
    return facade.edit_form_shared(request, id_vip, client_api)
예제 #8
0
def access_type_form(request):

    lists = dict()

    try:

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        if request.method == 'POST':

            form = TipoAcessoForm(request.POST)
            lists['form'] = form

            if form.is_valid():

                protocolo = form.cleaned_data['nome']

                client.create_tipo_acesso().inserir(protocolo)
                messages.add_message(
                    request, messages.SUCCESS, access_type_messages.get('success_create'))

                lists['form'] = TipoAcessoForm()
        # GET METHOD
        else:
            lists['form'] = TipoAcessoForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #9
0
def insert_vrf(request):
    try:
        lists = {}

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        lists["form_vrf"] = VrfForm()  # TODO Alterar depois de edit pra ""

        if request.method == 'POST':
            # Set data in form
            vrf_form = VrfForm(request.POST)

            # Return data to form in case of error
            lists["form_vrf"] = vrf_form

            # Validate
            if vrf_form.is_valid():
                vrf = vrf_form.cleaned_data["vrf"]
                internal_name = vrf_form.cleaned_data["internal_name"]

                list_vrf = [{
                    "vrf": vrf,
                    "internal_name": internal_name

                }]

                client.create_api_vrf().create(list_vrf)
                messages.add_message(
                    request, messages.SUCCESS, vrf_messages.get("success_insert"))

                return redirect('vrf.list')
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #10
0
def show_form(request):

    try:

        if request.method == "POST":

            # Get user
            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            # Um form com os dados de POST
            form = ScriptTypeForm(request.POST)

            if form.is_valid():
                tipo = form.cleaned_data['script_type']
                descricao = form.cleaned_data['description']
                try:
                    client.create_tipo_roteiro().inserir(tipo, descricao)
                    messages.add_message(
                        request, messages.SUCCESS,
                        script_type_messages.get("success_insert"))

                    return redirect('script.type.list')
                except NomeTipoRoteiroDuplicadoError, e:
                    messages.add_message(
                        request, messages.ERROR,
                        script_type_messages.get("error_equal_name") % tipo)

        else:
예제 #11
0
def ajax_view_real_shared(request, id_equip, lists):

    try:

        lists['equip_id'] = id_equip

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Get reals related
        vips_reals = client.create_equipamento().get_real_related(id_equip)
        lists['vips'] = [vips_reals.get('vips'), ] if type(
            vips_reals.get('vips')) is dict else vips_reals.get('vips')
        lists['equip_name'] = vips_reals.get('equip_name')

        # Returns HTML
        response = HttpResponse(loader.render_to_string(
            EQUIPMENT_VIEW_AJAX, lists, context_instance=RequestContext(request)))
        response.status_code = 200
        return response

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #12
0
def remove_environment(request):

    if request.method == 'POST':

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        ids = request.POST.getlist('ids[]')

        error_not_found = list()
        error_associated = list()
        have_errors = False

        try:
            client.create_api_environment().delete_environment(';'.join(str(id) for id in ids))
        except DetailedEnvironmentError, e:
            # Detailed message for VLAN errors
            logger.error(e)
            have_errors = True
            messages.add_message(request, messages.ERROR, e)
        except AmbienteNaoExisteError, e:
            # Environment doesn't exist.
            logger.error(e)
            have_errors = True
            error_not_found.append(id_env)
예제 #13
0
def search_list(request, id_vlan='0', sf_number='0', sf_name='0', sf_environment='0', sf_nettype='0', sf_subnet='0', sf_ipversion='0', sf_network='0', sf_iexact='0', sf_acl='0'):

    try:

        lists = dict()
        lists["delete_form"] = DeleteForm()

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Get all environments from NetworkAPI
        env_list = client.create_ambiente().list_all()
        # Get all network types from NetworkAPI
        net_list = client.create_tipo_rede().listar()

        lists["search_form"] = SearchVlanForm(env_list, net_list)

        lists['search_var'] = id_vlan
        lists['sf_number'] = sf_number
        lists['sf_name'] = sf_name
        lists['sf_environment'] = sf_environment
        lists['sf_nettype'] = sf_nettype
        lists['sf_subnet'] = sf_subnet
        lists['sf_ipversion'] = sf_ipversion
        lists['sf_network'] = sf_network
        lists['sf_iexact'] = sf_iexact
        lists['sf_acl'] = sf_acl

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #14
0
def healthcheck_expect_form(request):

    lists = dict()

    try:

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()
        ambientes = client.create_ambiente().list_all()

        if request.method == 'POST':

            form = HealthckeckExpectForm(ambientes, request.POST)
            lists['form'] = form

            if form.is_valid():

                match_list = form.cleaned_data['match_list']
                expect_string = form.cleaned_data['expect_string']
                environment_id = form.cleaned_data['environment']

                client.create_ambiente().add_healthcheck_expect(
                    environment_id, expect_string, match_list)
                messages.add_message(
                    request, messages.SUCCESS, healthcheck_messages.get('success_create'))

                lists['form'] = HealthckeckExpectForm(ambientes)

        # GET METHOD
        else:
            lists['form'] = HealthckeckExpectForm(ambientes)

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #15
0
def dissociate_channel_interface(request, channel_id, interface_id):

    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    fields_get = ['id',
                  'protected',
                  'type__details',
                  'native_vlan',
                  'equipment__details',
                  'front_interface__basic',
                  'back_interface',
                  'channel__basic']

    data = dict()
    data["start_record"] = 0
    data["end_record"] = 50
    data["extends_search"] = []
    data["asorting_cols"] = []
    data["searchable_columns"] = ["channel__id"]
    data["custom_search"] = channel_id

    try:
        sw_ids = list()
        interfaces = client.create_api_interface_request().search(search=data, fields=fields_get).get('interfaces')
        interface_obj = interfaces[0]
        for i in interfaces:
            sw_ids.append(int(i.get('id')))
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.WARNING, 'Erro ao buscar o channel de Id %s.' % channel_id)
        url = request.META.get('HTTP_REFERER') if request.META.get('HTTP_REFERER') else reverse('interface.list')
        return HttpResponseRedirect(url)
예제 #16
0
def ajax_view_real_shared(request, id_equip, lists):

    try:

        lists['equip_id'] = id_equip

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Get reals related
        vips_reals = client.create_equipamento().get_real_related(id_equip)
        lists['vips'] = [
            vips_reals.get('vips'),
        ] if type(vips_reals.get('vips')) is dict else vips_reals.get('vips')
        lists['equip_name'] = vips_reals.get('equip_name')

        # Returns HTML
        response = HttpResponse(
            loader.render_to_string(EQUIPMENT_VIEW_AJAX,
                                    lists,
                                    context_instance=RequestContext(request)))
        response.status_code = 200
        return response

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #17
0
def save_pool(request):
    """
    Method to call shared_save_pool
    """
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()
    return facade.shared_save_pool(request, client)
예제 #18
0
def add_form(request):
    """
    Method to call add_form_shared
    """
    auth = AuthSession(request.session)
    client_api = auth.get_clientFactory()
    return facade.add_form_shared(request, client_api)
예제 #19
0
def ajax_popular_environment(request):
    """
    Method to call popular_environment_shared
    """
    auth = AuthSession(request.session)
    client_api = auth.get_clientFactory()
    return facade.popular_environment_shared(request, client_api)
예제 #20
0
def search_list(request):

    try:

        lists = dict()
        lists['delete_form'] = DeleteForm()

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Get all environments from NetworkAPI
        env_list = client.create_ambiente().list_all()
        # Get all equipment types from NetworkAPI
        type_equip_list = client.create_tipo_equipamento().listar()
        # Get all groups from NetworkAPI
        group_list = client.create_grupo_equipamento().listar()

        search_form = SearchEquipmentForm(
            env_list, type_equip_list, group_list)

        lists['search_form'] = search_form

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #21
0
def ajax_modelo_equip(request, id_marca):
    try:

        lists = dict()
        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        marca = int(id_marca)

        if marca > 0:
            modelos = client.create_modelo().listar_por_marca(marca)
            lists['modelos'] = modelos.get('model')

            # Returns HTML
            response = HttpResponse(loader.render_to_string(
                EQUIPMENT_MODELO, lists, context_instance=RequestContext(request)))
            # Send response status with error
            response.status_code = 200
            return response

        else:

            # Returns HTML
            response = HttpResponse(loader.render_to_string(
                EQUIPMENT_MODELO, lists, context_instance=RequestContext(request)))
            # Send response status with error
            response.status_code = 200
            return response

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #22
0
def ajax_autocomplete_equipment(request):

    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    equip_list = dict()

    try:
        data = {
            "start_record": 0,
            "end_record": 30000,
            "asorting_cols": [],
            "searchable_columns": [],
            "custom_search": "",
            "extends_search": []
        }

        equipment = client.create_api_equipment().search(fields=["name"],
                                                         search=data)

        equip_list = cache_equipment_list(equipment.get('equipments'))

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #23
0
def ajax_popular_environment(request):
    """
    Method to call popular_environment_shared
    """
    auth = AuthSession(request.session)
    client_api = auth.get_clientFactory()
    return facade.popular_environment_shared(request, client_api)
예제 #24
0
def search_list(request):

    try:

        lists = dict()
        lists['delete_form'] = DeleteForm()

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Get all environments from NetworkAPI
        env_list = client.create_ambiente().list_all()
        # Get all equipment types from NetworkAPI
        type_equip_list = client.create_tipo_equipamento().listar()
        # Get all groups from NetworkAPI
        group_list = client.create_grupo_equipamento().listar()

        search_form = SearchEquipmentForm(env_list, type_equip_list,
                                          group_list)

        lists['search_form'] = search_form

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #25
0
def add_form(request):
    """
    Method to call add_form_shared
    """
    auth = AuthSession(request.session)
    client_api = auth.get_clientFactory()
    return facade.add_form_shared(request, client_api)
예제 #26
0
def ajax_acl_name_suggest(request):
    lists = dict()
    try:

        nome = request.GET['nome']
        id_ambiente = request.GET['id_ambiente']

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        environment = client.create_ambiente().buscar_por_id(
            id_ambiente).get('ambiente')

        suggest_name = str(
            nome + environment['nome_ambiente_logico']).replace(" ", "")
        lists['suggest_name'] = suggest_name

        # Returns HTML
        response = HttpResponse(loader.render_to_string(
            AJAX_SUGGEST_NAME, lists, context_instance=RequestContext(request)))
        # Send response status with error
        response.status_code = 200
        return response

    except:

        lists['suggest_name'] = ''
        # Returns HTML
        response = HttpResponse(loader.render_to_string(
            AJAX_SUGGEST_NAME, lists, context_instance=RequestContext(request)))
        # Send response status with error
        response.status_code = 200
        return response
예제 #27
0
def save_pool(request):
    """
    Method to call shared_save_pool
    """
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()
    return facade.shared_save_pool(request, client)
예제 #28
0
def list_all(request):

    try:
        filter_list = dict()

        # Get user
        auth = AuthSession(request.session)
        filter_client = auth.get_clientFactory().create_filter()

        # Get all filters from NetworkAPI
        filter_list = filter_client.list_all()

        for filter_ in filter_list['filter']:
            filter_['is_more'] = str(False)

            if filter_.get('equip_types') is not None:
                if type(filter_['equip_types']) is dict:
                    filter_['equip_types'] = [filter_['equip_types']]

                if len(filter_['equip_types']) > 3:
                    filter_['is_more'] = str(True)

        filter_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #29
0
def basic_edit_interface(request, interface=None):

    if request.method == "POST":

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        try:
            interface_obj = client.create_api_interface_request().get(ids=[
                interface])
            interface = interface_obj.get('interfaces')[0]
        except NetworkAPIClientError, e:
            logger.error(e)
            messages.add_message(request, messages.WARNING,
                                 'Erro ao buscar interface id %s.' % interface)

        interface_dict = interface
        interface_dict["interface"] = request.POST.get('sw_interface_name')
        interface_dict["description"] = request.POST.get('sw_int_desc')

        try:
            client.create_api_interface_request().update([interface_dict])
            messages.add_message(request, messages.SUCCESS,
                                 'Interface atualizada com sucesso.')
        except NetworkAPIClientError, e:
            logger.error(e)
            messages.add_message(request, messages.ERROR, e)
예제 #30
0
def dissociate_channel_interface(request, channel_id, interface_id):

    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    fields_get = ['id',
                  'protected',
                  'type__details',
                  'native_vlan',
                  'equipment__details',
                  'front_interface__basic',
                  'back_interface',
                  'channel__basic']

    data = dict()
    data["start_record"] = 0
    data["end_record"] = 50
    data["extends_search"] = []
    data["asorting_cols"] = []
    data["searchable_columns"] = ["channel__id"]
    data["custom_search"] = channel_id

    try:
        sw_ids = list()
        interfaces = client.create_api_interface_request().search(search=data, fields=fields_get).get('interfaces')
        interface_obj = interfaces[0]
        for i in interfaces:
            sw_ids.append(int(i.get('id')))
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.WARNING, 'Erro ao buscar o channel de Id %s.' % channel_id)
        url = request.META.get('HTTP_REFERER') if request.META.get('HTTP_REFERER') else reverse('interface.list')
        return HttpResponseRedirect(url)
예제 #31
0
def edit_interface_post(request, interface=None):

    lists = {}

    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    fields = ['id',
              'equipment__details',
              'front_interface',
              'back_interface']

    equipment_name = ""

    try:
        interface_obj = client.create_api_interface_request().get(
            ids=[interface], fields=fields)
        interfaces = interface_obj.get('interfaces')[0]
        equipment = interfaces.get('equipment')
        equipment_name = equipment.get('name')
        lists["equip_name"] = equipment_name
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.WARNING,
                             'Erro ao buscar interface %s.' % interface)
        return HttpResponseRedirect('/interface/?search_equipment=%s' % equipment_name)
예제 #32
0
def show_form(request):

    try:

        if request.method == "POST":

            # Get user
            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            # Um form com os dados de POST
            form = ScriptTypeForm(request.POST)

            if form.is_valid():
                tipo = form.cleaned_data['script_type']
                descricao = form.cleaned_data['description']
                try:
                    client.create_tipo_roteiro().inserir(
                        tipo, descricao)
                    messages.add_message(
                        request, messages.SUCCESS, script_type_messages.get("success_insert"))

                    return redirect('script.type.list')
                except NomeTipoRoteiroDuplicadoError, e:
                    messages.add_message(
                        request, messages.ERROR, script_type_messages.get("error_equal_name") % tipo)

        else:
예제 #33
0
def add_form(request):

    try:

        if request.method == "POST":

            # Get user
            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            form = OptionVipForm(request.POST)

            if form.is_valid():
                name_option = form.cleaned_data['name_option']
                type_option = form.cleaned_data['type_option']

                try:
                    client.create_option_vip().add(type_option, name_option)
                    messages.add_message(
                        request, messages.SUCCESS, option_vip_messages.get("success_insert"))

                    return redirect('option-vip.list')

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)

        else:
예제 #34
0
def add_form(request):

    try:

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Enviar listas para formar os Selects do formulário
        forms_aux = dict()

        # Get all script_types from NetworkAPI
        forms_aux['tipo_roteiro'] = client.create_tipo_roteiro().listar()
        forms_aux['modelos'] = client.create_modelo().listar().get('model')

        # If form was submited
        if request.method == 'POST':
            form = ScriptForm(forms_aux, request.POST)

            if form.is_valid():
                name = form.cleaned_data['name']
                script_type = form.cleaned_data['script_type']
                modelo = form.cleaned_data['model']
                description = form.cleaned_data['description']

                try:
                    client.create_roteiro().inserir(script_type, name, modelo,
                                                    description)
                    messages.add_message(request, messages.SUCCESS,
                                         script_messages.get("success_insert"))
                    return redirect('script.list')
                except NomeRoteiroDuplicadoError, e:
                    messages.add_message(request, messages.ERROR, e)

        else:
예제 #35
0
def search_list_param(request, id_equip):

    lists = dict()

    try:

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        equip = client.create_equipamento().listar_por_id(id_equip)

        name_equip = equip.get('equipamento').get('nome')

        # recuperando lista de equipamentos de acesso
        equip_access_list = client.create_equipamento_acesso().list_by_equip(
            name_equip)

        access_type = client.create_tipo_acesso().listar()

        lists['form'] = SearchEquipForm(initial={"equip_name": name_equip})

        lists['delete_form'] = DeleteForm(
            initial={"equip_name": name_equip, "equip_id": id_equip})

        equip_access_list = replace_id_to_name(equip_access_list[
                                               "equipamento_acesso"], access_type["tipo_acesso"], "tipo_acesso", "id", "protocolo")

        lists['equip_access_list'] = equip_access_list

        return render_to_response(EQUIPMENTACESS_SEARCH_LIST, lists, context_instance=RequestContext(request))

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #36
0
def add_form(request):

    try:

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        # Enviar listas para formar os Selects do formulário
        forms_aux = dict()

        # Get all script_types from NetworkAPI
        forms_aux['tipo_roteiro'] = client.create_tipo_roteiro().listar()
        forms_aux['modelos'] = client.create_modelo().listar().get('model')

        # If form was submited
        if request.method == 'POST':
            form = ScriptForm(forms_aux, request.POST)

            if form.is_valid():
                name = form.cleaned_data['name']
                script_type = form.cleaned_data['script_type']
                modelo = form.cleaned_data['model']
                description = form.cleaned_data['description']

                try:
                    client.create_roteiro().inserir(script_type, name, modelo, description)
                    messages.add_message(request, messages.SUCCESS, script_messages.get("success_insert"))
                    return redirect('script.list')
                except NomeRoteiroDuplicadoError, e:
                    messages.add_message(request, messages.ERROR, e)

        else:
예제 #37
0
def template_delete(request):

    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

            # Get user
            user = AuthSession(request.session).get_user()

            # All ids to be deleted
            ids = split_to_array(form.cleaned_data['ids'])

            for id in ids:
                id_split = id.split('+')
                template_name = id_split[0]
                template_name = urllib.unquote_plus(str(template_name))
                network = id_split[1]

                if check_template(template_name, network, user):
                    client.create_ambiente().set_template(
                        0, template_name, network)
                    delete_template(template_name, network, user)

            messages.add_message(request, messages.SUCCESS,
                                 acl_messages.get("success_remove"))
        else:
            messages.add_message(request, messages.ERROR,
                                 error_messages.get("select_one"))

    return HttpResponseRedirect(reverse('acl.template.list'))
예제 #38
0
def remove(request, id_vlan, network):
    try:

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        vlan = client.create_vlan().get(id_vlan).get("vlan")
        environment = client.create_ambiente().buscar_por_id(
            vlan.get("ambiente")).get("ambiente")

        key_acl = acl_key(network)

        if vlan.get(key_acl) is None:
            messages.add_message(request, messages.ERROR,
                                 acl_messages.get("error_acl_not_exist"))
            return HttpResponseRedirect(
                reverse('vlan.edit.by.id', args=[id_vlan]))

        if network == NETWORK_TYPES.v4:
            client.create_vlan().invalidate(id_vlan)

        else:
            client.create_vlan().invalidate_ipv6(id_vlan)

        deleteAclGit(vlan.get(key_acl), environment, network,
                     AuthSession(request.session).get_user())

        messages.add_message(request, messages.SUCCESS,
                             acl_messages.get("success_remove"))

    except (NetworkAPIClientError, GITError, ValueError), e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #39
0
def template_list(request):
    try:

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        lists = dict()

        # Get user
        user = AuthSession(request.session).get_user()

        templates = get_templates(user)
        lists['templates'] = list()
        lists["delete_form"] = DeleteForm()

        for template in templates:
            envs = client.create_ambiente().get_environment_template(
                template['name'], template['network'])
            if envs:
                envs = envs['ambiente'] if not isinstance(
                    envs['ambiente'], unicode) else [
                        envs['ambiente'],
                    ]
            lists['templates'].append({
                'name': template['name'],
                'network': template['network'],
                'envs': envs
            })

    except (NetworkAPIClientError, GITError, ValueError), e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #40
0
def script(request, id_vlan, network):

    try:

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        vlan = client.create_vlan().get(id_vlan).get("vlan")
        environment = client.create_ambiente().buscar_por_id(
            vlan.get("ambiente")).get("ambiente")

        key_acl = acl_key(network)

        if vlan.get(key_acl) is None:
            messages.add_message(request, messages.ERROR,
                                 acl_messages.get("error_acl_not_exist"))
            return HttpResponseRedirect(
                reverse('vlan.edit.by.id', args=[id_vlan]))

        if network == NETWORK_TYPES.v4:
            template_name = environment['ipv4_template']
        else:
            template_name = environment['ipv6_template']

        scriptAclGit(vlan.get(key_acl), vlan, environment, network,
                     AuthSession(request.session).get_user(), template_name)

    except (NetworkAPIClientError, GITError, ValueError), e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #41
0
def remove_environment(request):

    if request.method == 'POST':

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        ids = request.POST.getlist('ids[]')

        error_not_found = list()
        error_associated = list()
        have_errors = False

        try:
            client.create_api_environment().delete_environment(';'.join(str(id) for id in ids))
        except DetailedEnvironmentError, e:
            # Detailed message for VLAN errors
            logger.error(e)
            have_errors = True
            messages.add_message(request, messages.ERROR, e)
        except AmbienteNaoExisteError, e:
            # Environment doesn't exist.
            logger.error(e)
            have_errors = True
            error_not_found.append(id_env)
예제 #42
0
def insert_vrf(request):
    try:
        lists = {}

        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        lists["form_vrf"] = VrfForm()  # TODO Alterar depois de edit pra ""

        if request.method == 'POST':
            # Set data in form
            vrf_form = VrfForm(request.POST)

            # Return data to form in case of error
            lists["form_vrf"] = vrf_form

            # Validate
            if vrf_form.is_valid():
                vrf = vrf_form.cleaned_data["vrf"]
                internal_name = vrf_form.cleaned_data["internal_name"]

                list_vrf = [{"vrf": vrf, "internal_name": internal_name}]

                client.create_api_vrf().create(list_vrf)
                messages.add_message(request, messages.SUCCESS,
                                     vrf_messages.get("success_insert"))

                return redirect('vrf.list')
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #43
0
def ajax_ldap_users_by_group(request, ldap_group, id_user):
    try:

        lists = dict()

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        exclude_list = []
        user_list = client.create_usuario().listar().get('usuario')
        for usr in user_list:
            if usr['user_ldap'] is not None and usr['user_ldap'] != '' and usr['id'] != id_user:
                exclude_list.append(usr['user_ldap'])

        ldap_users = Ldap(auth).get_users_group(ldap_group, exclude_list)
        lists['ldap_users'] = ldap_users

        # Returns HTML
        response = HttpResponse(loader.render_to_string(
            AJAX_LDAP_USERS_BY_GROUP, lists, context_instance=RequestContext(request)))
        response.status_code = 200
        return response

    except LDAPError:
        lists[
            'error'] = 'O LDAP não está disponível, não será possível associar o usuário CadVlan a um usuário do LDAP.'

    # Returns HTML
    response = HttpResponse(loader.render_to_string(
        AJAX_LDAP_USERS_BY_GROUP, lists, context_instance=RequestContext(request)))
    # Send response status with error
    response.status_code = 278
    return response
예제 #44
0
def add_form(request):

    try:

        if request.method == "POST":

            # Get user
            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            form = GroupUserForm(request.POST)

            if form.is_valid():
                name = form.cleaned_data['name']
                read = PERMISSION.get(form.cleaned_data['read'])
                write = PERMISSION.get(form.cleaned_data['write'])
                edition = PERMISSION.get(form.cleaned_data['edition'])
                delete = PERMISSION.get(form.cleaned_data['delete'])

                try:
                    client.create_grupo_usuario().inserir(
                        name, read, write, edition, delete)
                    messages.add_message(
                        request, messages.SUCCESS, group_user_messages.get("success_insert"))

                    return redirect('group-user.list')

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)

        else:
예제 #45
0
def ajax_autocomplete_environment(request):
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    env_list = dict()

    try:
        data = {
            "start_record": 0,
            "end_record": 30000,
            "asorting_cols": ["divisao_dc", "ambiente_logico", "grupo_l3"],
            "searchable_columns": [],
            "custom_search": "",
            "extends_search": []
        }

        envs = client.create_api_environment().search(fields=["id", "name"],
                                                      search=data)
        env_list = cache_environment_list(envs.get('environments'))

    except NetworkAPIClientError as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
    except BaseException as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)

    return render_to_response_ajax(templates.AJAX_AUTOCOMPLETE_ENVIRONMENT,
                                   env_list,
                                   context_instance=RequestContext(request))
예제 #46
0
def ajax_autocomplete_environment_l3(request):
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    env_list = dict()

    try:
        data = {
            "start_record": 0,
            "end_record": 1000,
            "asorting_cols": ["nome"],
            "searchable_columns": [],
            "custom_search": "",
            "extends_search": []
        }
        envs = client.create_api_environment_l3().search(search=data)
        #Desativando cache para ambiente físico
        #env_list = cache_environment_l3(envs.get('l3_environments'))

        env_list = dict(list=envs.get('l3_environments'))

    except NetworkAPIClientError as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
    except BaseException as e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)

    return render_to_response_ajax(templates.AJAX_AUTOCOMPLETE_ENVIRONMENT,
                                   env_list,
                                   context_instance=RequestContext(request))
예제 #47
0
def delete_individ_perms_of_object(request):

    try:
        if request.method == 'POST':

            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

            form = DeletePermsForm(request.POST)

            if form.is_valid():

                ids_perms = split_to_array(form.cleaned_data['ids_perms'])

                id_ugroup = form.cleaned_data['id_ugroup']
                id_type_obj = form.cleaned_data['id_type_obj']

                client.create_api_object_group_permission().delete(ids_perms)

                messages.add_message(
                    request, messages.SUCCESS, object_group_perm_messages.
                    get('success_delete'))

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #48
0
def list_all(request):

    try:
        filter_list = dict()

        # Get user
        auth = AuthSession(request.session)
        filter_client = auth.get_clientFactory().create_filter()

        # Get all filters from NetworkAPI
        filter_list = filter_client.list_all()

        for filter_ in filter_list['filter']:
            filter_['is_more'] = str(False)

            if filter_.get('equip_types') is not None:
                if type(filter_['equip_types']) is dict:
                    filter_['equip_types'] = [filter_['equip_types']]

                if len(filter_['equip_types']) > 3:
                    filter_['is_more'] = str(True)

        filter_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #49
0
def edit_right(request, id_egroup, id_right):

    lists = dict()
    lists['id_egroup'] = id_egroup

    try:

        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        user_group = client.create_grupo_usuario().listar()

        if request.method == 'POST':

            form = UserEquipGroupForm(user_group, request.POST)
            lists['ugroup_form'] = form

            if form.is_valid():

                update = convert_boolean_to_int(form.cleaned_data['update'])
                delete = convert_boolean_to_int(form.cleaned_data['delete'])
                read = convert_boolean_to_int(form.cleaned_data['read'])
                write = convert_boolean_to_int(form.cleaned_data['write'])

                client.create_direito_grupo_equipamento().alterar(
                    id_right, read, write, update, delete)
                messages.add_message(request, messages.SUCCESS, equip_group_messages.get(
                    "sucess_group_user_equip_edit"))
                # Redirect to list_all action
                return redirect('equip-group.list', id_egroup, 1)
            else:
                lists['open_form'] = "True"

        # Get Requisition
        else:

            # Get Group Equipament by ID from NetworkAPI
            egroup = client.create_grupo_equipamento().search(
                id_egroup)['group_equipament']

            right = client.create_direito_grupo_equipamento().buscar_por_id(
                id_right).get('direito_grupo_equipamento')
            write = convert_int_to_boolean(right.get('escrita'))
            update = convert_int_to_boolean(right.get('alterar_config'))
            read = convert_int_to_boolean(right.get('leitura'))
            delete = convert_int_to_boolean(right.get('exclusao'))

            lists['ugroup_form'] = UserEquipGroupForm(user_group, initial={"id_egroup": id_egroup,
                                                                           "egroup": egroup.get('nome'),
                                                                           "delete": delete,
                                                                           "update": update,
                                                                           "write": write,
                                                                           "read": read,
                                                                           'ugroup': right.get("id_grupo_usuario")})

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #50
0
def change_password(request):

    lists = dict()

    if request.method == 'GET':

        lists['change_pass_form'] = ChangePassForm()
        return render_to_response_ajax(AJAX_NEW_PASS, lists, context_instance=RequestContext(request))

    if request.method == 'POST':

        change_pass_form = ChangePassForm()

        try:

            change_pass_form = ChangePassForm(request.POST)

            if change_pass_form.is_valid():

                auth = AuthSession(request.session)
                client = auth.get_clientFactory()

                new_password = change_pass_form.cleaned_data['new_pass']
                user = auth.get_user()
                user_id = user.get_id()
                user_current_password = user.get_password()

                client.create_usuario().change_password(
                    user_id, user_current_password, new_password)
                user.set_password(new_password)

                messages.add_message(
                    request, messages.SUCCESS, auth_messages.get("pass_change_sucess"))

                # Returns HTML
                response = HttpResponse(loader.render_to_string(
                    AJAX_NEW_PASS, lists, context_instance=RequestContext(request)))
                # Send response status with error
                response.status_code = 200
                return response

            else:

                lists['change_pass_form'] = change_pass_form
                # Returns HTML
                response = HttpResponse(loader.render_to_string(
                    AJAX_NEW_PASS, lists, context_instance=RequestContext(request)))
                # Send response status with error
                response.status_code = 412
                return response

        except NetworkAPIClientError, e:
            logger.error(e)
            messages.add_message(request, messages.ERROR, e)

            lists['change_pass_form'] = change_pass_form
            return render_to_response_ajax(AJAX_NEW_PASS, lists, context_instance=RequestContext(request))
예제 #51
0
def disconnect_interfaces(request, interface_a=None, interface_b=None):
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    try:
        client.create_api_interface_request().disconnecting_interfaces([interface_a, interface_b])
        messages.add_message(request, messages.SUCCESS, 'Conexão removida.')
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #52
0
def delete_channel(request, channel_id=None):
    auth = AuthSession(request.session)
    client = auth.get_clientFactory()

    try:
        client.create_api_interface_request().remove_channel([channel_id])
        messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove_channel"))
    except ValueError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #53
0
def disconnect(request, id_interface, back_or_front, equip_name, id_interf_edit):

    try:
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()
        client.create_api_interface_request().remove_connection(id_interface, back_or_front)
        messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_disconnect"))
    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #54
0
def ajax_view_env(request, env_id):
    try:
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()

        lists = dict()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)