StringNet

  • Launchpad Entry: stringnet-1.0-release

  • Created: Philip Peitsch

  • Contributors:

  • Packages affected: StringNet

Summary

StringNet is a program for automatically changing the configuration of a computer based on the current network and location the computer occupies

Scope

This program is not intended to replace the existing network manager or any of its functionality. It is intended as a friendly GUI for configuring if-up and if-down scripts to run upon certain network events.

Use Cases

Frank often carries his laptop between Uni and Home. Each location requires a unique set of default printers, proxy settings, and other location-specific configurations such as VPN etc. Frank wants a way of configuring these on a per-location basis, that is robust enough both wireless and ethernet networks.

Sophie sometimes goes to her parents house with her laptop. She has a network printer configured at her parents house, and a different printer configured at home. She doesn't like needing to continually change the printer settings when moving between houses and would like a way to automate it.

Greg has a laptop with an ethernet port. He also has a 3G modem that he occasionally plugs in. He would like to automatically share his internet when he is connected to certain ethernets (i.e., dnsmasq, ipmasq).

Lucy has a bunch of applications that need to be configured and run upon connecting to a network, such as amsn. Some of these programs require manual scripts to be created in order to properly modify the program settings.

Design

The design will be broken up into two specific parts. The network detector will be responsible for deciding the network/location the computer is currently at.

Network Locator

This may employ various techniques such as matching IP addresses, recognising hosts, or possibly even geo-location. For the initial release only IP address matching and wireless networks will be supported. These will be configured on a per-user basis, or possibly shared among multiple users on a system.

Profile Loader

The profile loader is responsible for setting various profile settings based on the current location. This will contain a list of supported actions (e.g., set proxy, set default printer), and applications that can be configured (e.g., amsn, firefox). These will be configured on a per-user basis, or possibly shared among multiple users on a system.

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

For a proxy configuration script: How to determine which applications need to be configured?

User defines the set of desired configuration options, including a "default" set Possibly using auto-configure scripts. see for example http://en.wikipedia.org/wiki/Proxy_auto-config

Ideally the program should be able to determine which applications that need to be configured are installed and consecutively know or be able to figure out how to configure them. In practice, for the beginning, configuring few very common things (like gnome, the http_proxy variable, amsn etc) should do. An improvement would be if we could(?) create, maintain and update (that will be the hardest part:S) a list of applications and configuring instructions for each of them (i.e. what needs to be changed to configure each of them). This list can then be used in several ways: The user will be shown the list of the supported applications so that he/she can choose (tick mark?) which ones he/she wants to be auto-configured. The program then will configure them using the instructions. Alternatively, the program could(?) determine automatically which of the applications within the list are installed in the system (is that possible???) and then configure them using instructions from the list.

A bit of discussion on the scope: I understand and agree that it will be better not to restrict ourselves to particular things (i.e. not to provide for example only proxy configuration). Wicd (an alternative to network manager) offers the script functionality (i.e. runs scripts on network up/down events). I would say that the problem is what scripts to run and how to create them. I'm afraid for this we inevitably have to limit the choices to few common cases (like proxy or printer settings).


CategorySpec

StringNet (last edited 2009-04-10 12:37:57 by 210-84-5-206)