예제 #1
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'))
예제 #2
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)
예제 #3
0
def channel(request):

    if request.method == 'POST':

        form = ChannelForm(request.POST)
        equip_nam = request.POST['equip_name']

        if form.is_valid():
            ids = split_to_array(form.cleaned_data['ids_channel'])

            interfaces_ids = ""
            for id_interface in ids:
                interfaces_ids = interfaces_ids + "-" + str(id_interface)

            url_param = reverse("equip.interface.add.channel", args=[equip_nam])
            url_param = url_param + "/?ids=" + interfaces_ids + "?" + equip_nam
            return HttpResponseRedirect(url_param)
        else:
            messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
            url_param = reverse("interface.list")
            if len(equip_nam) > 2:
                url_param = url_param + "?search_equipment=" + equip_nam
            return HttpResponseRedirect(url_param)

    return redirect("home")
예제 #4
0
def delete_sudoer_all(request):

    if request.method == 'POST':

        ldap = Ldap(AuthSession(request.session).get_user().get_username())
        form = DeleteForm(request.POST)

        if form.is_valid():

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each sudoer selected to remove
            for cn in cns:

                try:

                    ldap.rem_sudoer(cn)

                except LDAPNotFoundError, e:
                    error_list.append(cn)
                    have_errors = True

                except LDAPError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(cns):
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, ldap_messages.get("success_remove_sudoer"))

            else:
                messages.add_message(
                    request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
예제 #5
0
def delete_validate_create_remove(request, operation):

    operation_text = OPERATION.get(int(operation))

    if request.method == 'POST':

        form = DeleteForm(request.POST) if operation_text == 'DELETE'\
            else CreateForm(request.POST) if operation_text == 'CREATE'\
            else RemoveForm(request.POST)

        id = 'ids' if operation_text == 'DELETE' else 'ids_create'\
            if operation_text == 'CREATE' else 'ids_remove'

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()
            error_list_created = list()
            error_list_not_validate = list()

            # Control others exceptions
            have_errors = False

            # FLAG only for  ERROR  in create
            all_ready_msg_script_error = False

            # For each script selected to remove
            try:
                if operation_text == 'DELETE':
                    client_api_vip.delete_vip_request(vip_id)
                elif operation_text == 'REMOVE':
                    client_api_vip.remove_vip(vip_id)
                elif operation_text == 'CREATE':
                    client_api_vip.create_vip(vip_id)

            except VipAllreadyCreateError, e:
                logger.error(e)
                error_list_created.append(vip_id)
            except VipError, e:
                logger.error(e)
                error_list_not_validate.append(vip_id)
            except ScriptError, e:
                logger.error(e)
                if not all_ready_msg_script_error:
                    messages.add_message(request, messages.ERROR, e)
                all_ready_msg_script_error = True
                error_list.append(vip_id)
예제 #6
0
def delete_validate_create_remove(request, operation):

    operation_text = OPERATION.get(int(operation))

    if request.method == 'POST':

        form = DeleteForm(request.POST) if operation_text == 'DELETE'\
            else CreateForm(request.POST) if operation_text == 'CREATE'\
            else RemoveForm(request.POST)

        id = 'ids' if operation_text == 'DELETE' else 'ids_create'\
            if operation_text == 'CREATE' else 'ids_remove'

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()
            error_list_created = list()
            error_list_not_validate = list()

            # Control others exceptions
            have_errors = False

            # FLAG only for  ERROR  in create
            all_ready_msg_script_error = False

            # For each script selected to remove
            try:
                if operation_text == 'DELETE':
                    client_api_vip.delete_vip_request(vip_id)
                elif operation_text == 'REMOVE':
                    client_api_vip.remove_vip(vip_id)
                elif operation_text == 'CREATE':
                    client_api_vip.create_vip(vip_id)

            except VipAllreadyCreateError, e:
                logger.error(e)
                error_list_created.append(vip_id)
            except VipError, e:
                logger.error(e)
                error_list_not_validate.append(vip_id)
            except ScriptError, e:
                logger.error(e)
                if not all_ready_msg_script_error:
                    messages.add_message(request, messages.ERROR, e)
                all_ready_msg_script_error = True
                error_list.append(vip_id)
예제 #7
0
def delete_all(request):

    equip_nam = request.POST['equip_name']

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # Control others exceptions
            have_errors = False

            # For each script selected to remove
            for id_es in ids:
                try:

                    # Execute in NetworkAPI
                    equip_script.remover(equipment, id_es)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If all has ben removed
            if have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS,
                    equip_script_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.WARNING,
                    error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(request, messages.ERROR,
                                 error_messages.get("select_one"))
예제 #8
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():
            auth = AuthSession(request.session)
            client = auth.get_clientFactory()

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

            error_list = list()
            have_errors = False

            for id_var in ids:
                try:
                    client.create_system().delete_all(id_var)
                except VariableError:
                    error_list.append(id_var)
                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            if len(error_list) == len(ids):
                messages.add_message(request, messages.ERROR,
                                     error_messages.get("can_not_remove_all"))
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "
                msg = error_messages.get("can_not_remove") % msg[:-2]
                messages.add_message(request, messages.WARNING, msg)
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS,
                    system_variable_messages.get("success_delete"))
            else:
                messages.add_message(
                    request, messages.SUCCESS,
                    error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(request, messages.ERROR,
                                 error_messages.get("select_one"))
예제 #9
0
def delete_all(request):

    equip_nam = request.POST['equip_name']

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # Control others exceptions
            have_errors = False

            # For each interface selected
            for id_es in ids:
                try:
                    # Remove in NetworkAPI
                    equip_interface.remover(id_es)
                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If all has ben removed
            if have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, equip_interface_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.WARNING, error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
예제 #10
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            delete_equipments_shared(request, client_equip, ids)
        else:
            messages.add_message(
                request, messages.ERROR, error_messages.get('select_one'))

    # Redirect to list_all action
    return redirect('equipment.search.list')
예제 #11
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            delete_equipments_shared(request, client_equip, ids)
        else:
            messages.add_message(request, messages.ERROR,
                                 error_messages.get('select_one'))

    # Redirect to list_all action
    return redirect('equipment.search.list')
예제 #12
0
def channel_delete(request):

    equip_nam = request.POST['equip_name']

    if request.method == 'POST':

        form = DeleteChannelForm(request.POST)

        if form.is_valid():

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

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

            # Control others exceptions
            have_errors = False

            for idt in ids:
                try:
                    client.create_interface().delete_channel(idt)
                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True

            if have_errors == False:
                messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove_channel"))

            else:
                messages.add_message(request, messages.WARNING, error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
예제 #13
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each user selected to remove
            for id_user in ids:
                try:

                    # Execute in NetworkAPI
                    user = client_user.get_by_id(id_user).get('usuario')
                    client_user.alterar(user.get("id"), user.get("user"), user.get(
                        "pwd"), user.get('nome'), 0, user.get('email'), user.get('user_ldap'))

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(ids):
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, user_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(
                request, messages.ERROR, error_messages.get("select_one"))
예제 #14
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each script selected to remove
            for id_script in ids:
                try:

                    # Execute in NetworkAPI
                    roteiro.remover(id_script)

                except RoteiroError, e:
                    # If isnt possible, add in error list
                    error_list.append(id_script)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(ids):
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, script_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
예제 #15
0
def delete(request):

    try:

        if request.method == 'POST':

            form = DeleteForm(request.POST)

            id_equip = request.POST['equip_id']

            flag = False

            if form.is_valid():

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

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

                # All messages to display
                error_list = list()

                # Control others exceptions
                have_errors = False

                # return with list with equip
                # For each script selected to remove
                for id_equip_access in ids:
                    try:

                        # Execute in NetworkAPI
                        equip_access = equipamento_acesso.get_access(
                            id_equip_access)
                        equip_access = equip_access.get('equipamento_acesso')
                        equipamento_acesso.remover(
                            equip_access.get('tipo_acesso'), id_equip)

                    except EquipamentoError, e:
                        # If isnt possible, add in error list
                        error_list.append(id_equip_access)

                    except NetworkAPIClientError, e:
                        logger.error(e)
                        messages.add_message(request, messages.ERROR, e)
                        have_errors = True
                        break

                    # If cant remove nothing
                    if len(error_list) == len(ids):
                        messages.add_message(
                            request, messages.ERROR, error_messages.get("can_not_remove_all"))

                        # If cant remove someones
                    elif len(error_list) > 0:
                        msg = ""
                        for id_error in error_list:
                            msg = msg + id_error + ", "

                            msg = error_messages.get(
                                "can_not_remove") % msg[:-2]

                            messages.add_message(
                                request, messages.WARNING, msg)

                    # If all has ben removed
                    elif have_errors == False:
                        if not flag:
                            flag = True
                            messages.add_message(
                                request, messages.SUCCESS, equip_access_messages.get("success_remove"))
                    else:
                        messages.add_message(
                            request, messages.ERROR, error_messages.get("select_one"))
예제 #16
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each user selected to remove
            for id_user in ids:
                try:

                    # Execute in NetworkAPI
                    user = client_user.get_by_id(id_user).get('usuario')
                    client_user.alterar(user.get("id"), user.get("user"),
                                        user.get("pwd"), user.get('nome'), 0,
                                        user.get('email'),
                                        user.get('user_ldap'))

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(ids):
                messages.add_message(request, messages.ERROR,
                                     error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(request, messages.SUCCESS,
                                     user_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.ERROR,
                    error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(request, messages.ERROR,
                                 error_messages.get("select_one"))
예제 #17
0
def delete_perm(request, id_ugroup):

    if request.method == 'POST':

        form = DeleteFormAux(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each perms selected to remove
            for id_perm in ids:
                try:

                    # Execute in NetworkAPI
                    client_perm.remover(id_perm)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(ids):
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors is False:
                messages.add_message(
                    request, messages.SUCCESS, perm_group_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.SUCCESS, error_messages.get("can_not_remove_error"))

        else:
            messages.add_message(
                request, messages.ERROR, error_messages.get("select_one"))
예제 #18
0
def delete_all(request, id_egroup):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each equipment selected to remove
            for id_equip in ids:
                try:

                    # Execute in NetworkAPI
                    client_equipament.remover_grupo(id_equip, id_egroup)

                except EquipmentDontRemoveError, e:
                    # If isn't possible, add in error list
                    error_list.append(id_equip)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If can't remove some
            if len(error_list) > 0:

                list_equipment = cache_list_equipment_all(client_equipament)

                msg = ""
                for id_error in error_list:

                    for equip in list_equipment:

                        if equip['id'] == id_error:
                            msg = msg + equip['nome'] + ", "
                            break

                msg = equip_group_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all have been removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, equip_group_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
예제 #19
0
def delete_all(request):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each script selected to remove
            for id_script in ids:
                try:

                    # Execute in NetworkAPI
                    roteiro.remover(id_script)

                except RoteiroError, e:
                    # If isnt possible, add in error list
                    error_list.append(id_script)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(ids):
                messages.add_message(request, messages.ERROR,
                                     error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(request, messages.SUCCESS,
                                     script_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.SUCCESS,
                    error_messages.get("can_not_remove_error"))
예제 #20
0
def delete_user_all(request, pattern):

    if request.method == 'POST':

        ldap = Ldap(AuthSession(request.session).get_user().get_username())
        form = DeleteForm(request.POST)

        if form.is_valid():

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each user selected to remove
            for cn in cns:

                try:

                    ldap.rem_user(cn)

                    client_user = AuthSession(
                        request.session).get_clientFactory().create_usuario()

                    try:
                        local_user = client_user.get_by_user_ldap(cn)
                        local_user = local_user['usuario']
                        client_user.alterar(local_user['id'], local_user['user'], local_user[
                                            'pwd'], local_user['nome'], local_user['ativo'], local_user['email'], None)
                    except UsuarioNaoExisteError:
                        pass

                except LDAPMethodError, e:
                    error_list.append(cn)
                    have_errors = True

                except LDAPError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If cant remove nothing
            if len(error_list) == len(cns):
                messages.add_message(
                    request, messages.ERROR, error_messages.get("can_not_remove_all"))

            # If cant remove someones
            elif len(error_list) > 0:
                msg = ""
                for id_error in error_list:
                    msg = msg + id_error + ", "

                msg = error_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all has ben removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS, ldap_messages.get("success_remove_user"))

            else:
                messages.add_message(
                    request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
예제 #21
0
def delete_all(request, 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'):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each vlan selected to remove
            for id_vlan in ids:
                try:

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

                    # Execute in NetworkAPI
                    client_vlan.deallocate(id_vlan)

                    # commenting code to remove acl files - issue #40
                    # key_acl_v4 = acl_key(NETWORK_TYPES.v4)
                    # key_acl_v6 = acl_key(NETWORK_TYPES.v6)
                    # user = AuthSession(request.session).get_user()

                    # try:
                    #     if vlan.get(key_acl_v4) is not None:
                    #         if checkAclGit(vlan.get(key_acl_v4), environment, NETWORK_TYPES.v4, user):
                    #             deleteAclGit(
                    #                 vlan.get(key_acl_v4), environment, NETWORK_TYPES.v4, user)

                    #     if vlan.get(key_acl_v6) is not None:
                    #         if checkAclGit(vlan.get(key_acl_v6), environment, NETWORK_TYPES.v6, user):
                    #             deleteAclGit(
                    #                 vlan.get(key_acl_v6), environment, NETWORK_TYPES.v6, user)

                    # except GITError, e:
                    #     messages.add_message(
                    #         request, messages.WARNING, vlan_messages.get("vlan_git_error"))

                except VipIpError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    error_list.append(id_vlan)
                    have_errors = True

                except VlanError, e:
                    error_list.append(id_vlan)
                    have_errors = True

                except NetworkAPIClientError, e:
                    logger.error(e)
                    error_list.append(id_vlan)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
예제 #22
0
def rule_remove(request, id_env):

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

    try:
        if request.method == "POST":
            form = DeleteForm(request.POST)

            if form.is_valid():

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

                # All messages to display
                error_list = list()

                # Control others exceptions
                have_errors = False

                # For each script selected to remove
                for id_rule in ids:

                    try:
                        # Execute in NetworkAPI
                        client.create_ambiente().delete_rule(id_rule)

                    except NetworkAPIClientError, e:
                        logger.error(e)
                        have_errors = True
                        break

                # If cant remove nothing
                if len(error_list) == len(ids):
                    messages.add_message(
                        request, messages.ERROR, error_messages.get("can_not_remove_all"))

                # If cant remove someones
                elif len(error_list) > 0:
                    msg = ""
                    for id_error in error_list:
                        msg = msg + id_error + ", "

                    msg = error_messages.get("can_not_remove") % msg[:-2]

                    messages.add_message(request, messages.WARNING, msg)

                # If all has ben removed
                elif have_errors == False:
                    messages.add_message(
                        request, messages.SUCCESS, rule_messages.get("success_remove"))

                else:
                    messages.add_message(
                        request, messages.ERROR, error_messages.get("can_not_remove_error"))

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

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
예제 #23
0
def delete_all_network(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'):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # Control others exceptions
            have_errors = False
            error_list = list()

            # For each networks selected to remove
            for value in ids:
                try:

                    var = split_to_array(value, sep='-')

                    id_network = var[0]
                    network = var[1]

                    # Execute in NetworkAPI
                    if network == NETWORK_TYPES.v4:
                        client_network.deallocate_network_ipv4(id_network)

                    else:
                        client_network.deallocate_network_ipv6(id_network)

                except VipIpError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    error_list.append(id_network)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    error_list.append(id_network)

            # If all has ben removed
            if have_errors is False:
                messages.add_message(
                    request, messages.SUCCESS, vlan_messages.get("success_remove_network"))

            else:
                if len(ids) == len(error_list):
                    messages.add_message(
                        request, messages.ERROR, error_messages.get("can_not_remove_error"))
                else:
                    msg = ""
                    for id_error in error_list:
                        msg = msg + id_error + ", "
                    msg = error_messages.get("can_not_remove") % msg[:-2]
                    messages.add_message(request, messages.WARNING, msg)
예제 #24
0
def create_network(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'):
    """ Set column 'active = 1' in tables  """
    try:
        if request.method == 'POST':

            form = CreateForm(request.POST)

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

            networks_activated = False
            networks_was_activated = True

            equipments_ipv4 = list()
            equipments_ipv6 = list()

            if form.is_valid():

                # If vlan with parameter id_vlan  don't exist,
                # VlanNaoExisteError exception will be called
                vlan = client.create_vlan().get(id_vlan)

                environment = client.create_ambiente().buscar_por_id(
                    vlan['vlan']["ambiente"]).get("ambiente")

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

                for id in ids:
                    value = id.split('-')
                    id_net = value[0]
                    network_type = value[1]

                    if network_type == 'v4':
                        net = client.create_network().get_network_ipv4(id_net)
                    else:
                        net = client.create_network().get_network_ipv6(id_net)

                    if net['network']['active'] == 'True':
                        networks_activated = True
                    else:
                        networks_was_activated = False

                    if network_type == 'v4':
                        equipments_ipv4.extend(
                            list_equipment_by_network_ip4(client, id_net))

                        client.create_api_network_ipv4().deploy(id_net)
                    else:
                        equipments_ipv6.extend(
                            list_equipment_by_network_ip6(client, id_net))

                        client.create_api_network_ipv6().deploy(id_net)

                apply_acl_for_network_v4(
                    request, client, equipments_ipv4, vlan, environment)

                apply_acl_for_network_v6(
                    request, client, equipments_ipv6, vlan, environment)

                if networks_activated is True:
                    messages.add_message(
                        request, messages.ERROR, network_ip_messages.get("networks_activated"))

                if networks_was_activated is False:
                    messages.add_message(
                        request, messages.SUCCESS, network_ip_messages.get("net_create_success"))

            else:
                vlan = client.create_vlan().get(id_vlan)
                if vlan['vlan']['ativada'] == 'True':
                    messages.add_message(
                        request, messages.ERROR, error_messages.get("vlan_select_one"))
                else:
                    messages.add_message(
                        request, messages.ERROR, error_messages.get("select_one"))

    except VlanNaoExisteError, e:
        logger.error(e)
        return redirect('vlan.search.list')
예제 #25
0
def apply_acl(request, id_vlan, network):

    lists = dict()
    lists['id_vlan'] = id_vlan
    lists['form'] = DeleteForm()

    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]))

        lists['vlan'] = vlan
        lists['environment'] = "%s - %s - %s" % (
            environment.get("nome_divisao"),
            environment.get("nome_ambiente_logico"),
            environment.get("nome_grupo_l3"))

        # Type Network
        lists['network'] = network

        if request.method == "POST":

            form = DeleteForm(request.POST)

            if form.is_valid():

                client_equip = client.create_equipamento()

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

                equipments = []

                for _id in ids:

                    try:

                        equip = client_equip.listar_por_id(_id)

                        equipments.append(equip)

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

                if equipments is not None and equipments != "":

                    #is_apply, result = applyAcl(equipments, vlan, environment, network, AuthSession(request.session).get_user())
                    apply_result = client.create_vlan().apply_acl(
                        equipments, vlan, environment, network)

                    is_apply = apply_result.get('is_apply')
                    result = apply_result.get('result')
                    if is_apply == '0':

                        lists['result'] = result

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

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

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

        list_equipments = []
        if len(vlan["redeipv4"]) > 0 and network == NETWORK_TYPES.v4:

            for net in vlan["redeipv4"]:

                try:

                    ips = client.create_ip().find_ip4_by_network(
                        net["id"]).get('ips')

                    for ip in ips:
                        equipment = {}
                        equipment["description"] = ip["descricao"]
                        equipment["ip"] = "%s.%s.%s.%s" % (
                            ip["oct1"], ip["oct2"], ip["oct3"], ip["oct4"])
                        equips = validates_dict(ip, "equipamento")

                        for equip in equips:
                            equipment_base = clone(equipment)
                            equipment_base["id"] = equip["id"]
                            equipment_base["name"] = equip["nome"]
                            list_equipments.append(equipment_base)

                except (NetworkAPIClientError, Exception), e:
                    pass
예제 #26
0
def delete_all(request, id_egroup):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

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

            # All messages to display
            error_list = list()

            # Control others exceptions
            have_errors = False

            # For each equipment selected to remove
            for id_equip in ids:
                try:

                    # Execute in NetworkAPI
                    client_equipament.remover_grupo(id_equip, id_egroup)

                except EquipmentDontRemoveError, e:
                    # If isn't possible, add in error list
                    error_list.append(id_equip)

                except NetworkAPIClientError, e:
                    logger.error(e)
                    messages.add_message(request, messages.ERROR, e)
                    have_errors = True
                    break

            # If can't remove some
            if len(error_list) > 0:

                list_equipment = cache_list_equipment_all(client_equipament)

                msg = ""
                for id_error in error_list:

                    for equip in list_equipment:

                        if equip['id'] == id_error:
                            msg = msg + equip['nome'] + ", "
                            break

                msg = equip_group_messages.get("can_not_remove") % msg[:-2]

                messages.add_message(request, messages.WARNING, msg)

            # If all have been removed
            elif have_errors == False:
                messages.add_message(
                    request, messages.SUCCESS,
                    equip_group_messages.get("success_remove"))

            else:
                messages.add_message(
                    request, messages.SUCCESS,
                    error_messages.get("can_not_remove_error"))