Esempio n. 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'))
Esempio n. 2
0
def search_list(request):

    try:

        lists = dict()
        lists['search_form'] = SearchEquipForm()
        lists['del_form'] = DeleteForm()

        if request.method == "GET":

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

            # Get all script_types from NetworkAPI
            script_list = client.create_roteiro().listar()

            lists['add_form'] = AssociateScriptForm(script_list)

            if request.GET.__contains__('equip_name'):
                lists['search_form'] = search_form = SearchEquipForm(
                    request.GET)

                if search_form.is_valid():

                    # Get equip name in form
                    name_equip = search_form.cleaned_data['equip_name']

                    # Get all equipment scripts from NetworkAPI
                    equip_script_list = client.create_equipamento_roteiro(
                    ).list_by_equip(name_equip)

                    # Set equipment id
                    equipment = equip_script_list['equipamento']

                    init_map = {
                        'equip_name': equipment['name'],
                        'equip_id': equipment['id']
                    }

                    # New form
                    add_form = AssociateScriptForm(script_list,
                                                   initial=init_map)
                    del_form = DeleteForm(initial=init_map)

                    # Send to template
                    lists['del_form'] = del_form
                    lists['add_form'] = add_form
                    lists['search_form'] = search_form

                    try:
                        lists['equip_script'] = equip_script_list[
                            'equipamento_roteiro']
                    except KeyError:
                        lists['equip_script'] = []

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 3
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"))
Esempio n. 4
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)
Esempio n. 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)
Esempio n. 6
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"))
Esempio n. 7
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)
Esempio n. 8
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)
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)
Esempio n. 10
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"))
Esempio n. 11
0
def list_all(request):
    try:

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

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

        column_index_name_map = {
            0: '',
            1: 'id',
            2: 'divisao_dc__nome',
            3: 'vrf',
            4: 'dcroom__dc__dcname',
            5: ''
        }

        dtp = DataTablePaginator(request, column_index_name_map)

        dtp.build_server_side_list()

        dtp.searchable_columns = [
            'grupo_l3__nome', 'ambiente_logico__nome', 'divisao_dc__nome',
            'vrf', 'dcroom__dc__dcname', 'dcroom__name'
        ]

        dtp.end_record = 10000

        pagination = Pagination(dtp.start_record, dtp.end_record,
                                dtp.asorting_cols, dtp.searchable_columns,
                                dtp.custom_search)

        extends_search = dict()
        extends_search["father_environment__isnull"] = True

        data = dict()
        data["start_record"] = pagination.start_record
        data["end_record"] = pagination.end_record
        data["asorting_cols"] = [
            'divisao_dc__nome', 'ambiente_logico__nome', 'grupo_l3__nome'
        ]
        data["searchable_columns"] = pagination.searchable_columns
        data["custom_search"] = pagination.custom_search or ""
        data["extends_search"] = [extends_search] if extends_search else []

        environment = client.create_api_environment().search(fields=[
            'id', 'children__basic', 'vrf', 'name', 'configs__details',
            'dcroom__details'
        ],
                                                             search=data)

        lists['envs'] = json.dumps(environment.get("environments"))

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 12
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"))
Esempio n. 13
0
def search_list(request):
    try:
        lists = dict()
        lists["delete_form"] = DeleteForm()
        lists["create_form"] = CreateForm()
        lists["remove_form"] = RemoveForm()
        lists["search_form"] = forms.SearchVipRequestForm()
        lists['modal'] = 'false'

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 14
0
def list_all_sudoer(request):
    try:

        lists = dict()
        ldap = Ldap(AuthSession(request.session).get_user().get_username())

        lists['sudoers'] = get_sudoers(ldap)
        lists['form'] = DeleteForm()

    except LDAPError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 15
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')
Esempio n. 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_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')
Esempio n. 17
0
def load_list(request, lists, id_egroup, tab):

    try:

        equipament_list = lists

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

        equipament_list['equipments'] = validates_dict(
            client.create_equipamento().list_by_group(id_egroup), 'equipments')
        equipament_list['form'] = DeleteForm()
        equipament_list['egroup'] = client.create_grupo_equipamento().search(
            id_egroup)['group_equipament']
        equipament_list['tab'] = '0' if tab == '0' else '1'

        group_equipment_perm = client.create_direito_grupo_equipamento(
        ).listar_por_grupo_equipamento(id_egroup).get(
            "direito_grupo_equipamento")
        equipament_list['ugroups'] = group_equipment_perm
        equipament_list['form_ugroup'] = DeleteFormAux()

        if not 'ugroup_form' in equipament_list:
            ugroups = client.create_grupo_usuario().listar()
            egroup = client.create_grupo_equipamento().search(
                id_egroup)['group_equipament']
            equipament_list['ugroup_form'] = UserEquipGroupForm(
                ugroups,
                initial={
                    "id_egroup": id_egroup,
                    "egroup": egroup.get('nome')
                })

        if not 'url_form' in equipament_list:
            lists['url_form'] = reverse("equip-user-group.form",
                                        args=[id_egroup])

        if not 'open_form' in equipament_list:
            lists['open_form'] = 'False'

        if not 'url_edit' in equipament_list:
            lists['edit'] = 'False'
        else:
            lists['edit'] = 'True'

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 18
0
def list_variables(request):

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

        lists = dict()

        if request.method == 'GET':
            lists['variables'] = list_all_variables(client)
            lists['delete_form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 19
0
def list_all(request):

    try:

        script_type_list = dict()

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

        # Get all script_types from NetworkAPI
        script_type_list = client.create_tipo_roteiro().listar()
        script_type_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 20
0
def list_all(request):

    try:

        egroup_list = dict()

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

        # Get all  Group Equipament from NetworkAPI
        egroup_list = client.create_grupo_equipamento().listar()
        egroup_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 21
0
def tab_pools(request, id_vip):

    lists = dict()
    lists['idt'] = id_vip
    lists['status_form'] = DeleteForm()

    try:
        auth = AuthSession(request.session)
        client_api = auth.get_clientFactory()

        vip = client_api.create_api_vip_request().get(
            ids=[id_vip], kind='details')['vips'][0]
        lists['vip'] = vip

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 22
0
def list_all(request):

    try:

        option_vip_list = dict()

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

        # Get all option vips from NetworkAPI
        option_vip_list = client.create_option_vip().get_all()
        option_vip_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 23
0
def list_all(request):

    try:

        lists = dict()

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

        # Get all user groups from NetworkAPI
        user_groups = client.create_grupo_usuario().listar()
        lists['form'] = DeleteForm()
        lists['grupos'] = user_groups.get("user_group")

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 24
0
def list_all(request):

    try:

        environment_vip_list = dict()

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

        # Get all environment vips from NetworkAPI
        environment_vip_list = client.create_environment_vip().list_all()

        for environment_vip in environment_vip_list.get("environment_vip"):
            environment_vip['is_more'] = str(False)
            option_vip = client.create_option_vip().get_option_vip(
                environment_vip['id'])
            if option_vip is not None:

                ovip = []

                if type(option_vip.get('option_vip')) is dict:
                    option_vip['option_vip'] = [option_vip['option_vip']]

                for option in option_vip['option_vip']:
                    ovip.append(option.get('nome_opcao_txt'))

                if len(ovip) > 3:
                    environment_vip['is_more'] = str(True)

                environment_vip['option_vip'] = ovip

        environment_vip_list['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 25
0
def list_all(request):

    try:

        lists = dict()

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

        # Get all scripts from NetworkAPI
        script_list = client.create_roteiro().listar()
        # Get all script_types from NetworkAPI
        script_type_list = client.create_tipo_roteiro().listar()

        # Business
        lists['scripts'] = replace_id_to_name(script_list["script"],
                                              script_type_list["script_type"],
                                              "tipo_roteiro", "id", "tipo")
        lists['form'] = DeleteForm()

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 26
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)
Esempio n. 27
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"))
Esempio n. 28
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"))
Esempio n. 29
0
def list_all(request, id_user, status):

    lists = dict()
    edit = False if id_user == "0" else True
    lists['open_form'] = "True" if edit or status == "1" else "False"
    lists['edit'] = str(edit)
    lists['id_user'] = id_user
    lists['action_new_users'] = reverse("user.form", args=[0, 0])

    try:
        # Get user
        auth = AuthSession(request.session)
        client = auth.get_clientFactory()
        # Get all users from NetworkAPI

        try:
            ldap_groups_ = get_groups(Ldap(auth))
            ldap_groups = [(ldap_grp['gidNumber'], ldap_grp['cn'])
                           for ldap_grp in ldap_groups_]
            ldap_up = True
        except LDAPError:
            messages.add_message(request, messages.ERROR,
                                 user_messages.get("ldap_offline"))
            ldap_up = False
            ldap_groups_ = None
            ldap_groups = None

        lists['ldap_up'] = ldap_up

        groups = client.create_grupo_usuario().listar()
        lists['ldap_groups'] = ldap_groups_
        lists['form'] = DeleteForm()
        lists['form_user'], lists['action'] = create_form_user(
            id_user, auth, groups, edit, ldap_groups)

        if request.method == 'POST':

            try:
                ldap_grp = int(request.POST['ldap_group'])
            except:
                ldap_grp = 0

            if ldap_grp > 0 and ldap_up:
                list_users_ldap = Ldap(auth).get_users_group(ldap_grp)
            else:
                list_users_ldap = None

            form = UserForm(groups, ldap_groups, list_users_ldap, request.POST)
            lists['form_user'] = form

            if form.is_valid():

                if edit:

                    edit_user(form, client, id_user)
                    messages.add_message(request, messages.SUCCESS,
                                         user_messages.get("success_edit"))

                else:

                    save_user(form, client)
                    messages.add_message(request, messages.SUCCESS,
                                         user_messages.get("success_insert"))

                lists['form_user'], lists['action'] = create_form_user(
                    0, auth, groups, False, ldap_groups)
                lists['open_form'] = "False"

            else:
                lists['open_form'] = 'True'

        lists['users'] = list_user(client)

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 30
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"))
Esempio n. 31
0
def load_list(request, lists, id_ugroup, tab):

    try:

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

        data_search = {
            'start_record': 0,
            'end_record': 25,
            'asorting_cols': [],
            'searchable_columns': [],
            'extends_search': [{
                'user_group': id_ugroup

            }]
        }
        kind = ['details']
        fields = ['id', 'read', 'write', 'change_config', 'delete',
                  'user_group', 'object_type__details']
        lists['object_perms'] = client.\
            create_api_object_group_permission_general().\
            search(search=data_search, kind=kind, fields=fields)['ogpgs']

        fields = ['id', 'name']

        ots = map(lambda x: x['object_type'], lists['object_perms'])

        ots_all = client.create_api_object_type().search(fields=fields)['ots']

        for ot in ots_all:
            if ot not in ots:
                perm_fake = {'change_config': False, 'read': False, 'write': False,
                             'user_group': False, 'delete': False}
                perm_fake['object_type'] = ot
                perm_fake['id'] = ot['id']
                lists['object_perms'].append(perm_fake)

        lists['users'] = validates_dict(
            client.create_usuario().list_by_group(id_ugroup), 'users')

        if 'ugroup' not in lists:
            lists['ugroup'] = client.create_grupo_usuario().search(
                id_ugroup).get('user_group')

        if 'form_users' not in lists:
            lists['form_users'] = UserGroupForm(
                client.create_usuario().list_by_group_out(id_ugroup))

        lists['perms'] = validates_dict(
            client.create_permissao_administrativa().list_by_group(id_ugroup),
            'perms')

        if 'form_perms' not in lists:
            function_list = validates_dict(
                client.create_permission().list_all(), 'perms')
            lists['form_perms'] = PermissionGroupForm(function_list)

        if 'action_edit_perms' not in lists:
            lists['action_edit_perms'] = reverse(
                "user-group-perm.form", args=[id_ugroup])

        lists['form'] = DeleteForm()
        lists['form_aux'] = DeleteFormAux()
        lists['tab'] = '0' if tab == '0' else '1' if tab == '1' else '2'

        lists['action_new_users'] = reverse(
            "user-group.form", args=[id_ugroup])
        lists['action_new_perms'] = reverse(
            "user-group-perm.form", args=[id_ugroup])

        lists['cadperms'] = parse_cad_perms(PATH_PERMLISTS + "/cadperms.txt")
        lists['apiperms'] = parse_api_perms(PATH_PERMLISTS + "/apiperms.txt")

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 32
0
def delete_user(request, id_ugroup):

    if request.method == 'POST':

        form = DeleteForm(request.POST)

        if form.is_valid():

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

            # 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 users selected to remove
            for id_user in ids:
                try:

                    # Execute in NetworkAPI
                    client_ugroup.remover(id_user, id_ugroup)

                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, user_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"))
Esempio n. 33
0
def ajax_list_all(request, search_term=None):
    try:

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

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

        column_index_name_map = {
            0: '',
            1: 'id',
            2: 'divisao_dc__nome',
            3: 'vrf',
            4: 'dcroom__dc__dcname',
            5: ''
        }

        dtp = DataTablePaginator(request, column_index_name_map)

        dtp.build_server_side_list()

        dtp.searchable_columns = [
            'grupo_l3__nome',
            'ambiente_logico__nome',
            'divisao_dc__nome',
            'vrf',
            'dcroom__dc__dcname',
            'dcroom__name'
        ]

        dtp.end_record = 10000

        fields = [
            "divisao_dc__nome__icontains",
            "ambiente_logico__nome__icontains",
            "grupo_l3__nome__icontains"
        ]

        extends_search_dict = dict()

        if search_term:
            term = search_term.split("+")
            term_len = len(term)
            if term_len > 1:
                for i in xrange(len(term)):
                    extends_search_dict.update({fields[i]: term[i]})
            else:
                dtp.custom_search = term[0]

        pagination = Pagination(
            dtp.start_record,
            dtp.end_record,
            dtp.asorting_cols,
            dtp.searchable_columns,
            dtp.custom_search
        )

        data = dict()
        data["start_record"] = pagination.start_record
        data["end_record"] = pagination.end_record
        data["asorting_cols"] = ['divisao_dc__nome','ambiente_logico__nome','grupo_l3__nome']
        data["searchable_columns"] = pagination.searchable_columns
        data["custom_search"] = pagination.custom_search or ""
        data["extends_search"] = [extends_search_dict] if extends_search_dict else []

        environment = client.create_api_environment().search(fields=['id',
                                                                     'children__basic',
                                                                     'vrf',
                                                                     'name',
                                                                     'configs__details',
                                                                     'dcroom__details'],
                                                             search=data)

        lists['envs'] = json.dumps(environment.get("environments"))

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

    except NetworkAPIClientError, e:
        logger.error(e)
        messages.add_message(request, messages.ERROR, e)
Esempio n. 34
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"))
Esempio n. 35
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"))
Esempio n. 36
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
Esempio n. 37
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"))
Esempio n. 38
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
Esempio n. 39
0
                            continue

                    users.append(user)

                lists['users'] = users

        else:

            lists['users'] = get_users_search(ldap, pattern)

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

    lists['search_form'] = formSearch
    lists['form'] = DeleteForm()
    lists['pattern'] = pattern

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


@log
@login_required
@has_perm([{"permission": ADMINISTRATION, "write": True, "read": True}])
def ajax_reset_password_user(request):

    lists = dict()
    ldap = Ldap(AuthSession(request.session).get_user().get_username())
    status_code = 500

    try: