Exemple #1
0
def list_filters():
    filters = getattr(threading.local(), "filters", None)
    if filters is None:
        filterapi = FilterAPI()
        filters = dict([(f['id'], f) for f in filterapi.filters()])
        setattr(threading.local(), "filters", filters)
    return filters
Exemple #2
0
def delete(request, filter_id=None):
    filterapi = FilterAPI()
    fltr = filterapi.filter(filter_id)
    if request.method == 'POST':
        form = DeleteOkayForm(request.POST)
        if form.is_valid():
            try:
                filterapi.delete(filter_id)
                messages.success(request,
                                 "Deleted filter %s (%s)" %
                                 (fltr['description'], fltr['id']))
                return \
                    HttpResponseRedirect(reverse('sponge.views.filters.list'))
            except ServerRequestError, err:
                messages.error(request,
                               "Failed to delete filter %s (%s): %s" %
                               (fltr['description'], fltr['id'], err[1]))
Exemple #3
0
def view(request, filter_id=None):
    filterapi = FilterAPI()
    fltr = filter_utils.get_filter(filter_id)
    if request.method == 'POST':
        form = FilterForm(request.POST, filter=fltr)
        if form.is_valid():
            orig = [p
                    for p in form.cleaned_data['orig_patterns'].splitlines()
                    if p]
            new = [p for p in form.cleaned_data['patterns'].splitlines() if p]
            to_remove = [p for p in orig if p not in new]
            success = True
            if to_remove:
                try:
                    filterapi.remove_packages(filter_id, to_remove)
                    messages.success(request,
                                     "Removed patterns from filter %s: %s" %
                                     (fltr['description'],
                                      ", ".join(to_remove)))
                except ServerRequestError, err:
                    success = False
                    messages.error(request,
                                   "Failed to remove %d patterns (%s) from "
                                   "filter %s: %s" %
                                   (len(to_remove), ", ".join(to_remove),
                                    fltr['description'], err[1]))
            to_add = [p for p in new if p not in orig]
            if to_add:
                try:
                    filterapi.add_packages(filter_id, to_add)
                    messages.success(request,
                                     "Added patterns to filter %s: %s" %
                                     (fltr['description'],
                                      ", ".join(to_add)))
                except ServerRequestError, err:
                    success = False
                    messages.error(request,
                                   "Failed to add %d patterns (%s) to filter "
                                   "%s: %s" %
                                   (len(to_add), ", ".join(to_add),
                                    fltr['description'], err[1]))

            if success:
                return \
                    HttpResponseRedirect(reverse('sponge.views.filters.list'))
Exemple #4
0
def add(request):
    if request.method == 'POST':
        form = FilterForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            filterapi = FilterAPI()
            try:
                filterapi.create(data['f_id'],
                                 data['f_type'],
                                 description=data['desc'],
                                 package_list=data['patterns'].splitlines())
                messages.success(request,
                                 "Created filter %s (%s)" %
                                 (data['desc'], data['f_id']))
                return \
                    HttpResponseRedirect(reverse('sponge.views.filters.list'))
            except ServerRequestError, err:
                messages.error(request,
                               "Failed to create filter %s (%s): %s" %
                               (data['desc'], data['f_id'], err[1]))