def override_file(request, dhcp_scope):
    if request.method == 'POST':
        form = forms.DHCPScopeOverrideForm(request.POST)
        if form.is_valid():
            do = models.DHCPOverride.objects.get(dhcp_scope=dhcp_scope)
            do.override_text = form.cleaned_data['override_text']
            do.save()
            #s = form.save()
            #return redirect('/dhcp/show/')
    else:
        try:
            do = models.DHCPOverride.objects.get(dhcp_scope=dhcp_scope)
        except:
            do = models.DHCPOverride(dhcp_scope=dhcp_scope)
            do.save()

        form = forms.DHCPScopeOverrideForm(initial={
            'dhcp_scope': dhcp_scope,
            'override_text': do.override_text
        })

    return jinja_render_to_response('dhcp/override.html', {
        "form": form,
        'dhcp_scope': dhcp_scope
    }, RequestContext(request))
def new(request):
    error_message = ''
    if request.method == 'POST':
        form = forms.AddDHCPScopeForm(request.POST)
        if form.is_valid():
            truth_exists = False
            try:
                tmp = Truth.objects.get(name=form.cleaned_data['scope_name'])
                truth_exists = True
            except:
                pass
            if truth_exists is False:
                t = Truth(name=form.cleaned_data['scope_name'],
                          description=form.cleaned_data['scope_description'])
                t.save()
                k = TruthKeyValue(truth=t, key='is_dhcp_scope', value='True')
                k.save()
                return redirect('/dhcp/edit/%s' % t.name)
            else:
                error_message = 'DHCP Scope Exists'
    else:
        form = forms.AddDHCPScopeForm()

    return jinja_render_to_response('dhcp/new.html', {
        "form": form,
        "error_message": error_message
    })
Exemplo n.º 3
0
def index(request):

    return jinja_render_to_response(
        'truth/index.html', {
            'systems': models.Truth.objects.all(),
            'read_only': getattr(request, 'read_only', False),
        })
Exemplo n.º 4
0
def new(request):
    error_message = ''
    if request.method == 'POST':
        form = forms.AddDHCPScopeForm(request.POST)
        if form.is_valid():
            truth_exists = False
            try:
                tmp = Truth.objects.get(name=form.cleaned_data['scope_name'])
                truth_exists = True
            except:
                pass
            if truth_exists is False: 
                t = Truth(name=form.cleaned_data['scope_name'], description=form.cleaned_data['scope_description'])
                t.save()
                k = TruthKeyValue(truth=t,key='is_dhcp_scope',value='True')
                k.save()
                return redirect('/dhcp/edit/%s' % t.name)
            else:
                error_message = 'DHCP Scope Exists'
    else:
        form = forms.AddDHCPScopeForm()

    return jinja_render_to_response('dhcp/new.html', {
            "form": form ,
            "error_message":error_message
           })
Exemplo n.º 5
0
def delete_key_value(request, id, kv_id):
    kv = models.KeyValue.objects.get(id=id)
    kv.delete()
    truth = models.Truth.objects.get(id=kv_id)
    key_value_store = models.KeyValue.objects.filter(truth=truth)
    return jinja_render_to_response('truth/key_value_store.html', {
        'key_value_store': key_value_store,
    })
Exemplo n.º 6
0
def delete_key_value(request, id, kv_id):
    kv = models.KeyValue.objects.get(id=id)
    kv.delete()
    truth = models.Truth.objects.get(id=kv_id)
    key_value_store = models.KeyValue.objects.filter(truth=truth)
    return jinja_render_to_response('truth/key_value_store.html', {
            'key_value_store': key_value_store,
           })
Exemplo n.º 7
0
def create_key_value(request, id):
    truth = models.Truth.objects.get(id=id)
    kv = models.KeyValue(truth=truth)
    kv.save();
    key_value_store = models.KeyValue.objects.filter(truth=truth)
    return jinja_render_to_response('truth/key_value_store.html', {
            'key_value_store': key_value_store,
           })
Exemplo n.º 8
0
def create(request):
    if request.POST:
        f = forms.TruthForm(request.POST)
        if f.is_valid():
            f.save()
            return HttpResponseRedirect('/truth/')
    else:
        f = forms.TruthForm()

    return jinja_render_to_response('truth/key_value_store_create.html',
                                    {'form': f})
Exemplo n.º 9
0
def edit(request, id):
    truth = models.Truth.objects.get(id=id) 
    if request.POST:
        f = forms.TruthForm(request.POST, instance=truth)
        if f.is_valid():
            f.save()
    else:
        f = forms.TruthForm(instance=truth)
    return jinja_render_to_response('truth/edit.html', {
            'kv': truth,
            'form': f
           })
Exemplo n.º 10
0
def create(request):
    if request.POST:
        f = forms.TruthForm(request.POST)
        if f.is_valid():
            f.save()
            return HttpResponseRedirect('/truth/')
    else:
        f = forms.TruthForm()

    return jinja_render_to_response('truth/key_value_store_create.html', {
            'form': f
           })
Exemplo n.º 11
0
def showall(request):
    dhcp_scopes = models.DHCP.objects.all()
    h = KeyValueHandler()
    request = factory.get('/en-US/api/keyvalue/?key=is_dhcp_scope', follow=True)
    obj = h.read(request)
    dhcp_scopes = []
    for key in obj.iterkeys():
        dhcp_scopes.append(key.split(":")[1])

    return jinja_render_to_response('dhcp/index.html', {
            'dhcp_scopes': dhcp_scopes,
           })
Exemplo n.º 12
0
def edit(request, id):
    truth = models.Truth.objects.get(id=id)
    if request.POST:
        f = forms.TruthForm(request.POST, instance=truth)
        if f.is_valid():
            f.save()
    else:
        f = forms.TruthForm(instance=truth)
    return jinja_render_to_response('truth/edit.html', {
        'kv': truth,
        'form': f
    })
def showall(request):
    dhcp_scopes = models.DHCP.objects.all()
    h = KeyValueHandler()
    request = factory.get('/en-US/api/keyvalue/?key=is_dhcp_scope',
                          follow=True)
    obj = h.read(request)
    dhcp_scopes = []
    for key in obj.iterkeys():
        dhcp_scopes.append(key.split(":")[1])

    return jinja_render_to_response('dhcp/index.html', {
        'dhcp_scopes': dhcp_scopes,
    })
Exemplo n.º 14
0
def override_file(request, dhcp_scope):
    if request.method == 'POST':
        form = forms.DHCPScopeOverrideForm(request.POST)
        if form.is_valid():
            do = models.DHCPOverride.objects.get(dhcp_scope=dhcp_scope)
            do.override_text = form.cleaned_data['override_text']
            do.save()
            #s = form.save()
            #return redirect('/dhcp/show/')
    else:
        try:
            do = models.DHCPOverride.objects.get(dhcp_scope=dhcp_scope)
        except:
            do = models.DHCPOverride(dhcp_scope=dhcp_scope)
            do.save()

        form = forms.DHCPScopeOverrideForm(initial={'dhcp_scope':dhcp_scope, 'override_text':do.override_text})

    return jinja_render_to_response('dhcp/override.html', {
            "form": form,
            'dhcp_scope':dhcp_scope
           },
           RequestContext(request))
Exemplo n.º 15
0
def report_home(request):
    data = {}
    systems = None
    initial = {"system_type": ["SYSTEM"], "location": ["-1"], "system_status": ["-1"]}
    if request.method == "POST":
        form = ReportForm(request.POST)
        if form.is_valid():
            search_q = Q()
            allocation = request.POST.get("allocation", "")
            server_models = request.POST.get("server_models", "")
            operating_system = request.POST.get("operating_system", "")
            system_status = request.POST.getlist("system_status")
            location = request.POST.get("location")
            systems = System.objects.all()
            if "SYSTEM" in request.POST.getlist("system_type"):
                if location:
                    if "-1" not in request.POST.getlist("location"):
                        for location in request.POST.getlist("location"):
                            search_q |= Q(system_rack__location__id=location)
                        total_count = System.with_related.filter(search_q).count()
                        systems = systems.filter(search_q)

                if allocation != "":
                    systems = systems.filter(Q(allocation=allocation))

                if server_models != "":
                    systems = systems.filter(
                        Q(server_model__model__icontains=server_models)
                        | Q(server_model__vendor__icontains=server_models)
                    )

                if operating_system != "":
                    systems = systems.filter(
                        Q(operating_system__name__icontains=operating_system)
                        | Q(operating_system__version__icontains=operating_system)
                    )

                if "-1" not in system_status:
                    the_query = Q()
                    for ss in system_status:
                        the_query |= Q(system_status__id=ss)
                    systems = systems.filter(the_query)
            total_count = systems.count()
            if "UNMANAGED" in request.POST.getlist("system_type"):
                pass
            data["content"] = str(total_count)
            if "CSV" == request.POST["output"]:
                response = HttpResponse(mimetype="text/csv")
                response["Content-Disposition"] = "attachment; filename=inventory_report.csv"
                writer = csv.writer(response)
                columns = [
                    "Hostname",
                    "Asset Tag",
                    "Purchase Date",
                    "Server Model",
                    "Serial",
                    "Status",
                    "Purchase Price",
                    "Operating System",
                    "Location",
                ]
                writer.writerow(columns)
                for system in systems:
                    writer.writerow(
                        [
                            system.hostname,
                            system.asset_tag,
                            system.purchase_date,
                            system.server_model,
                            system.serial,
                            system.system_status,
                            system.purchase_price,
                            system.operating_system if system.operating_system else "",
                            system.system_rack.location if system.system_rack else "",
                        ]
                    )
                return response
            if "SCREEN" == request.POST["output"]:
                template = "reports/index.html"
        else:
            form = ReportForm(request.POST)
            data["form"] = form
            template = "reports/index.html"
    else:
        form = ReportForm(initial=initial)
        data["form"] = form
        template = "reports/index.html"

    return jinja_render_to_response(template, {"systems": systems, "form": form})
Exemplo n.º 16
0
def edit(request, dhcp_scope):
    h = KeyValueHandler()
    trequest = factory.get('/api/keyvalue/?keystore=%s' % dhcp_scope, follow=True)
    instance = h.read(trequest)
    initial = {}
    initial['scope_name'] = dhcp_scope
    ##A bunch of try/catch blocks to create key/value pairs if one does not exist
    try:
        initial['scope_start'] = instance['dhcp.scope.start']
    except:
        trequest = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.scope.start', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['scope_start'] = ''
    try:
        initial['scope_end'] = instance['dhcp.scope.end']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.scope.end', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['scope_end'] = ''
    try:
        initial['scope_netmask'] = instance['dhcp.scope.netmask']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.scope.netmask', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['scope_netmask'] = ''
    try:
        initial['pool_start'] = instance['dhcp.pool.start']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.pool.start', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['pool_start'] = ''
    try:
        initial['pool_end'] = instance['dhcp.pool.end']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.pool.end', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['pool_end'] = ''
    try:
        initial['ntp_server1'] = instance['dhcp.option.ntp_server.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.option.ntp_server.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['ntp_server1'] = ''
    try:
        initial['ntp_server2'] = instance['dhcp.option.ntp_server.1']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.option.ntp_server.1', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['ntp_server2'] = ''
    try:
        initial['router'] = instance['dhcp.option.router.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.option.router.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['router'] = ''
    try:
        initial['domain_name'] = instance['dhcp.option.domain_name.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.option.domain_name.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['domain_name'] = ''
    try:
        initial['dns_server1'] = instance['dhcp.dns_server.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.dns_server.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['dns_server1'] = ''
    try:
        initial['dns_server2'] = instance['dhcp.dns_server.1']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.dns_server.1', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['dns_server2'] = ''
    try:
        initial['allow_booting'] = instance['dhcp.pool.allow_booting.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.pool.allow_booting.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['allow_booting'] = ''
    try:
        initial['allow_bootp'] = instance['dhcp.pool.allow_bootp.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {'key':'dhcp.pool.allow_bootp.0', 'value':'', 'truth_name':dhcp_scope}, follow=True)
        h.create(trequest)
        initial['allow_bootp'] = ''

    if request.method == 'POST':
        form = forms.EditDHCPScopeForm(request.POST)
        if form.is_valid():
            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.scope.start', 'value':form.cleaned_data['scope_start']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.scope.end', 'value':form.cleaned_data['scope_end']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.scope.netmask', 'value':form.cleaned_data['scope_netmask']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.pool.start', 'value':form.cleaned_data['pool_start']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.pool.end', 'value':form.cleaned_data['pool_end']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.option.ntp_server.0', 'value':form.cleaned_data['ntp_server1']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.option.ntp_server.1', 'value':form.cleaned_data['ntp_server2']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.dns_server.0', 'value':form.cleaned_data['dns_server1']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.dns_server.1', 'value':form.cleaned_data['dns_server2']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.option.domain_name.0', 'value':form.cleaned_data['domain_name']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.option.router.0', 'value':form.cleaned_data['router']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.pool.allow_booting.0', 'value':form.cleaned_data['allow_booting']}, follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {'truth_id': dhcp_scope, 'key':'dhcp.pool.allow_bootp.0', 'value':form.cleaned_data['allow_bootp']}, follow=True)
            h.update(trequest, dhcp_scope)

    else:
        form = forms.EditDHCPScopeForm(initial=initial)

    return jinja_render_to_response('dhcp/edit.html', {
            "form": form,
            'dhcp_scope': dhcp_scope
           })
def edit(request, dhcp_scope):
    h = KeyValueHandler()
    trequest = factory.get('/api/keyvalue/?keystore=%s' % dhcp_scope,
                           follow=True)
    instance = h.read(trequest)
    initial = {}
    initial['scope_name'] = dhcp_scope
    ##A bunch of try/catch blocks to create key/value pairs if one does not exist
    try:
        initial['scope_start'] = instance['dhcp.scope.start']
    except:
        trequest = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.scope.start',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['scope_start'] = ''
    try:
        initial['scope_end'] = instance['dhcp.scope.end']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.scope.end',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['scope_end'] = ''
    try:
        initial['scope_netmask'] = instance['dhcp.scope.netmask']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.scope.netmask',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['scope_netmask'] = ''
    try:
        initial['pool_start'] = instance['dhcp.pool.start']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.pool.start',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['pool_start'] = ''
    try:
        initial['pool_end'] = instance['dhcp.pool.end']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.pool.end',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['pool_end'] = ''
    try:
        initial['ntp_server1'] = instance['dhcp.option.ntp_server.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.option.ntp_server.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['ntp_server1'] = ''
    try:
        initial['ntp_server2'] = instance['dhcp.option.ntp_server.1']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.option.ntp_server.1',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['ntp_server2'] = ''
    try:
        initial['router'] = instance['dhcp.option.router.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.option.router.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['router'] = ''
    try:
        initial['domain_name'] = instance['dhcp.option.domain_name.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.option.domain_name.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['domain_name'] = ''
    try:
        initial['dns_server1'] = instance['dhcp.dns_server.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.dns_server.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['dns_server1'] = ''
    try:
        initial['dns_server2'] = instance['dhcp.dns_server.1']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.dns_server.1',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['dns_server2'] = ''
    try:
        initial['allow_booting'] = instance['dhcp.pool.allow_booting.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.pool.allow_booting.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['allow_booting'] = ''
    try:
        initial['allow_bootp'] = instance['dhcp.pool.allow_bootp.0']
    except:
        treqeust = factory.post('/en-US/api/keyvalue/%s/' % dhcp_scope, {
            'key': 'dhcp.pool.allow_bootp.0',
            'value': '',
            'truth_name': dhcp_scope
        },
                                follow=True)
        h.create(trequest)
        initial['allow_bootp'] = ''

    if request.method == 'POST':
        form = forms.EditDHCPScopeForm(request.POST)
        if form.is_valid():
            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.scope.start',
                    'value': form.cleaned_data['scope_start']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope,
                                    {
                                        'truth_id': dhcp_scope,
                                        'key': 'dhcp.scope.end',
                                        'value': form.cleaned_data['scope_end']
                                    },
                                    follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.scope.netmask',
                    'value': form.cleaned_data['scope_netmask']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.pool.start',
                    'value': form.cleaned_data['pool_start']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope,
                                    {
                                        'truth_id': dhcp_scope,
                                        'key': 'dhcp.pool.end',
                                        'value': form.cleaned_data['pool_end']
                                    },
                                    follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.option.ntp_server.0',
                    'value': form.cleaned_data['ntp_server1']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.option.ntp_server.1',
                    'value': form.cleaned_data['ntp_server2']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.dns_server.0',
                    'value': form.cleaned_data['dns_server1']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.dns_server.1',
                    'value': form.cleaned_data['dns_server2']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.option.domain_name.0',
                    'value': form.cleaned_data['domain_name']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post('/en-US/api/v2/keyvalue/%s/' % dhcp_scope,
                                    {
                                        'truth_id': dhcp_scope,
                                        'key': 'dhcp.option.router.0',
                                        'value': form.cleaned_data['router']
                                    },
                                    follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.pool.allow_booting.0',
                    'value': form.cleaned_data['allow_booting']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

            trequest = factory.post(
                '/en-US/api/v2/keyvalue/%s/' % dhcp_scope, {
                    'truth_id': dhcp_scope,
                    'key': 'dhcp.pool.allow_bootp.0',
                    'value': form.cleaned_data['allow_bootp']
                },
                follow=True)
            h.update(trequest, dhcp_scope)

    else:
        form = forms.EditDHCPScopeForm(initial=initial)

    return jinja_render_to_response('dhcp/edit.html', {
        "form": form,
        'dhcp_scope': dhcp_scope
    })
Exemplo n.º 18
0
def index(request):
    
    return jinja_render_to_response('truth/index.html', {
            'systems': models.Truth.objects.all(),
            'read_only': getattr(request, 'read_only', False),
           })
Exemplo n.º 19
0
def get_key_value_store(request, id):
    truth = models.Truth.objects.get(id=id)
    key_value_store = models.KeyValue.objects.filter(truth=truth)
    return jinja_render_to_response('truth/key_value_store.html', {
        'key_value_store': key_value_store,
    })
Exemplo n.º 20
0
def report_home(request):
    data = {}
    systems = None
    initial = {
            'system_type': ['SYSTEM'],
            'site': ['-1'],
            'system_status': ['-1'],


            }
    if request.method == 'POST':
        form = ReportForm(request.POST)
        if form.is_valid():
            search_q = Q()
            allocation = request.POST.get('allocation', '')
            server_models = request.POST.get('server_models', '')
            operating_system = request.POST.get('operating_system', '')
            system_status = request.POST.getlist('system_status')
            site = request.POST.get('site')
            systems = System.objects.all()
            if 'SYSTEM' in request.POST.getlist('system_type'):
                if site:
                    if '-1' not in request.POST.getlist('site'):
                        for site in request.POST.getlist('site'):
                            search_q |= Q(system_rack__site__id=site)
                        total_count = System.with_related.filter(search_q).count()
                        systems = systems.filter(search_q)

                if allocation != '':
                    systems = systems.filter(Q(allocation=allocation))

                if server_models != '':
                    systems = systems.filter(Q(server_model__model__icontains=server_models)|Q(server_model__vendor__icontains=server_models))

                if operating_system != '':
                    systems = systems.filter(Q(operating_system__name__icontains=operating_system)|Q(operating_system__version__icontains=operating_system))

                if '-1' not in system_status:
                    the_query = Q()
                    for ss in system_status:
                        the_query |= Q(system_status__id=ss)
                    systems = systems.filter(the_query)
            total_count = systems.count()
            if 'UNMANAGED' in request.POST.getlist('system_type'):
                pass
            data['content'] = str(total_count)
            if 'CSV' == request.POST['output']:
                response = HttpResponse(mimetype='text/csv')
                response['Content-Disposition'] = 'attachment; filename=inventory_report.csv'
                writer = csv.writer(response)
                columns = [
                        'Hostname',
                        'Asset Tag',
                        'Purchase Date',
                        'Server Model',
                        'Serial',
                        'Status',
                        'Purchase Price',
                        'Operating System',
                        'Site',
                        ]
                writer.writerow(columns)
                for system in systems: 
                    writer.writerow([
                    system.hostname,
                    system.asset_tag, 
                    system.purchase_date,
                    system.server_model,
                    system.serial,
                    system.system_status,
                    system.purchase_price,
                    system.operating_system if system.operating_system else '',
                    system.system_rack.site if system.system_rack else '',
                    ])
                return response
            if 'SCREEN' == request.POST['output']:
                template = 'reports/index.html'
        else:
            form = ReportForm(request.POST)
            data['form'] = form
            template = 'reports/index.html'
    else:
        form = ReportForm(initial=initial)
        data['form'] = form
        template = 'reports/index.html'

    return jinja_render_to_response(template, {
            'systems': systems,
            'form': form
           })
def report_home(request):
    data = {}
    systems = None
    initial = {
        'system_type': ['SYSTEM'],
        'site': ['-1'],
        'system_status': ['-1'],
    }
    if request.method == 'POST':
        form = ReportForm(request.POST)
        if form.is_valid():
            search_q = Q()
            allocation = request.POST.get('allocation', '')
            server_models = request.POST.get('server_models', '')
            operating_system = request.POST.get('operating_system', '')
            system_status = request.POST.getlist('system_status')
            site = request.POST.get('site')
            systems = System.objects.all()
            if 'SYSTEM' in request.POST.getlist('system_type'):
                if site:
                    if '-1' not in request.POST.getlist('site'):
                        for site in request.POST.getlist('site'):
                            search_q |= Q(system_rack__site__id=site)
                        total_count = System.with_related.filter(
                            search_q).count()
                        systems = systems.filter(search_q)

                if allocation != '':
                    systems = systems.filter(Q(allocation=allocation))

                if server_models != '':
                    systems = systems.filter(
                        Q(server_model__model__icontains=server_models)
                        | Q(server_model__vendor__icontains=server_models))

                if operating_system != '':
                    systems = systems.filter(
                        Q(operating_system__name__icontains=operating_system) |
                        Q(operating_system__version__icontains=operating_system
                          ))

                if '-1' not in system_status:
                    the_query = Q()
                    for ss in system_status:
                        the_query |= Q(system_status__id=ss)
                    systems = systems.filter(the_query)
            total_count = systems.count()
            if 'UNMANAGED' in request.POST.getlist('system_type'):
                pass
            data['content'] = str(total_count)
            if 'CSV' == request.POST['output']:
                response = HttpResponse(mimetype='text/csv')
                response[
                    'Content-Disposition'] = 'attachment; filename=inventory_report.csv'
                writer = csv.writer(response)
                columns = [
                    'Hostname',
                    'Asset Tag',
                    'Purchase Date',
                    'Server Model',
                    'Serial',
                    'Status',
                    'Purchase Price',
                    'Operating System',
                    'Site',
                ]
                writer.writerow(columns)
                for system in systems:
                    writer.writerow([
                        system.hostname,
                        system.asset_tag,
                        system.purchase_date,
                        system.server_model,
                        system.serial,
                        system.system_status,
                        system.purchase_price,
                        system.operating_system
                        if system.operating_system else '',
                        system.system_rack.site if system.system_rack else '',
                    ])
                return response
            if 'SCREEN' == request.POST['output']:
                template = 'reports/index.html'
        else:
            form = ReportForm(request.POST)
            data['form'] = form
            template = 'reports/index.html'
    else:
        form = ReportForm(initial=initial)
        data['form'] = form
        template = 'reports/index.html'

    return jinja_render_to_response(template, {
        'systems': systems,
        'form': form
    })