About Screenshots Documentation

About dsadmin

Dsadmin is the shiny integrated administration system we use over here at dotsrc.org. It's still far from complete, but the groundwork is laid, parts are already in use and additional functionality is relatively easily added.

Existing and planned tasks include:

Obviously there's still a lot to be done, but most of that can be done rather easily, step by step.

More Information

Since people tend to like colorful pictures, I've taken a set of screenshots. They are not particularly meaningful of course, as most of the functionality is of the "messin' around in the system" type.

If you're more curious, there's also some developer documentation. Nothing very extensive I'm afraid, since (a) I am (and most likely will stay) the only person working on this and (b) dsadmin is custom software for dotsrc.org, so interest to others is expected to be, uh, "limited"...

And if you're really curious, you can have a look at the source itself. Anonymous access to the svn repository is not set up yet, but there's a snapshot you can download. Alternatively you can simply browse the copy of the source tree on this site.

Trivia

This is the output of "rake stats" (as of 2006-11-11):

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Helpers              |   163 |   102 |       1 |      13 |  13 |     5 |
| Controllers          |   603 |   324 |       8 |      47 |   5 |     4 |
| Components           |     0 |     0 |       0 |       0 |   0 |     0 |
|   Functional tests   |   675 |   365 |      17 |      48 |   2 |     5 |
| Models               |   533 |   266 |       9 |      40 |   4 |     4 |
|   Unit tests         |  4059 |  2392 |      65 |     224 |   3 |     8 |
| Libraries            |  9850 |  5224 |     120 |     553 |   4 |     7 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                | 15883 |  8673 |     220 |     925 |   4 |     7 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 5916     Test LOC: 2757     Code to Test Ratio: 1:0.5

As you can see, it's not quite a trivial project anymore. The figure of 138 non-test classes is probably a bit higher than the actual value though -- I'm counting 51 source files in lib/, and only a few of those contain multiple classes.

The numbers also show that I should invest some more time in writing tests (especially since ruby code requires lots of tests), but considering that much of the dsadmin code is bloody hard to cover in automated tests(*), I think I'm doing reasonably fine.

(*) Think stuff like filesystem operations, network operations, distributed processing, exec()ing of other programs, timed execution etc. And of course sometimes all of that (e.g. once a day telling another admind instance to execute the lftp-mirror.rb wrapper script which executes lftp which mirrors some directory tree from a remote server, then execute du to get the actual size of the tree, and finally write a file containing some timestamp information so that the upstream mirror can see that we are in fact up-to-date).

Author and Stuff

Dsadmin has been (and is being) developed by me, Christian Reiniger.

The code is under the GPL. That should be noted in all source files anyway, but now you have it conveniently here as well.