SWAT Feature Details and Discussion

Ricardo rvelhote at gmail.com
Sat Apr 25 17:45:31 GMT 2009

Hi everyone,

I posted during the morning to the summercode mailing list but the 
message doesn't show up and I just discovered there are only three 
subscribers so I'm sending to technical instead.

I'm (re)posting some relevant parts of my initial proposal hoping for 
some additional feedback. As I said before this was already discussed 
with Jelmer but I am of course open to more suggestions/changes.

Project Deliverables
A Web Administration Tool for Samba4
$ Not much to say ehe...

New SWAT usage guide
$ A Wiki article for now. Who knows in the future, an inclusion in the 
Samba4 user guide.

Allow the user to set comments (on shares for example)
$ Important for users to keep documentation on what a share is for

Try to keep comments, default values and parameter order in smb.conf. In 
other words, don't completely destroy smb.conf
$ One of the big complaints of the previous SWAT was that it destroyed 
smb.conf. I will attempt to not destroy it :)

Easier Setup
$ It's not yet decided if SWAT will be distributed with Samba4 or if it 
will be a separate package. In any case the process of getting SWAT 
working should be as smooth as possible.

Allow for easier integration of new Samba parameters in the SWAT and its 
$ Because it's still under (heavy) development there will be many 
changes to parameters. This may also be true even after development when 
new stuff needs to be added. In any case I want to create a way to make 
this process painless.

$ :)

LBD editing and browsing
$ Managing the database engine in Samba4

Modularity (for example, changing passwords and managing shares would be 
a module. New feature means new module to plug in)
$ Important for future development and contributions. I have decided to 
use Pylons as a web framework and using the MVC pattern I believe we can 
achieve this quite well.

HTML templating to allow easy customization (a distro could use its own 
logo or change colors for example)
$ A result of modularity. It's mainly to allow users to do whatever they 
want in regards to how it looks. Sometimes people don't use/use 
something based on how it looks ;)

User selection for share permissions (valid users, write list etc.)
$ List of selectable users to attribute to shares. I will also include

Assistance in path selection for shares
$ Help the user select a path to share instead of just punching it in. 
Less error prone.

Samba Registry editor

Samba backup and migration tools
$ Backups everything Samba needs to setup/move a server based on an 
existing configuration. Also provide the means to re-import it.

Accessing/Analyzing Log files
$ Important because it's an Administration Tool :)

Attempt to run through the "Samba Checklist" to help diagnose problems
$ Attempt to address common problems with Samba directly in the Web 
Interface. I based this item on the checklist present in the Samba3 manual.

Better monitoring of Samba related processes and daemons
$ Try to do something better than just checking if it's up/down and 
doing startup/shutdown. I'm not really sure on what to improve here and 
what needs exist in this area.

Handle existing includes in files
$ Samba has an "include" instruction for better organization (mainly for 
shares I presume). SWAT should be able to deal with that. This is also 
part of the "Don't destroy smb.conf" part.

Regular login screen in addition to the HTTP Authentication pop-up

Allow editing of SWAT configuration within SWAT
$ Not much to say here. If someone just wants to change ports or 
deactivate or do something else I haven't thought of yet.

Internationalization (i18n)
$ Not much to say here

As I mentioned above I'll be using a Web Framework to aid development of 
SWAT. I want to make SWAT modular to ease development, contributions and 
testing and existing frameworks provide this with the MVC pattern. I 
chose Pylons because it's light, well regarded and I used it for a bit 
and it seemed nice as well :)

For Javascript I chose Mootools because it's awesome and I have 
experience using it.

Besides these it will be the standard stuff for Web Development as well 
as Samba4 and an LDAP install.

I had planned some milestones but I'm already missing them because I 
planned to start way too early :) Anyway, these are my new plans for now.

//M1 - Reached before that start of the official GSoC coding date)
$ HTML Prototyping and Base SWAT Architecture Done

I plan on doing an HTML prototype first so that the community can see 
how SWAT will look like before I start the actual implementation. I'm 
hoping to get plenty of feedback on this. I already thought about this 
and I have some ideas in my head but nothing very clear.

Another important part is defining a good architecture. I'm not just 
mentioning the modular aspects of the features but I want to have a well 
defined SWAT core.

M2 - Reached by GSoC "start coding date" but never before M1 is reached//
$ Start Development

That's all for now.

Thank you.

More information about the samba-technical mailing list