User Tools

Site Tools


soft:server-roadmap

Roadmap

Match implementation with the latest specification updates.

1.0

The first major release will be based on "confined" milestone specifications. It is expected to be an stable and fully featured release.

General

  • Remember to make use of ModelField.editable when needed
  • Consider to add a search box on the dashboard, maybe using Haystack
  • Consider to use sphinx for documentation
  • Consider to use django loging system for debugging info
  • Look for a better approach for managing INSTALLED_APPS, core applications on base_settings optional apps in settings?
  • Consider to write sysadmin documentation, ie: reset rabbitmq, apache status
  • ShowText like widgets: clean_field_name: return self.initial['field_name']
  • Make sure controller modules do not import settings
  • on admin replace get_object_or_404() and self.get_object() by more error tolerant logic i.e.
            state = self.get_object(request, unquote(object_id))
            if state is None:
                raise Http404('State with id "%s" does not exists' % object_id)

Nodes

  • Javascript based user warning when set_state is set failure “Hey do you know that manuall intervention will be required?, Are you sure?” Fixed at commit 40cf633e
  • Make REST API node endpoint “writable”

Slivers

  • Move iface and vlan_nr validation logic in iface definition rather than SliverIface model?
  • Ensure one isolated per node and sliver
  • Make interface nr dynamic

Mgmtnetworks

  • Defer execution of task inside the task: Ie. connection error to rabbitmq raises before transaction commit so the user gets a message which says that everything has gone ok when not.
  • Signal + defer to make sure tinc is created when node is added
  • Offer SO-dependent instructions and mention root privileges on the tinc help page
  • Incorporate Host.name?
  • Consider to use tincd -U setuid instead of sudo?
  • Add curl command to upload tinc key in tinc help page
  • Generate tinc config files according to tincaddresses

Users

  • Change existing node/slices state when allow_slices and allow_nodes transitions to False Fixed at commit 8b1f647c
  • Consider to make roles and resource dynamic (allow_slices/slivers)?
  • Consider to create an admin users task list on the dashboard?

State

  • Read sliver ips from json
  • Next retry on looks like a bit buggy
  • notificate someone when node respons with 500?
  • convert state history graph seconds in human time
  • Hook sliver iface IPs

Pings

  • Ping timeout setting
  • Consider to aggregate older pings, otherwise the timeseries grow unbounded #516
  • Load new data depending on the selected min and max

API

  • Update api wiki documentation page
  • Use writable serializers when available
  • wrap api calls under transactions

Permissions

  • Consider to hide fields like passwords and emails
  • Consider to filter querysets like tickets and messages
  • Implement permission caching on the backend
  • Update permissions wiki documentation

Firmware

  • Enable authtokens plugin on VCT by default
  • Consider to warn user when firmware confine-usb is selected but not downloaded or ask pau to create one without preloaded images and download it during setupfirmware?
  • </del>Improve help instructions (sysupgrade vs flash vs usb)</del>
  • Consider to provide an extra private attribute for files and plugins in order to say whether it's appropriate to save it on the build image (buildfile/kwargs) ?
  • Warning message saying the node will not be operative without those files! make sure they are there
  • firmware builds without tinc server keys, make this break
  • Add extra features on the REST API (select base image, exclude optional files, plugins…)

Communitynetworks

  • Common node db interaction
    1. GET sliver info, node arch
  • Check if CNDB link is provided, and warn user if not?
  • Maybe the confirmation page can show what attributes will be updated and their values. Maybe using a formset with these fields: update(checkbox)|name|value(charfield)?

GIS

  • NodeGeolocation.node should not be null=True (otherwise delete on cascade will not be emulated when nodes are deleted) Fixed at a45992cd
  • Consider to represent how RDs are linked between them? showing the underling community network? and isolated interface connectivity with other RD's? See monitoring system.
  • select nodes for creating slivers from a map
  • OpenLayers bug #2187 (map not working on hidden divs): possible workaround: map.updateSize() source.

Notifications

  • Consider to allow users to disable notifications?
  • Consider to rename the application to alerts?
  • configure plugin settings from the web iface with update_settings function?
  • max notifications per event (flap detector) and heuristic to avoid notifications when all nodes are down

Maintenance

  • Consider to execute inside screen by default?
  • Consider to implement support for executing the script without the ssh wrapper and also execute python code with django context
  • While STARTED poll maintenance.stdout and stuff to dynamically update the web interface

Monitor

  • Reloading a process may (nginx) make a master process to renew its children. This is a problem with the current model of counting CPU ticks because the master waiting counter has not been reset. Maybe is it simply good enough to return parent.wait+child.working ?

Installation

  • Make the install commands more aware of custom systems
  • Consider –dry option to output the command steps without performing any system change
  • Try manage better the dependencies. consider to import first, install when fails
  • controller-admin.sh install_requirements introspect INSTALLED_APPS for deciding what to install ?
  • additional steps best practicesCommunity-Lab/CONFINE administrator's guide
  • python manage.py controller_version Fixed at commit c87a4c41
soft/server-roadmap.txt · Last modified: 2014/12/10 15:44 by santiago