Example #1
0
def service_edit(request, service_id=None):
    """Controller for editing services"""
    service = None
    netbox = None
    service_form = None
    property_form = None
    if service_id:
        service = Service.objects.get(pk=service_id)

    if request.method == 'POST' and 'save' in request.POST:
        service_form = ServiceForm(request.POST)
        if service_form.is_valid():
            handler = service_form.cleaned_data['handler']
            property_form = ServicePropertyForm(
                request.POST, service_args=get_description(handler))
            if property_form.is_valid():
                return service_save(request, service_form, property_form)
    else:
        if not service_id:
            return service_add(request)
        else:
            handler = service.handler
            netbox = service.netbox
            service_prop = ServiceProperty.objects.filter(service=service)
            service_form = ServiceForm(initial={
                'service': service.pk,
                'netbox': netbox.pk,
                'handler': handler,
            })
            initial = dict([(prop.property, prop.value)
                            for prop in service_prop])
            property_form = ServicePropertyForm(service_args=get_description(
                service.handler),
                                                initial=initial)

    info = ServiceInfo()
    context = info.template_context
    context.update({
        'object': service,
        'handler': handler,
        'netbox': netbox,
        'sub_active': {
            'edit': True
        },
        'service_form': service_form,
        'property_form': property_form,
    })
    return render_to_response('seeddb/service_property_form.html', context,
                              RequestContext(request))
Example #2
0
def service_edit(request, service_id=None):
    service = None
    netbox = None
    service_form = None
    property_form = None
    if service_id:
        service = Service.objects.get(pk=service_id)

    if request.method == 'POST' and 'save' in request.POST:
        service_form = ServiceForm(request.POST)
        if service_form.is_valid():
            handler = service_form.cleaned_data['handler']
            property_form = ServicePropertyForm(request.POST,
                service_args=get_description(handler))
            if property_form.is_valid():
                return service_save(request, service_form, property_form)
    else:
        if not service_id:
            return service_add(request)
        else:
            handler = service.handler
            netbox = service.netbox
            service_prop = ServiceProperty.objects.filter(service=service)
            service_form = ServiceForm(initial={
                'service': service.pk,
                'netbox': netbox.pk,
                'handler': handler,
            })
            initial = dict(
                [(prop.property, prop.value) for prop in service_prop])
            property_form = ServicePropertyForm(
                service_args=get_description(service.handler),
                initial=initial)

    info = ServiceInfo()
    context = info.template_context
    context.update({
        'object': service,
        'handler': handler,
        'netbox': netbox,
        'sub_active': {'edit': True},
        'service_form': service_form,
        'property_form': property_form,
    })
    return render_to_response('seeddb/service_property_form.html',
        context, RequestContext(request))
Example #3
0
def service_add(request):
    info = ServiceInfo()
    box_select = QuickSelect(location=False,
                             room=False,
                             netbox=True,
                             netbox_multiple=False)
    if request.method == 'POST':
        choice_form = ServiceChoiceForm(request.POST)
        netbox_id = request.POST.get('netbox')
        try:
            netbox = Netbox.objects.get(pk=netbox_id)
        except Netbox.DoesNotExist:
            new_message(request, "Netbox does not exist in database",
                        Messages.ERROR)
        else:
            if choice_form.is_valid():
                property_form = ServicePropertyForm(
                    service_args=get_description(
                        choice_form.cleaned_data['service']))
                service_form = ServiceForm(
                    initial={
                        'netbox': netbox.pk,
                        'handler': choice_form.cleaned_data['service'],
                    })
                context = info.template_context
                context.update({
                    'service_form': service_form,
                    'property_form': property_form,
                    'sub_active': {
                        'add': True
                    },
                    'handler': choice_form.cleaned_data['service'],
                    'netbox': netbox,
                })
                return render_to_response('seeddb/service_property_form.html',
                                          context, RequestContext(request))
    else:
        choice_form = ServiceChoiceForm()

    context = info.template_context
    context.update({
        'box_select': box_select,
        'choice_form': choice_form,
        'sub_active': {
            'add': True
        },
    })
    return render_to_response('seeddb/service_netbox_form.html', context,
                              RequestContext(request))
Example #4
0
def service_add(request):
    info = ServiceInfo()
    box_select = QuickSelect(
        location=False,
        room=False,
        netbox=True,
        netbox_multiple=False)
    if request.method == 'POST':
        choice_form = ServiceChoiceForm(request.POST)
        netbox_id = request.POST.get('netbox')
        try:
            netbox = Netbox.objects.get(pk=netbox_id)
        except Netbox.DoesNotExist:
            new_message(request,
                        "Netbox does not exist in database", Messages.ERROR)
        else:
            if choice_form.is_valid():
                property_form = ServicePropertyForm(
                    service_args=get_description(
                        choice_form.cleaned_data['service']
                    ))
                service_form = ServiceForm(initial={
                    'netbox': netbox.pk,
                    'handler': choice_form.cleaned_data['service'],
                })
                context = info.template_context
                context.update({
                    'service_form': service_form,
                    'property_form': property_form,
                    'sub_active': {'add': True},
                    'handler': choice_form.cleaned_data['service'],
                    'netbox': netbox,
                })
                return render_to_response('seeddb/service_property_form.html',
                    context, RequestContext(request))
    else:
        choice_form = ServiceChoiceForm()

    context = info.template_context
    context.update({
        'box_select': box_select,
        'choice_form': choice_form,
        'sub_active': {'add': True},
    })
    return render_to_response('seeddb/service_netbox_form.html',
        context, RequestContext(request))
Example #5
0
def service_add(request):
    """Controller for adding services"""
    info = ServiceInfo()
    if request.method == 'POST':
        choice_form = ServiceChoiceForm(request.POST)
        if choice_form.is_valid():
            cleaned_data = choice_form.cleaned_data
            service_id = cleaned_data['service']
            netbox_id = cleaned_data['netbox']
            netbox = Netbox.objects.get(pk=netbox_id)

            property_form = ServicePropertyForm(
                service_args=get_description(service_id))
            service_form = ServiceForm(initial={
                'netbox': netbox_id,
                'handler': service_id,
            })

            context = info.template_context
            context.update({
                'service_form': service_form,
                'property_form': property_form,
                'sub_active': {
                    'add': True
                },
                'handler': service_id,
                'netbox': netbox,
            })
            return render_to_response('seeddb/service_property_form.html',
                                      context, RequestContext(request))
    else:
        choice_form = ServiceChoiceForm()

    context = info.template_context
    context.update({
        'choice_form': choice_form,
        'sub_active': {
            'add': True
        },
    })
    return render_to_response('seeddb/service_netbox_form.html', context,
                              RequestContext(request))
Example #6
0
 def _get_handler_descr(handler):
     descr = get_description(handler)
     if not descr:
         raise BulkImportError("Service handler %s does not exist" %
                               handler)
     return descr
 def test_get_ssh_description(self):
     descr = get_description('ssh')
     self.assertTrue(descr)
     self.assertTrue('description' in descr)
     self.assertTrue('args' in descr)
     self.assertTrue('optargs' in descr)
Example #8
0
 def _get_handler_descr(handler):
     descr = get_description(handler)
     if not descr:
         raise BulkImportError("Service handler %s does not exist" % handler)
     return descr