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))
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))
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))
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))
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))
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)