def new_port(request, **kwargs): if request.POST: form = forms.NewPortForm(request.POST) if form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'port', 'Physical') helpers.form_update_node(request.user, nh.handle_id, form) if kwargs.get('parent_id', None) or form.cleaned_data['relationship_parent']: parent_id = kwargs.get('parent_id', None) if not parent_id: parent_id = form.cleaned_data['relationship_parent'] try: parent_nh = NodeHandle.objects.get(pk=parent_id) helpers.set_has(request.user, parent_nh.get_node(), nh.handle_id) except NoRelationshipPossible: nh.delete() form = forms.NewPortForm(request.POST) form.add_error('parent', 'Parent type can not have ports.') return render(request, 'noclook/create/create_port.html', {'form': form}) return redirect(nh.get_absolute_url()) else: form = forms.NewPortForm() return render(request, 'noclook/create/create_port.html', {'form': form})
def edit_port(request, handle_id): nh, port = helpers.get_nh_node(handle_id) parent = port.get_parent() connected_to = port.get_connected_to() parent_categories = ['external-equipment', 'firewall', 'host', 'odf', 'optical-node', 'router', 'switch'] connections_categories = Dropdown.get('cable_types').as_values(False) if request.POST: form = forms.EditPortForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, port.handle_id, form) # Port specific updates if form.cleaned_data['relationship_parent']: parent_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_parent']) helpers.set_has(request.user, parent_nh.get_node(), port.handle_id) if form.cleaned_data['relationship_connected_to']: cable_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_connected_to']) helpers.set_connected_to(request.user, cable_nh.get_node(), port.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditPortForm(port.data) return render(request, 'noclook/edit/edit_port.html', {'node_handle': nh, 'form': form, 'node': port, 'parent': parent, 'connected_to': connected_to, 'parent_categories': parent_categories, 'connections_categories': connections_categories})
def new_optical_node(request, slug=None): form = forms.OpticalNodeForm(request.POST or None) bulk_ports = forms.BulkPortsForm(request.POST or None) if request.POST and form.is_valid() and bulk_ports.is_valid(): try: name = form.cleaned_data['name'] nh = helpers.create_unique_node_handle(request.user, name, 'optical-node', 'Physical') helpers.form_update_node(request.user, nh.handle_id, form) node = nh.get_node() user = request.user if form.cleaned_data['relationship_location']: location = NodeHandle.objects.get( pk=form.cleaned_data['relationship_location']) helpers.set_location(user, node, location.handle_id) # create ports if needed if not bulk_ports.cleaned_data['no_ports']: data = bulk_ports.cleaned_data helpers.bulk_create_ports(nh.get_node(), request.user, **data) return redirect(nh.get_absolute_url()) except UniqueNodeError: form.add_error('name', 'An Optical Node with that name already exists.') return render(request, 'noclook/create/create_optical_node.html', { 'form': form, 'bulk_ports': bulk_ports })
def new_switch(request, **kwargs): if request.POST: form = forms.NewSwitchForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle( request, form, 'switch', 'Physical') except UniqueNodeError: form = forms.NewSwitchForm(request.POST) form.add_error('name', 'A Switch with that name already exists.') return render(request, 'noclook/create/create_switch.html', {'form': form}) helpers.form_update_node(request.user, nh.handle_id, form) node = nh.get_node() if form.cleaned_data['relationship_provider']: provider_nh = NodeHandle.objects.get( pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, node, provider_nh.handle_id) if form.cleaned_data['switch_type']: switch_type = SwitchType.objects.get( pk=form.cleaned_data['switch_type']) helpers.dict_update_node(request.user, nh.handle_id, {"model": switch_type.name}) if switch_type.ports: for port in switch_type.ports.split(","): helpers.create_port(node, port.strip(), request.user) return redirect(nh.get_absolute_url()) else: name = kwargs.get('name', None) initial = {'name': name} form = forms.NewSwitchForm(initial=initial) return render(request, 'noclook/create/create_switch.html', {'form': form})
def edit_optical_node(request, handle_id): # Get needed data from node nh, optical_node = helpers.get_nh_node(handle_id) location = optical_node.get_location() ports = optical_node.get_ports() if request.POST: form = forms.EditOpticalNodeForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, optical_node.handle_id, form) # Optical Node specific updates _handle_location(request.user, optical_node, form.cleaned_data['relationship_location']) _handle_ports(optical_node, form.cleaned_data['relationship_ports'], request.user) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditOpticalNodeForm(optical_node.data) return render(request, 'noclook/edit/edit_optical_node.html', {'node_handle': nh, 'node': optical_node, 'form': form, 'location': location, 'ports': ports})
def edit_optical_path(request, handle_id): # Get needed data from node nh, path = helpers.get_nh_node(handle_id) relations = path.get_relations() depends_on = path.get_dependencies() dependency_categories = 'odf,optical-link,optical-multiplex-section,optical-node,router,switch,optical-path' if request.POST: form = forms.EditOpticalPathForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, path.handle_id, form) # Optical Path node updates if form.cleaned_data['relationship_provider']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, path, owner_nh.handle_id) if form.cleaned_data['relationship_depends_on']: depends_on_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_depends_on']) helpers.set_depends_on(request.user, path, depends_on_nh.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditOpticalPathForm(path.data) return render(request, 'noclook/edit/edit_optical_path.html', {'node_handle': nh, 'form': form, 'node': path, 'relations': relations, 'depends_on': depends_on, 'dependency_categories': dependency_categories})
def edit_external_equipment(request, handle_id): # Get needed data from node nh, external_equipment = helpers.get_nh_node(handle_id) relations = external_equipment.get_relations() location = external_equipment.get_location() ports = external_equipment.get_ports() if request.POST: form = forms.EditExternalEquipmentForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, external_equipment.handle_id, form) # External Equipment specific updates if form.cleaned_data['relationship_owner']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_owner']) helpers.set_owner(request.user, external_equipment, owner_nh.handle_id) _handle_location(request.user, external_equipment, form.cleaned_data['relationship_location']) _handle_ports(external_equipment, form.cleaned_data['relationship_ports'], request.user) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditExternalEquipmentForm(external_equipment.data) return render(request, 'noclook/edit/edit_external_equipment.html', {'node_handle': nh, 'node': external_equipment, 'form': form, 'relations': relations, 'location': location, 'ports': ports})
def new_organization(request, **kwargs): if request.POST: form = forms.NewOrganizationForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle( request, form, 'organization', 'Relation') except UniqueNodeError: form.add_error( 'name', 'An Organization with that name already exists.') return render(request, 'noclook/create/create_organization.html', {'form': form}) # use property keys to avoid inserting contacts as a string property of the node property_keys = [ 'name', 'description', 'phone', 'website', 'organization_id', 'type', 'incident_management_info', ] helpers.form_update_node(request.user, nh.handle_id, form, property_keys) return redirect(nh.get_absolute_url()) else: form = forms.NewOrganizationForm() return render(request, 'noclook/create/create_organization.html', {'form': form})
def edit_cable(request, handle_id): # Get needed data from node nh, cable = helpers.get_nh_node(handle_id) connections = cable.get_connected_equipment() relations = cable.get_relations() if request.POST: form = forms.EditCableForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, cable.handle_id, form) if form.cleaned_data['relationship_end_a']: end_a_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_end_a']) helpers.set_connected_to(request.user, cable, end_a_nh.handle_id) if form.cleaned_data['relationship_end_b']: end_b_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_end_b']) helpers.set_connected_to(request.user, cable, end_b_nh.handle_id) if form.cleaned_data['relationship_provider']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, cable, owner_nh.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditCableForm(cable.data) return render(request, 'noclook/edit/edit_cable.html', {'node_handle': nh, 'form': form, 'node': cable, 'connections': connections, 'relations': relations})
def edit_rack(request, handle_id): # Get needed data from node nh, rack = helpers.get_nh_node(handle_id) parent = rack.get_parent() located_in = rack.get_located_in() located_in_categories = ['host', 'odf', 'optical-node', 'router'] if request.POST: form = forms.EditRackForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, rack.handle_id, form) # Rack specific updates if form.cleaned_data['relationship_parent']: parent_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_parent']) helpers.set_has(request.user, parent_nh.get_node(), rack.handle_id) if form.cleaned_data['relationship_located_in']: equipment = NodeHandle.objects.get(pk=form.cleaned_data['relationship_located_in']) helpers.set_location(request.user, equipment.get_node(), rack.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditRackForm(rack.data) return render(request, 'noclook/edit/edit_rack.html', {'node_handle': nh, 'form': form, 'parent': parent, 'node': rack, 'located_in': located_in, 'parent_categories': 'site', 'located_in_categories': located_in_categories})
def edit_router(request, handle_id): # Get needed data from node nh, router = helpers.get_nh_node(handle_id) location = router.get_location() if request.POST: form = forms.EditRouterForm(request.POST) ports_form = forms.BulkPortsForm(request.POST) if form.is_valid() and ports_form.is_valid(): # Generic node update helpers.form_update_node(request.user, router.handle_id, form) # Router specific updates _handle_location(request.user, router, form.cleaned_data['relationship_location']) _handle_ports(router, form.cleaned_data['relationship_ports'], request.user) if not ports_form.cleaned_data['no_ports']: data = ports_form.cleaned_data helpers.bulk_create_ports(nh.get_node(), request.user, **data) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditRouterForm(router.data) ports_form = forms.BulkPortsForm({'port_type': 'LC', 'offset': 1, 'num_ports': '0'}) return render(request, 'noclook/edit/edit_router.html', {'node_handle': nh, 'node': router, 'form': form, 'location': location, 'ports_form': ports_form})
def new_optical_multiplex_section(request, **kwargs): if request.POST: form = forms.NewOpticalMultiplexSectionForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle( request, form, 'optical-multiplex-section', 'Logical') except UniqueNodeError: form = forms.NewOpticalMultiplexSectionForm(request.POST) form.add_error( 'name', 'An Optical Multiplex Section with that name already exists.' ) return render( request, 'noclook/create/create_optical_multiplex_section.html', {'form': form}) helpers.form_update_node(request.user, nh.handle_id, form) if form.cleaned_data['relationship_provider']: node = nh.get_node() provider_nh = NodeHandle.objects.get( pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, node, provider_nh.handle_id) return redirect(nh.get_absolute_url()) else: form = forms.NewOpticalMultiplexSectionForm() return render(request, 'noclook/create/create_optical_multiplex_section.html', {'form': form})
def new_patch_panel(request, **kwargs): if request.POST: form = forms.NewPatchPannelForm(request.POST) ports_form = forms.BulkPortsForm(request.POST) if form.is_valid() and ports_form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'patch-panel', 'Physical') helpers.form_update_node(request.user, nh.handle_id, form) data = form.cleaned_data node = nh.get_node() if data['relationship_location']: location = NodeHandle.objects.get( pk=data['relationship_location']) helpers.set_location(request.user, node, location.handle_id) if not ports_form.cleaned_data['no_ports']: data = ports_form.cleaned_data helpers.bulk_create_ports(nh.get_node(), request.user, **data) return redirect(nh.get_absolute_url()) else: form = forms.NewPatchPannelForm() ports_form = forms.BulkPortsForm({ 'port_type': 'RJ45', 'offset': 1, 'num_ports': '0' }) return render(request, 'noclook/create/create_patch_panel.html', { 'form': form, 'ports_form': ports_form })
def new_cable(request, **kwargs): cable_types = u', '.join([ u'"{}"'.format(val) for val in Dropdown.get('cable_types').as_values() ]) if request.POST: form = forms.NewCableForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle( request, form, 'cable', 'Physical') except UniqueNodeError: form = forms.NewCableForm(request.POST) form.add_error('name', 'A Cable with that name already exists.') return render(request, 'noclook/create/create_cable.html', {'form': form}) helpers.form_update_node(request.user, nh.handle_id, form) if form.cleaned_data['relationship_provider']: node = nh.get_node() provider_nh = NodeHandle.objects.get( pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, node, provider_nh.handle_id) return redirect(nh.get_absolute_url()) else: name = kwargs.get('name', None) initial = {'name': name} form = forms.NewCableForm(initial=initial) csv_form = forms.CsvForm(['name, cable_type, description'], request.POST or None) return render(request, 'noclook/create/create_cable.html', { 'form': form, 'csv_form': csv_form, 'cable_types': cable_types })
def new_host(request): form = forms.NewHostForm(request.POST or None) user = request.user if request.POST: if form.is_valid(): data = form.cleaned_data if data['relationship_owner'] or data['relationship_location']: meta_type = 'Physical' else: meta_type = 'Logical' try: nh = helpers.form_to_unique_node_handle( request, form, 'host', meta_type) except UniqueNodeError: form.add_error('name', 'A Host with that name already exists.') return render(request, 'noclook/create/create_host.html', {'form': form}) helpers.form_update_node(user, nh.handle_id, form) node = nh.get_node() if data['relationship_owner']: owner = NodeHandle.objects.get(pk=data['relationship_owner']) helpers.set_owner(user, node, owner.handle_id) if data['relationship_location']: location = NodeHandle.objects.get( pk=data['relationship_location']) helpers.set_location(user, node, location.handle_id) return redirect(nh.get_absolute_url()) return render(request, 'noclook/create/create_host.html', {'form': form})
def edit_optical_link(request, handle_id): # Get needed data from node nh, link = helpers.get_nh_node(handle_id) relations = link.get_relations() depends_on = link.get_dependencies() if request.POST: form = forms.EditOpticalLinkForm(request.POST) if form.is_valid(): if 'type' in form.cleaned_data: form.cleaned_data['type'] = form.cleaned_data['type'].name # Generic node update helpers.form_update_node(request.user, link.handle_id, form) # Optical Link node updates if form.cleaned_data['relationship_provider']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, link, owner_nh.handle_id) if form.cleaned_data['relationship_end_a']: depends_on_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_end_a']) helpers.set_depends_on(request.user, link, depends_on_nh.handle_id) if form.cleaned_data['relationship_end_b']: depends_on_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_end_b']) helpers.set_depends_on(request.user, link, depends_on_nh.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditOpticalLinkForm(link.data) return render(request, 'noclook/edit/edit_optical_link.html', {'node_handle': nh, 'form': form, 'node': link, 'relations': relations, 'depends_on': depends_on})
def _create_cables(request, cables): error_cables = [] for cable in cables: try: nh = helpers.form_to_unique_node_handle(request, cable, 'cable', 'Physical') except UniqueNodeError: cable.add_error('name', 'A cable with this name already exists') error_cables.append(cable) continue helpers.form_update_node(request.user, nh.handle_id, cable) return error_cables
def new_contact(request, **kwargs): if request.POST: form = forms.NewContactForm(request.POST) if form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'contact', 'Relation') helpers.form_update_node(request.user, nh.handle_id, form) return redirect(nh.get_absolute_url()) else: form = forms.NewContactForm() return render(request, 'noclook/create/create_contact.html', {'form': form})
def new_rack(request, **kwargs): if request.POST: form = forms.NewRackForm(request.POST) if form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'rack', 'Location') helpers.form_update_node(request.user, nh.handle_id, form) if form.cleaned_data['relationship_location']: parent_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_location']) helpers.set_has(request.user, parent_nh.get_node(), nh.handle_id) return redirect(nh.get_absolute_url()) else: form = forms.NewRackForm() return render(request, 'noclook/create/create_rack.html', {'form': form})
def obj_update(self, bundle, **kwargs): bundle = super(ServiceResource, self).obj_update(bundle, **kwargs) node = bundle.obj.get_node() data = node.data data.update(bundle.data) form = forms.EditServiceForm(data) if form.is_valid(): helpers.form_update_node(bundle.request.user, node.handle_id, form) else: raise_not_acceptable_error([ "%s is missing or incorrect." % key for key in form.errors.keys() ]) return bundle
def new_site(request, **kwargs): if request.POST: form = forms.NewSiteForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle(request, form, 'site', 'Location') except UniqueNodeError: form.add_error('name', 'A Site with that name already exists.') return render(request, 'noclook/create/create_site.html', {'form': form}) helpers.form_update_node(request.user, nh.handle_id, form) return redirect(nh.get_absolute_url()) else: form = forms.NewSiteForm() return render(request, 'noclook/create/create_site.html', {'form': form})
def edit_pdu(request, handle_id): # Get needed data from node nh, pdu = helpers.get_nh_node(handle_id) location = pdu.get_location() relations = pdu.get_relations() depends_on = pdu.get_dependencies() host_services = pdu.get_host_services() ports = pdu.get_ports() dependency_categories = 'service' ports_form = forms.BulkPortsForm(request.POST or None) if request.POST: form = forms.EditPDUForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, pdu.handle_id, form) # Host specific updates if form.cleaned_data['relationship_user']: user_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_user']) helpers.set_user(request.user, pdu, user_nh.handle_id) if form.cleaned_data['relationship_owner']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_owner']) helpers.set_owner(request.user, pdu, owner_nh.handle_id) # You can not set location and depends on at the same time if form.cleaned_data['relationship_depends_on']: depends_on_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_depends_on']) helpers.set_depends_on(request.user, pdu, depends_on_nh.handle_id) elif form.cleaned_data['relationship_location']: _handle_location(request.user, pdu, form.cleaned_data['relationship_location']) if form.cleaned_data['services_locked'] and form.cleaned_data['services_checked']: helpers.remove_rogue_service_marker(request.user, pdu.handle_id) if ports_form.is_valid() and not ports_form.cleaned_data['no_ports']: data = ports_form.cleaned_data helpers.bulk_create_ports(pdu, request.user, **data) _handle_ports(pdu, form.cleaned_data['relationship_ports'], request.user) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditPDUForm(pdu.data) return render(request, 'noclook/edit/edit_pdu.html', {'node_handle': nh, 'node': pdu, 'form': form, 'location': location, 'relations': relations, 'depends_on': depends_on, 'ports': ports, 'host_services': host_services, 'dependency_categories': dependency_categories, 'ports_form': ports_form})
def edit_host(request, handle_id): # Get needed data from node nh, host = helpers.get_nh_node(handle_id) location = host.get_location() relations = host.get_relations() depends_on = host.get_dependencies() host_services = host.get_host_services() ports = host.get_ports() dependency_categories = 'service,host' if request.POST: form = forms.EditHostForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, host.handle_id, form) # Host specific updates if form.cleaned_data['relationship_user']: user_nh = _nh_safe_get(form.cleaned_data['relationship_user']) if user_nh: helpers.set_user(request.user, host, user_nh.handle_id) if form.cleaned_data['relationship_owner']: owner_nh = _nh_safe_get(form.cleaned_data['relationship_owner']) if owner_nh: helpers.set_owner(request.user, host, owner_nh.handle_id) # You can not set location and depends on at the same time if form.cleaned_data['relationship_depends_on']: depends_on_nh = _nh_safe_get(form.cleaned_data['relationship_depends_on']) if depends_on_nh: helpers.set_depends_on(request.user, host, depends_on_nh.handle_id) elif form.cleaned_data['relationship_location']: _handle_location(request.user, host, form.cleaned_data['relationship_location']) if form.cleaned_data['services_locked'] and form.cleaned_data['services_checked']: helpers.remove_rogue_service_marker(request.user, host.handle_id) _handle_ports(host, form.cleaned_data['relationship_ports'], request.user) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditHostForm(host.data) context = { 'node_handle': nh, 'node': host, 'form': form, 'location': location, 'relations': relations, 'depends_on': depends_on, 'ports': ports, 'host_services': host_services, 'dependency_categories': dependency_categories } return render(request, 'noclook/edit/edit_host.html', context)
def edit_end_user(request, handle_id): # Get needed data from node nh, end_user = helpers.get_nh_node(handle_id) if request.POST: form = forms.EditEndUserForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, end_user.handle_id, form) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditEndUserForm(end_user.data) return render(request, 'noclook/edit/edit_end_user.html', {'node_handle': nh, 'form': form, 'node': end_user})
def new_optical_filter(request, **kwargs): form = forms.NewOpticalFilter(request.POST or None) ports_form = forms.BulkPortsForm(request.POST or None) if request.POST: if form.is_valid() and ports_form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'optical-filter', 'Physical') helpers.form_update_node(request.user, nh.handle_id, form) if not ports_form.cleaned_data['no_ports']: data = ports_form.cleaned_data helpers.bulk_create_ports(nh.get_node(), request.user, **data) return redirect(nh.get_absolute_url()) return render(request, 'noclook/create/create_optical_filter.html', {'form': form, 'ports_form': ports_form})
def new_external_cable(request, **kwargs): if request.POST: form = common_forms.NewCableForm(request.POST) if form.is_valid(): try: nh = helpers.form_to_unique_node_handle(request, form, 'cable', 'Physical') except UniqueNodeError: form = forms.NewCableForm(request.POST) form.add_error('name', 'A Cable with that name already exists.') return render(request, 'noclook/create/create_cable.html', {'form': form}) helpers.form_update_node(request.user, nh.handle_id, form) return redirect(nh.get_absolute_url()) else: name = kwargs.get('name', None) initial = {'name': name} form = common_forms.NewCableForm(initial=initial) return render(request, 'noclook/create/create_cable.html', {'form': form})
def new_external_equipment(request, **kwargs): if request.POST: form = forms.NewExternalEquipmentForm(request.POST) if form.is_valid(): nh = helpers.form_to_generic_node_handle(request, form, 'external-equipment', 'Physical') helpers.form_update_node(request.user, nh.handle_id, form) data = form.cleaned_data node = nh.get_node() if data['relationship_location']: location = NodeHandle.objects.get(pk=data['relationship_location']) helpers.set_location(request.user, node, location.handle_id) if data['relationship_owner']: owner = NodeHandle.objects.get(pk=data['relationship_owner']) helpers.set_owner(request.user, node, owner.handle_id) return redirect(nh.get_absolute_url()) else: form = forms.NewExternalEquipmentForm() return render(request, 'noclook/create/create_external_equipment.html', {'form': form})
def edit_peering_group(request, handle_id): # Get needed data from node nh, peering_group = helpers.get_nh_node(handle_id) depends_on = peering_group.get_dependencies() if request.POST: form = forms.EditPeeringGroupForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, peering_group.handle_id, form) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditPeeringGroupForm(peering_group.data) return render(request, 'noclook/edit/edit_peering_group.html', {'node_handle': nh, 'node': peering_group, 'form': form, 'depends_on': depends_on})
def edit_service(request, handle_id): # Get needed data from node nh, service = helpers.get_nh_node(handle_id) relations = service.get_relations() depends_on = service.get_dependencies() dependency_categories = ['host', 'firewall', 'odf', 'optical-node', 'optical-path', 'optical-filter', 'router', 'service', 'switch', 'external-equipment'] user_categories = ['customer', 'end-user'] if request.POST: form = forms.EditServiceForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, service.handle_id, form) # Service node updates if form.cleaned_data['relationship_provider']: owner_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_provider']) helpers.set_provider(request.user, service, owner_nh.handle_id) if form.cleaned_data['relationship_user']: user_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_user']) helpers.set_user(request.user, service, user_nh.handle_id) if form.cleaned_data['relationship_depends_on']: depends_on_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_depends_on']) helpers.set_depends_on(request.user, service, depends_on_nh.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditServiceForm(service.data) return render(request, 'noclook/edit/edit_service.html', {'node_handle': nh, 'form': form, 'node': service, 'relations': relations, 'depends_on': depends_on, 'dependency_categories': dependency_categories, 'user_categories': user_categories})
def edit_site(request, handle_id): # Get needed data from node nh, site = helpers.get_nh_node(handle_id) relations = site.get_relations() if request.POST: form = forms.EditSiteForm(request.POST) if form.is_valid(): # Generic node update helpers.form_update_node(request.user, site.handle_id, form) # Set site owner if form.cleaned_data['relationship_responsible_for']: responsible_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_responsible_for']) helpers.set_responsible_for(request.user, site, responsible_nh.handle_id) if 'saveanddone' in request.POST: return redirect(nh.get_absolute_url()) else: return redirect('%sedit' % nh.get_absolute_url()) else: form = forms.EditSiteForm(site.data) return render(request, 'noclook/edit/edit_site.html', {'node_handle': nh, 'form': form, 'relations': relations, 'node': site})