def show_by_model(request, object_id):
    system_list = models.UnmanagedSystem.objects.filter(
        server_model=models.ServerModel.objects.get(id=object_id))
    if 'show_all' in request.GET:
        paginator = Paginator(system_list, system_list.count())
    else:
        paginator = Paginator(system_list, 25)

    if 'page' in request.GET:
        page = request.GET.get('page')
    else:
        page = 1

    try:
        systems = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        systems = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        systems = paginator.page(paginator.num_pages)
    return render_to_response('user_systems/unmanagedsystem_list.html', {
        'user_system_list': systems,
        'show_all': True,
    }, RequestContext(request))
def owner_show(request, object_id):
    owner = get_object_or_404(models.Owner, pk=object_id)

    return render_to_response('user_systems/owner_detail.html', {
            'owner': owner,
           },
           RequestContext(request))
def user_system_quicksearch_ajax(request):
    """Returns systems sort table"""
    search = request.POST['quicksearch']
    filters = [
        Q(**{"%s__icontains" % t: search})
        for t in models.UnmanagedSystem.search_fields
    ]

    systems = models.UnmanagedSystem.objects.filter(
        reduce(operator.or_, filters))

    # For some reason systems are referencing server model classes that do not
    # exist. I have no idea how this happened but it did. If accessing the
    # server model causes and error set the server_model to None so we don't
    # get an exception later during page loads.
    # TOOD: Clean up defunt server model references
    for s in systems:
        try:
            s.server_model
        except:
            s.server_model = None

    return render_to_response('user_systems/quicksearch.html', {
        'systems': systems,
        'BUG_URL': BUG_URL
    }, RequestContext(request))
def unmanaged_system_delete(request, object_id):
    #Dummy comment
    user_system = get_object_or_404(models.UnmanagedSystem, pk=object_id)
    if request.method == 'POST':
        try:
            acl = UnmanagedSystemACL(request)
            acl.check_delete()
            user_system_notes = user_system.notes
            user_system.delete()
            send_mail('System Deleted',
                      '%s Deleted by %s\nSystem Notes:\n%s' %
                      (user_system, request.user.username, user_system_notes),
                      FROM_EMAIL_ADDRESS,
                      UNAUTHORIZED_EMAIL_ADDRESS,
                      fail_silently=False)
            return HttpResponseRedirect(reverse('user-system-list'))
        except PermissionDenied, e:
            send_mail('Unauthorized System Delete Attempt',
                      'Unauthorized Attempt to Delete %s by %s' %
                      (user_system, request.user.username),
                      FROM_EMAIL_ADDRESS,
                      UNAUTHORIZED_EMAIL_ADDRESS,
                      fail_silently=False)
            return render_to_response(
                'user_systems/unauthorized_delete.html', {
                    'content':
                    'You do not have permission to delete this system',
                }, RequestContext(request))
def racks(request):
    from forms import RackFilterForm
    filter_form = RackFilterForm(request.GET)

    racks = models.SystemRack.objects.select_related('site')

    system_query = Q()
    if 'site' in request.GET:
        site_id = request.GET['site']
        has_query = True
        if len(site_id) > 0 and int(site_id) > 0:
            site = Site.objects.get(id=site_id)
            filter_form.fields['rack'].choices = [('', 'ALL')] + [
                (m.id, m.site.full_name + ' ' + m.name)
                for m in models.SystemRack.objects.filter(
                    site=site).order_by('name')
            ]
    else:
        has_query = False

    if filter_form.is_valid():
        if filter_form.cleaned_data['rack']:
            racks = racks.filter(id=filter_form.cleaned_data['rack'])
            has_query = True
        if filter_form.cleaned_data['site'] and int(
                filter_form.cleaned_data['site']) > 0:
            racks = racks.filter(site=filter_form.cleaned_data['site'])
            has_query = True
        if filter_form.cleaned_data['allocation']:
            system_query = system_query & Q(
                allocation=filter_form.cleaned_data['allocation'])
            has_query = True
        filter_status = filter_form.cleaned_data['status']
        if filter_status:
            system_query &= Q(system_status=filter_form.cleaned_data['status'])
            has_query = True
        if not filter_form.cleaned_data['show_decommissioned']:
            decommissioned = models.SystemStatus.objects.get(
                status='decommissioned')
            system_query = system_query & ~Q(system_status=decommissioned)

    ##Here we create an object to hold decommissioned systems for the following filter
    if not has_query:
        racks = []
    else:
        racks = [(k,
                  list(
                      k.system_set.select_related(
                          'server_model',
                          'allocation',
                          'system_status',
                      ).filter(system_query).order_by('rack_order')))
                 for k in racks]

    return render_to_response(
        'systems/racks.html', {
            'racks': racks,
            'filter_form': filter_form,
            'read_only': getattr(request, 'read_only', False),
        }, RequestContext(request))
Example #6
0
def get_key_value_store(request, id):
    system = models.System.objects.get(id=id)
    key_value_store = models.KeyValue.objects.filter(obj=system)
    return render_to_response('systems/key_value_store.html', {
            'key_value_store': key_value_store,
           },
           RequestContext(request))
def show_by_model(request, object_id):
    system_list = models.UnmanagedSystem.objects.filter(server_model=models.ServerModel.objects.get(id=object_id))
    if 'show_all' in request.GET:
        paginator = Paginator(system_list, system_list.count())                                                                        
    else:
        paginator = Paginator(system_list, 25)                                                                        
                    
    if 'page' in request.GET:
        page = request.GET.get('page')
    else:   
        page = 1
        
    try:
        systems = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        systems = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        systems = paginator.page(paginator.num_pages)
    return render_to_response('user_systems/unmanagedsystem_list.html', {
            'user_system_list': systems,
            'show_all': True,
           },
           RequestContext(request))
def owner_list(request):
    owners = models.Owner.objects.select_related('user_location').all()
    upgradeable_users = models.Owner.objects.filter(unmanagedsystem__date_purchased__lt=datetime.now() - timedelta(days=730)).distinct().count()
    return render_to_response('user_systems/owner_list.html', {
            'owner_list': owners,
            'upgradeable_users':upgradeable_users,
           },
           RequestContext(request))
def home(request):
    """Index page"""
    return render_to_response(
        'systems/index.html',
        {
            'read_only': getattr(request, 'read_only', False),
            #'is_build': getattr(request.user.groups.all(), 'build', False),
        })
Example #10
0
def allocation_list(request):
    object_list = models.Allocation.objects.all()
    return render_to_response(
        'systems/allocation_list.html',
        {
            'object_list': object_list,
        },
        RequestContext(request))
Example #11
0
def server_model_list(request):
    object_list = models.ServerModel.objects.all()
    return render_to_response(
        'systems/servermodel_list.html',
        {
            'object_list': object_list,
        },
        RequestContext(request))
Example #12
0
def allocation_show(request, object_id):
    object = get_object_or_404(models.Allocation, pk=object_id)

    return render_to_response(
        'systems/allocation_detail.html',
        {
            'object': object,
        },
        RequestContext(request))
def owner_delete(request, object_id):
    owner = get_object_or_404(models.Owner, pk=object_id)
    if request.method == "POST":
        owner.delete()
        return HttpResponseRedirect('/user_systems/owners/')
    else:
        return render_to_response('user_systems/owner_confirm_delete.html', {
            'owner': owner,
        }, RequestContext(request))
def owner_list(request):
    owners = models.Owner.objects.select_related('user_location').all()
    upgradeable_users = models.Owner.objects.filter(
        unmanagedsystem__date_purchased__lt=datetime.now() -
        timedelta(days=730)).distinct().count()
    return render_to_response('user_systems/owner_list.html', {
        'owner_list': owners,
        'upgradeable_users': upgradeable_users,
    }, RequestContext(request))
Example #15
0
def get_network_adapters(request, id):
    adapters = models.NetworkAdapter.objects.filter(system_id=id)
    return render_to_response('systems/network_adapters.html', {
            'adapters': adapters,
            'switches': models.System.objects.filter(is_switch=1),
            'dhcp_scopes': models.DHCP.objects.all()
            #'read_only': getattr(request, 'read_only', False),
           },
           RequestContext(request))
Example #16
0
def server_model_show(request, object_id):
    object = get_object_or_404(models.ServerModel, pk=object_id)

    return render_to_response(
        'systems/servermodel_detail.html',
        {
            'object': object,
        },
        RequestContext(request))
def owner_delete(request, object_id):
    owner = get_object_or_404(models.Owner, pk=object_id)
    if request.method == "POST":
        owner.delete()
        return HttpResponseRedirect('/user_systems/owners/')
    else:
        return render_to_response('user_systems/owner_confirm_delete.html', {
                'owner': owner,
            },
            RequestContext(request))
def license_delete(request, object_id):
    license = get_object_or_404(models.UserLicense, pk=object_id)
    try:
        license.delete()
        return HttpResponseRedirect(reverse('license-list'))
    except PermissionDenied, e:
        return render_to_response(
            'user_systems/unauthorized_delete.html', {
                'content': 'You do not have permission to delete this license',
            }, RequestContext(request))
def license_delete(request, object_id):
    license = get_object_or_404(models.UserLicense, pk=object_id)
    try:
        license.delete()
        return HttpResponseRedirect( reverse('license-list') )
    except PermissionDenied, e:
        return render_to_response('user_systems/unauthorized_delete.html', {
                'content': 'You do not have permission to delete this license',
            },
            RequestContext(request))
def rack_delete(request, object_id):
    from models import SystemRack
    rack = get_object_or_404(SystemRack, pk=object_id)
    if request.method == "POST":
        rack.delete()
        return HttpResponseRedirect('/systems/racks/')
    else:
        return render_to_response('systems/rack_confirm_delete.html', {
            'rack': rack,
        }, RequestContext(request))
def user_system_show_by_asset_tag(request, id):
    system = get_object_or_404(models.UnmanagedSystem, asset_tag=id)
    #system = models.UnmanagedSystem.objects.select_related(
    #                'owner', 'server_model', 'operating_system'
    #                 ).filter(asset_tag=id).order_by('owner__name')

    #system = get_object_or_404(models.UnmanagedSystem
    return render_to_response('user_systems/unmanagedsystem_detail.html', {
        'user_system': system,
    }, RequestContext(request))
def user_system_show_by_asset_tag(request, id):
    system = get_object_or_404(models.UnmanagedSystem, asset_tag=id)
    #system = models.UnmanagedSystem.objects.select_related(
    #                'owner', 'server_model', 'operating_system'
    #                 ).filter(asset_tag=id).order_by('owner__name')

    #system = get_object_or_404(models.UnmanagedSystem
    return render_to_response('user_systems/unmanagedsystem_detail.html', {
            'user_system': system,
           },
           RequestContext(request))
Example #23
0
def rack_delete(request, object_id):
    from models import SystemRack
    rack = get_object_or_404(SystemRack, pk=object_id)
    if request.method == "POST":
        rack.delete()
        return HttpResponseRedirect('/systems/racks/')
    else:
        return render_to_response('systems/rack_confirm_delete.html', {
                'rack': rack,
            },
            RequestContext(request))
def get_network_adapters(request, id):
    adapters = models.NetworkAdapter.objects.filter(system_id=id)
    return render_to_response(
        'systems/network_adapters.html',
        {
            'adapters': adapters,
            'switches': models.System.objects.filter(is_switch=1),
            'dhcp_scopes': models.DHCP.objects.all()
            #'read_only': getattr(request, 'read_only', False),
        },
        RequestContext(request))
def owners_quicksearch_ajax(request):
    """Returns systems sort table"""
    search = request.POST['quicksearch']
    filters = [
        Q(**{"%s__icontains" % t: search}) for t in models.Owner.search_fields
    ]

    owners = models.Owner.objects.filter(reduce(operator.or_, filters))

    return render_to_response('user_systems/owners_quicksearch.html', {
        'owners': owners,
    }, RequestContext(request))
def system_rack_elevation(request, rack_id):
    r = Rack(rack_id)
    data = {
        'rack_ru': r.ru,
        'ethernet_patch_panels_24': r.ethernet_patch_panel_24,
        'ethernet_patch_panels_48': r.ethernet_patch_panel_48,
        'systems': r.systems,
    }
    data = json.dumps(data)
    return render_to_response('systems/rack_elevation.html', {
        'data': data,
    }, RequestContext(request))
Example #27
0
def racks(request):
    from forms import RackFilterForm
    filter_form = RackFilterForm(request.GET)

    racks = models.SystemRack.objects.select_related('site')

    system_query = Q()
    if 'site' in request.GET:
        site_id = request.GET['site']
        has_query = True
        if len(site_id) > 0 and int(site_id) > 0:
            site = Site.objects.get(id=site_id)
            filter_form.fields['rack'].choices = [('','ALL')] + [
                (m.id, m.site.full_name + ' ' +  m.name)
                for m in models.SystemRack.objects.filter(site=site).order_by('name')
            ]
    else:
        has_query = False

    if filter_form.is_valid():
        if filter_form.cleaned_data['rack']:
            racks = racks.filter(id=filter_form.cleaned_data['rack'])
            has_query = True
        if filter_form.cleaned_data['site'] and int(filter_form.cleaned_data['site']) > 0:
            racks = racks.filter(site=filter_form.cleaned_data['site'])
            has_query = True
        if filter_form.cleaned_data['allocation']:
            system_query = system_query & Q(allocation=filter_form.cleaned_data['allocation'])
            has_query = True
        filter_status = filter_form.cleaned_data['status']
        if filter_status:
            system_query &= Q(system_status=filter_form.cleaned_data['status'])
            has_query = True
        if not filter_form.cleaned_data['show_decommissioned']:
            decommissioned = models.SystemStatus.objects.get(status='decommissioned')
            system_query = system_query & ~Q(system_status=decommissioned)

    ##Here we create an object to hold decommissioned systems for the following filter
    if not has_query:
        racks = []
    else:
        racks = [(k, list(k.system_set.select_related(
            'server_model',
            'allocation',
            'system_status',
        ).filter(system_query).order_by('rack_order'))) for k in racks]

    return render_to_response('systems/racks.html', {
            'racks': racks,
            'filter_form': filter_form,
            'read_only': getattr(request, 'read_only', False),
           },
           RequestContext(request))
Example #28
0
def system_rack_elevation(request, rack_id):
    r = Rack(rack_id)
    data  = {
            'rack_ru': r.ru,
            'ethernet_patch_panels_24': r.ethernet_patch_panel_24,
            'ethernet_patch_panels_48': r.ethernet_patch_panel_48,
            'systems': r.systems,
    }
    data = json.dumps(data)
    return render_to_response('systems/rack_elevation.html', {
        'data':data,
        },
        RequestContext(request))
def owners_quicksearch_ajax(request):
    """Returns systems sort table"""
    search = request.POST['quicksearch']
    filters = [Q(**{"%s__icontains" % t: search})
                    for t in models.Owner.search_fields]

    owners = models.Owner.objects.filter(
                reduce(operator.or_, filters))

    return render_to_response('user_systems/owners_quicksearch.html', {
            'owners': owners,
           },
           RequestContext(request))
def license_new(request):
    initial = {}
    if request.method == 'POST':
        form = forms.UserLicenseForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/licenses/')
    else:
        form = forms.UserLicenseForm(initial=initial)

    return render_to_response('user_systems/userlicense_form.html', {
        'form': form,
    }, RequestContext(request))
def owner_create(request):
    initial = {}
    if request.method == 'POST':
        form = forms.OwnerForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/owners/')
    else:
        form = forms.OwnerForm(initial=initial)

    return render_to_response('user_systems/owner_form.html', {
        'form': form,
    }, RequestContext(request))
def system_view(request, template, data, instance=None):
    if request.method == 'POST':
        form = SystemForm(request.POST, instance=instance)
        if form.is_valid():
            s = form.save(commit=False)
            s.save(request=request)
            return redirect(system_show, s.pk)
    else:
        form = SystemForm(instance=instance)

    data['form'] = form

    return render_to_response(template, data, request)
def license_edit(request, object_id):
    license = get_object_or_404(models.UserLicense, pk=object_id)
    if request.method == 'POST':
        form = forms.UserLicenseForm(request.POST, instance=license)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/licenses/')
    else:
        form = forms.UserLicenseForm(instance=license)

    return render_to_response('user_systems/userlicense_form.html', {
        'form': form,
    }, RequestContext(request))
def owner_edit(request, object_id):
    owner = get_object_or_404(models.Owner, pk=object_id)
    initial = {}
    if request.method == 'POST':
        form = forms.OwnerForm(request.POST, instance=owner)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/owners/')
    else:
        form = forms.OwnerForm(instance=owner)

    return render_to_response('user_systems/owner_form.html', {
        'form': form,
    }, RequestContext(request))
def rack_new(request):
    from forms import SystemRackForm
    initial = {}
    if request.method == 'POST':
        form = SystemRackForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/racks/')
    else:
        form = SystemRackForm(initial=initial)

    return render_to_response('generic_form.html', {
        'form': form,
    }, RequestContext(request))
def license_new(request):
    initial = {}
    if request.method == 'POST':
        form = forms.UserLicenseForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/licenses/')
    else:
        form = forms.UserLicenseForm(initial=initial)

    return render_to_response('user_systems/userlicense_form.html', {
            'form': form,
           },
           RequestContext(request))
def license_edit(request, object_id):
    license = get_object_or_404(models.UserLicense, pk=object_id)
    if request.method == 'POST':
        form = forms.UserLicenseForm(request.POST, instance=license)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/licenses/')
    else:
        form = forms.UserLicenseForm(instance=license)

    return render_to_response('user_systems/userlicense_form.html', {
            'form': form,
           },
           RequestContext(request))
def owner_create(request):
    initial = {}
    if request.method == 'POST':
        form = forms.OwnerForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/owners/')
    else:
        form = forms.OwnerForm(initial=initial)

    return render_to_response('user_systems/owner_form.html', {
            'form': form,
           },
           RequestContext(request))
def fillin_csv(request):
    """Important columns:
            4: serial number
            6: employee
            7: location
    """

    if request.method == 'POST':
        f = forms.CSVForm(request.POST, request.FILES)
        if f.is_valid():
            response = HttpResponse(mimetype='text/csv')
            response[
                'Content-Disposition'] = 'attachment; filename=ComputerEquipment.csv'
            in_csv = csv.reader(f.cleaned_data['csv'].read().splitlines())
            out_csv = csv.writer(response)
            for row in in_csv:
                if row[4]:
                    serials = [i.strip() for i in row[4].split(';')]
                    owners = [
                        str(i.owner)
                        for i in models.UnmanagedSystem.objects.filter(
                            serial__in=serials).filter(owner__isnull=False)
                    ]
                    locations = [
                        str(i.system_rack.location)
                        for i in system_models.System.objects.filter(
                            serial__in=serials).filter(
                                system_rack__location__isnull=False)
                    ]

                    locations += [
                        str(i.owner.user_location)
                        for i in models.UnmanagedSystem.objects.filter(
                            serial__in=serials).filter(
                                owner__user_location__isnull=False)
                    ]

                    if owners:
                        row[6] = "; ".join(owners)
                    if locations:
                        row[7] = "; ".join(locations)

                out_csv.writerow(row)
            return response
    else:
        f = forms.CSVForm()

    return render_to_response('user_systems/fillin_csv.html', {'form': f},
                              RequestContext(request))
def allocation_edit(request, object_id):
    allocation = get_object_or_404(models.Allocation, pk=object_id)
    from forms import AllocationForm
    initial = {}
    if request.method == 'POST':
        form = AllocationForm(request.POST, instance=allocation)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/allocations/')
    else:
        form = AllocationForm(instance=allocation)

    return render_to_response('generic_form.html', {
        'form': form,
    }, RequestContext(request))
def server_model_edit(request, object_id):
    server_model = get_object_or_404(models.ServerModel, pk=object_id)
    from forms import ServerModelForm
    initial = {}
    if request.method == 'POST':
        form = ServerModelForm(request.POST, instance=server_model)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/server_models/')
    else:
        form = ServerModelForm(instance=server_model)

    return render_to_response('generic_form.html', {
        'form': form,
    }, RequestContext(request))
def rack_edit(request, object_id):
    rack = get_object_or_404(models.SystemRack, pk=object_id)
    from forms import SystemRackForm
    initial = {}
    if request.method == 'POST':
        form = SystemRackForm(request.POST, instance=rack)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/racks/')
    else:
        form = SystemRackForm(instance=rack)

    return render_to_response('systems/generic_form.html', {
        'form': form,
    }, RequestContext(request))
def owner_edit(request, object_id):
    owner = get_object_or_404(models.Owner, pk=object_id)
    initial = {}
    if request.method == 'POST':
        form = forms.OwnerForm(request.POST, instance=owner)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user_systems/owners/')
    else:
        form = forms.OwnerForm(instance=owner)

    return render_to_response('user_systems/owner_form.html', {
            'form': form,
           },
           RequestContext(request))
def user_system_quicksearch_ajax(request):
    """Returns systems sort table"""
    from settings import BUG_URL as BUG_URL
    search = request.POST['quicksearch']
    print request.POST
    filters = [Q(**{"%s__icontains" % t: search})
                    for t in models.UnmanagedSystem.search_fields]

    systems = models.UnmanagedSystem.objects.filter(
                reduce(operator.or_, filters))

    return render_to_response('user_systems/quicksearch.html', {
            'systems': systems,
            'BUG_URL': BUG_URL,
           },
           RequestContext(request))
Example #45
0
def system_view(request, template, data, instance=None):
    if request.method == 'POST':
        form = SystemForm(request.POST, instance=instance)
        if form.is_valid():
            s = form.save(commit=False)
            s.save(request=request)
            return redirect(system_show, s.pk)
    else:
        form = SystemForm(instance=instance)

    data['form'] = form

    return render_to_response(template,
        data,
        request
    )
Example #46
0
def delete_key_value(request, id, system_id):
    kv = models.KeyValue.objects.get(id=id)
    matches = re.search('^nic\.(\d+)', str(kv.key) )
    if matches:
        try:
            existing_dhcp_scope = models.KeyValue.objects.filter(obj=kv.system).filter(key='nic.%s.dhcp_scope.0' % matches.group(1))[0].value
            models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save()
        except:
            pass
    kv.delete()
    system = models.System.objects.get(id=system_id)
    key_value_store = models.KeyValue.objects.filter(obj=system)
    return render_to_response('systems/key_value_store.html', {
            'key_value_store': key_value_store,
           },
           RequestContext(request))
def unmanaged_system_delete(request, object_id):
    #Dummy comment
    user_system = get_object_or_404(models.UnmanagedSystem, pk=object_id)
    if request.method == 'POST':
        try:
            acl = UnmanagedSystemACL(request)
            acl.check_delete()
            user_system_notes = user_system.notes
            user_system.delete()
            send_mail('System Deleted', '%s Deleted by %s\nSystem Notes:\n%s' % (user_system, request.user.username, user_system_notes), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False)
            return HttpResponseRedirect( reverse('user-system-list') )
        except PermissionDenied, e:
            send_mail('Unauthorized System Delete Attempt', 'Unauthorized Attempt to Delete %s by %s' % (user_system, request.user.username), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False)
            return render_to_response('user_systems/unauthorized_delete.html', {
                    'content': 'You do not have permission to delete this system',
                },
                RequestContext(request))
def system_delete(request, id):
    system = get_object_or_404(models.System, pk=id)
    try:
        kv_length = len(system.keyvalue_set.all())
    except AttributeError:
        kv_length = 0

    if kv_length == 0:
        try:
            system.delete()
        except IntegrityError, e:
            e_str = "Key/Value store exists"
            content = "Unable to Delete system: {message}".format(message=e)
            return render_to_response('systems/generic_output.html', {
                'system': system,
                'content': content,
            }, RequestContext(request))
def delete_key_value(request, id, system_id):
    kv = models.KeyValue.objects.get(id=id)
    matches = re.search('^nic\.(\d+)', str(kv.key))
    if matches:
        try:
            existing_dhcp_scope = models.KeyValue.objects.filter(
                obj=kv.system).filter(key='nic.%s.dhcp_scope.0' %
                                      matches.group(1))[0].value
            models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save()
        except:
            pass
    kv.delete()
    system = models.System.objects.get(id=system_id)
    key_value_store = models.KeyValue.objects.filter(obj=system)
    return render_to_response('systems/key_value_store.html', {
        'key_value_store': key_value_store,
    }, RequestContext(request))
Example #50
0
def rack_new(request):
    from forms import SystemRackForm
    initial = {}
    if request.method == 'POST':
        form = SystemRackForm(request.POST, initial=initial)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/racks/')
    else:
        form = SystemRackForm(initial=initial)

    return render_to_response(
        'generic_form.html',
        {
            'form': form,
        },
        RequestContext(request))
def fillin_csv(request):
    """Important columns:
            4: serial number
            6: employee
            7: location
    """

    if request.method == 'POST':
        f = forms.CSVForm(request.POST, request.FILES)
        if f.is_valid():
            response = HttpResponse(mimetype='text/csv')
            response['Content-Disposition'] = 'attachment; filename=ComputerEquipment.csv'
            in_csv = csv.reader(f.cleaned_data['csv'].read().splitlines())
            out_csv = csv.writer(response)
            for row in in_csv:
                if row[4]:
                    serials = [i.strip() for i in row[4].split(';')]
                    owners = [
                        str(i.owner)
                        for i in models.UnmanagedSystem.objects.filter(
                            serial__in=serials).filter(owner__isnull=False)]
                    locations = [
                        str(i.system_rack.location)
                        for i in system_models.System.objects.filter(
                            serial__in=serials).filter(system_rack__location__isnull=False)]

                    locations += [
                        str(i.owner.user_location)
                        for i in models.UnmanagedSystem.objects.filter(
                            serial__in=serials).filter(owner__user_location__isnull=False)]

                    if owners:
                        row[6] = "; ".join(owners)
                    if locations:
                        row[7] = "; ".join(locations)

                out_csv.writerow(row)
            return response
    else:
        f = forms.CSVForm()

    return render_to_response(
        'user_systems/fillin_csv.html',
        {'form': f},
        RequestContext(request))
Example #52
0
def system_show_by_asset_tag(request, id):
    system = get_object_or_404(models.System, asset_tag=id)
    is_release = True
    if system.allocation is 'release':
        is_release = True
    if (system.serial and
            system.server_model and
            system.server_model.part_number and
            system.server_model.vendor == "HP"):

        system.warranty_link = "http://www11.itrc.hp.com/service/ewarranty/warrantyResults.do?productNumber=%s&serialNumber1=%s&country=US" % (system.server_model.part_number, system.serial)

    return render_to_response('systems/system_show.html', {
            'system': system,
            'is_release': True,
            'read_only': getattr(request, 'read_only', False),
           },
           RequestContext(request))
Example #53
0
def server_model_edit(request, object_id):
    server_model = get_object_or_404(models.ServerModel, pk=object_id)
    from forms import ServerModelForm
    initial = {}
    if request.method == 'POST':
        form = ServerModelForm(request.POST, instance=server_model)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/server_models/')
    else:
        form = ServerModelForm(instance=server_model)

    return render_to_response(
        'generic_form.html',
        {
            'form': form,
        },
        RequestContext(request))
Example #54
0
def rack_edit(request, object_id):
    rack = get_object_or_404(models.SystemRack, pk=object_id)
    from forms import SystemRackForm
    initial = {}
    if request.method == 'POST':
        form = SystemRackForm(request.POST, instance=rack)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/systems/racks/')
    else:
        form = SystemRackForm(instance=rack)

    return render_to_response(
        'systems/generic_form.html',
        {
            'form': form,
        },
        RequestContext(request))
def system_show_by_asset_tag(request, id):
    system = get_object_or_404(models.System, asset_tag=id)
    is_release = True
    if system.allocation is 'release':
        is_release = True
    if (system.serial and system.server_model
            and system.server_model.part_number
            and system.server_model.vendor == "HP"):

        system.warranty_link = "http://www11.itrc.hp.com/service/ewarranty/warrantyResults.do?productNumber=%s&serialNumber1=%s&country=US" % (
            system.server_model.part_number, system.serial)

    return render_to_response(
        'systems/system_show.html', {
            'system': system,
            'is_release': True,
            'read_only': getattr(request, 'read_only', False),
        }, RequestContext(request))
def system_quicksearch_ajax(request):
    """Returns systems sort table"""
    search_term = request.POST['quicksearch']
    search_q = Q(hostname__icontains=search_term)
    search_q |= Q(serial__contains=search_term)
    search_q |= Q(notes__contains=search_term)
    search_q |= Q(asset_tag=search_term)
    systems = models.System.with_related.filter(search_q).order_by('hostname')
    if 'is_test' not in request.POST:
        return render_to_response(
            'systems/quicksearch.html', {
                'systems': systems,
                'read_only': getattr(request, 'read_only', False),
            }, RequestContext(request))
    else:
        from django.core import serializers
        systems_data = serializers.serialize("json", systems)
        return HttpResponse(systems_data)
Example #57
0
def system_quicksearch_ajax(request):
    """Returns systems sort table"""
    search_term = request.POST['quicksearch']
    search_q = Q(hostname__icontains=search_term)
    search_q |= Q(serial__contains=search_term)
    search_q |= Q(notes__contains=search_term)
    search_q |= Q(asset_tag=search_term)
    systems = models.System.with_related.filter(search_q).order_by('hostname')
    if 'is_test' not in request.POST:
        return render_to_response('systems/quicksearch.html', {
                'systems': systems,
                'read_only': getattr(request, 'read_only', False),
            },
            RequestContext(request))
    else:
        from django.core import serializers
        systems_data = serializers.serialize("json", systems)
        return HttpResponse(systems_data)
def license_quicksearch_ajax(request):
    """Returns systems sort table"""
    # Try to get quicksearch from post
    # If fail, try to get from GET
    # return None otherwise
    search = request.GET.get('quicksearch', None)
    if search:
        filters = [
            Q(**{"%s__icontains" % t: search})
            for t in models.UserLicense.search_fields
        ]

        licenses = models.UserLicense.objects.filter(
            reduce(operator.or_, filters))
    else:
        licenses = None
    return render_to_response('user_systems/license_quicksearch.html', {
        'licenses': licenses,
    }, RequestContext(request))
def license_index(request):
    from settings import BUG_URL as BUG_URL
    system_list = models.UserLicense.objects.select_related('owner').all()
    paginator = Paginator(system_list, 25)

    if 'page' in request.GET:
        page = request.GET.get('page')
    else:
        page = 1

    try:
        systems = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        systems = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        systems = paginator.page(paginator.num_pages)

    return render_to_response('user_systems/userlicense_list.html', {
        'license_list': systems,
        'BUG_URL': BUG_URL
    }, RequestContext(request))
def create_key_value(request, id):
    system = models.System.objects.get(id=id)
    key = 'None'
    value = 'None'
    if 'key' in request.POST:
        key = request.POST['key'].strip()
    if 'value' in request.POST:
        value = request.POST['value'].strip()
    kv = models.KeyValue(obj=system, key=key, value=value)
    print "Key is %s: Value is %s." % (key, value)
    kv.save()
    matches = re.search('^nic\.(\d+)', str(kv.key))
    if matches:
        try:
            existing_dhcp_scope = models.KeyValue.objects.filter(
                obj=kv.system).filter(key='nic.%s.dhcp_scope.0' %
                                      matches.group(1))[0].value
            models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save()
        except:
            pass
    key_value_store = models.KeyValue.objects.filter(obj=system)
    return render_to_response('systems/key_value_store.html', {
        'key_value_store': key_value_store,
    }, RequestContext(request))