def edit_switch(request, switch, switchid): """ Edition d'un switch. Permet de chambre nombre de ports, place dans le stack, interface et machine associée""" switch_form = EditSwitchForm(request.POST or None, instance=switch, user=request.user) interface_form = EditInterfaceForm(request.POST or None, instance=switch.interface_set.first(), user=request.user) domain_form = DomainForm(request.POST or None, instance=switch.interface_set.first().domain) if switch_form.is_valid() and interface_form.is_valid(): new_switch_obj = switch_form.save(commit=False) new_interface_obj = interface_form.save(commit=False) new_domain_obj = domain_form.save(commit=False) if switch_form.changed_data: new_switch_obj.save() if interface_form.changed_data: new_interface_obj.save() if domain_form.changed_data: new_domain_obj.save() messages.success(request, _("The switch was edited.")) return redirect(reverse('topologie:index')) i_mbf_param = generate_ipv4_mbf_param(interface_form, False) return form( { 'id_switch': switchid, 'topoform': interface_form, 'machineform': switch_form, 'domainform': domain_form, 'i_mbf_param': i_mbf_param, 'device': 'switch', }, 'topologie/topo_more.html', request)
def create_ports(request, switchid): """ Création d'une liste de ports pour un switch.""" try: switch = Switch.objects.get(pk=switchid) except Switch.DoesNotExist: messages.error(request, _("Nonexistent switch.")) return redirect(reverse('topologie:index')) first_port = getattr(switch.ports.order_by('port').first(), 'port', 1) last_port = switch.number + first_port - 1 port_form = CreatePortsForm(request.POST or None, initial={ 'begin': first_port, 'end': last_port }) if port_form.is_valid(): begin = port_form.cleaned_data['begin'] end = port_form.cleaned_data['end'] try: switch.create_ports(begin, end) messages.success(request, _("The ports were created.")) except ValidationError as e: messages.error(request, ''.join(e)) return redirect( reverse('topologie:index-port', kwargs={'switchid': switchid})) return form({ 'id_switch': switchid, 'topoform': port_form }, 'topologie/switch.html', request)
def add_module(request): """ View used to add a Module object """ module = EditModuleForm(request.POST or None) if module.is_valid(): module.save() messages.success(request, _("The module was created.")) return redirect(reverse('topologie:index-module')) return form({ 'topoform': module, 'action_name': _("Create") }, 'topologie/topo.html', request)
def new_constructor_switch(request): """Nouveau constructeur de switch""" constructor_switch = EditConstructorSwitchForm(request.POST or None) if constructor_switch.is_valid(): constructor_switch.save() messages.success(request, _("The switch constructor was created.")) return redirect(reverse('topologie:index-model-switch')) return form({ 'topoform': constructor_switch, 'action_name': _("Create") }, 'topologie/topo.html', request)
def add_module_on(request): """Add a module to a switch""" module_switch = EditSwitchModuleForm(request.POST or None) if module_switch.is_valid(): module_switch.save() messages.success(request, _("The module was added.")) return redirect(reverse('topologie:index-module')) return form({ 'topoform': module_switch, 'action_name': _("Add") }, 'topologie/topo.html', request)
def edit_stack(request, stack, **_kwargs): """Edition d'un stack (nombre de switches, nom...)""" stack = StackForm(request.POST or None, instance=stack) if stack.is_valid(): if stack.changed_data: stack.save() return redirect(reverse('topologie:index-physical-grouping')) return form({ 'topoform': stack, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def new_stack(request): """Ajoute un nouveau stack : stackid_min, max, et nombre de switches""" stack = StackForm(request.POST or None) if stack.is_valid(): stack.save() messages.success(request, _("The stack was created.")) return redirect(reverse('topologie:index-physical-grouping')) return form({ 'topoform': stack, 'action_name': _("Create") }, 'topologie/topo.html', request)
def new_port_profile(request): """Create a new port profile""" port_profile = EditPortProfileForm(request.POST or None) if port_profile.is_valid(): port_profile.save() messages.success(request, _("The port profile was created.")) return redirect(reverse('topologie:index-port-profile')) return form({ 'topoform': port_profile, 'action_name': _("Create") }, 'topologie/topo.html', request)
def new_switch_bay(request): """Nouvelle baie de switch""" switch_bay = EditSwitchBayForm(request.POST or None) if switch_bay.is_valid(): switch_bay.save() messages.success(request, _("The switch bay was created.")) return redirect(reverse('topologie:index-physical-grouping')) return form({ 'topoform': switch_bay, 'action_name': _("Create") }, 'topologie/topo.html', request)
def new_model_switch(request): """Nouveau modèle de switch""" model_switch = EditModelSwitchForm(request.POST or None) if model_switch.is_valid(): model_switch.save() messages.success(request, _("The switch model was created.")) return redirect(reverse('topologie:index-model-switch')) return form({ 'topoform': model_switch, 'action_name': _("Create") }, 'topologie/topo.html', request)
def edit_switch_bay(request, switch_bay, **_kwargs): """ Edition d'une baie de switch""" switch_bay = EditSwitchBayForm(request.POST or None, instance=switch_bay) if switch_bay.is_valid(): if switch_bay.changed_data: switch_bay.save() messages.success(request, _("The switch bay was edited.")) return redirect(reverse('topologie:index-physical-grouping')) return form({ 'topoform': switch_bay, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def edit_module(request, module_instance, **_kwargs): """ View used to edit a Module object """ module = EditModuleForm(request.POST or None, instance=module_instance) if module.is_valid(): if module.changed_data: module.save() messages.success(request, _("The module was edited.")) return redirect(reverse('topologie:index-module')) return form({ 'topoform': module, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def del_stack(request, stack, **_kwargs): """Supprime un stack""" if request.method == "POST": try: stack.delete() messages.success(request, _("The stack was deleted.")) except ProtectedError: messages.error( request, (_("The stack %s is used by another object, impossible to" " deleted it.") % stack)) return redirect(reverse('topologie:index-physical-grouping')) return form({'objet': stack}, 'topologie/delete.html', request)
def edit_port_profile(request, port_profile, **_kwargs): """Edit a port profile""" port_profile = EditPortProfileForm(request.POST or None, instance=port_profile) if port_profile.is_valid(): if port_profile.changed_data: port_profile.save() messages.success(request, _("The port profile was edited.")) return redirect(reverse('topologie:index-port-profile')) return form({ 'topoform': port_profile, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def edit_constructor_switch(request, constructor_switch, **_kwargs): """ Edition d'un constructeur de switch""" constructor_switch = EditConstructorSwitchForm(request.POST or None, instance=constructor_switch) if constructor_switch.is_valid(): if constructor_switch.changed_data: constructor_switch.save() messages.success(request, _("The switch constructor was edited.")) return redirect(reverse('topologie:index-model-switch')) return form({ 'topoform': constructor_switch, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def del_port_profile(request, port_profile, **_kwargs): """Delete a port profile""" if request.method == 'POST': try: port_profile.delete() messages.success(request, _("The port profile was deleted.")) except ProtectedError: messages.success(request, _("Impossible to delete the port profile.")) return redirect(reverse('topologie:index-port-profile')) return form({ 'objet': port_profile, 'objet_name': _("Port profile") }, 'topologie/delete.html', request)
def edit_model_switch(request, model_switch, **_kwargs): """ Edition d'un modèle de switch""" model_switch = EditModelSwitchForm(request.POST or None, instance=model_switch) if model_switch.is_valid(): if model_switch.changed_data: model_switch.save() messages.success(request, _("The switch model was edited.")) return redirect(reverse('topologie:index-model-switch')) return form({ 'topoform': model_switch, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def del_model_switch(request, model_switch, **_kwargs): """ Suppression d'un modèle de switch""" if request.method == "POST": try: model_switch.delete() messages.success(request, _("The switch model was deleted.")) except ProtectedError: messages.error(request, (_("The switch model %s is used by another object," " impossible to delete it.") % model_switch)) return redirect(reverse('topologie:index-model-switch')) return form({ 'objet': model_switch, 'objet_name': _("Switch model") }, 'topologie/delete.html', request)
def del_port(request, port, **_kwargs): """ Supprime le port""" if request.method == "POST": try: port.delete() messages.success(request, _("The port was deleted.")) except ProtectedError: messages.error( request, (_("The port %s is used by another object, impossible to" " delete it.") % port)) return redirect( reverse('topologie:index-port', kwargs={'switchid': str(port.switch.id)})) return form({'objet': port}, 'topologie/delete.html', request)
def del_switch_bay(request, switch_bay, **_kwargs): """ Suppression d'une baie de switch""" if request.method == "POST": try: switch_bay.delete() messages.success(request, _("The switch bay was deleted.")) except ProtectedError: messages.error(request, (_("The switch bay %s is used by another object," " impossible to delete it.") % switch_bay)) return redirect(reverse('topologie:index-physical-grouping')) return form({ 'objet': switch_bay, 'objet_name': _("Switch bay") }, 'topologie/delete.html', request)
def del_module_on(request, module, **_kwargs): """Compleete delete a module""" if request.method == "POST": try: module.delete() messages.success(request, _("The module was deleted.")) except ProtectedError: messages.error( request, (_("The module %s is used by another object, impossible to" " deleted it.") % module)) return redirect(reverse('topologie:index-module')) return form({ 'objet': module, 'objet_name': _("Module") }, 'topologie/delete.html', request)
def edit_port(request, port_object, **_kwargs): """ Edition d'un port. Permet de changer le switch parent et l'affectation du port""" port = EditPortForm(request.POST or None, instance=port_object) if port.is_valid(): if port.changed_data: port.save() messages.success(request, _("The port was edited.")) return redirect( reverse('topologie:index-port', kwargs={'switchid': str(port_object.switch.id)})) return form( { 'id_switch': str(port_object.switch.id), 'topoform': port, 'action_name': _("Edit") }, 'topologie/topo.html', request)
def edit_ap(request, ap, **_kwargs): """ Edition d'un switch. Permet de chambre nombre de ports, place dans le stack, interface et machine associée""" interface_form = EditInterfaceForm(request.POST or None, user=request.user, instance=ap.interface_set.first()) ap_form = EditAccessPointForm(request.POST or None, user=request.user, instance=ap) domain_form = DomainForm(request.POST or None, instance=ap.interface_set.first().domain) if ap_form.is_valid() and interface_form.is_valid(): user = AssoOption.get_cached_value('utilisateur_asso') if not user: messages.error( request, (_("The organisation's user doesn't exist yet, please create" " or link it in the preferences."))) return redirect(reverse('topologie:index-ap')) new_ap_obj = ap_form.save(commit=False) new_interface_obj = interface_form.save(commit=False) new_domain_obj = domain_form.save(commit=False) if ap_form.changed_data: new_ap_obj.save() if interface_form.changed_data: new_interface_obj.save() if domain_form.changed_data: new_domain_obj.save() messages.success(request, _("The access point was edited.")) return redirect(reverse('topologie:index-ap')) i_mbf_param = generate_ipv4_mbf_param(interface_form, False) return form( { 'topoform': interface_form, 'machineform': ap_form, 'domainform': domain_form, 'i_mbf_param': i_mbf_param, 'device': 'wifi ap', }, 'topologie/topo_more.html', request)
def new_ap(request): """ Creation d'une ap. Cree en meme temps l'interface et la machine associée. Vue complexe. Appelle successivement les 3 models forms adaptés : machine, interface, domain et switch""" ap = AddAccessPointForm(request.POST or None, user=request.user) interface = AddInterfaceForm(request.POST or None, user=request.user) domain = DomainForm(request.POST or None, ) if ap.is_valid() and interface.is_valid(): user = AssoOption.get_cached_value('utilisateur_asso') if not user: messages.error( request, (_("The organisation's user doesn't exist yet, please create" " or link it in the preferences."))) return redirect(reverse('topologie:index')) new_ap_obj = ap.save(commit=False) new_ap_obj.user = user new_interface_obj = interface.save(commit=False) domain.instance.interface_parent = new_interface_obj if domain.is_valid(): new_domain_obj = domain.save(commit=False) new_ap_obj.save() new_interface_obj.machine = new_ap_obj new_interface_obj.save() new_domain_obj.interface_parent = new_interface_obj new_domain_obj.save() messages.success(request, _("The access point was created.")) return redirect(reverse('topologie:index-ap')) i_mbf_param = generate_ipv4_mbf_param(interface, False) return form( { 'topoform': interface, 'machineform': ap, 'domainform': domain, 'i_mbf_param': i_mbf_param, 'device': 'wifi ap', }, 'topologie/topo_more.html', request)
def new_port(request, switchid): """ Nouveau port""" try: switch = Switch.objects.get(pk=switchid) except Switch.DoesNotExist: messages.error(request, _("Nonexistent switch.")) return redirect(reverse('topologie:index')) port = AddPortForm(request.POST or None) if port.is_valid(): port = port.save(commit=False) port.switch = switch try: port.save() messages.success(request, _("The port was added.")) except IntegrityError: messages.error(request, _("The port already exists.")) return redirect( reverse('topologie:index-port', kwargs={'switchid': switchid})) return form( { 'id_switch': switchid, 'topoform': port, 'action_name': _("Add") }, 'topologie/topo.html', request)