Jacob Peddicord

Bringing it Back

May 29, 2010 at 09:07 PM | categories: jobservice, jobs-admin, GSoC 2010, Planet Ubuntu, Ubuntu | View Comments

As you've all probably heard, Google Summer of Code "officially" began this previous Monday. I've been rather busy this week typing stuff up and getting the foundation set for the summer.

I'm working on the project titled "services-admin configuration and Upstart-ification," though the title is rather inaccurate. Trying to actually implement Upstart functionality proved to be quite a showstopper for system-tools-backends, which is what powers gnome-system-tools and in turn services-admin. So, we've decided to split off into a new project designed from the ground up to handle Upstart 0.6, the future 0.10, and existing compatibility with System V init scripts.

The project is comprised of two parts: jobs-admin, a new GTK+ frontend intended to replace the functionality of services-admin, and jobservice, a dedicated job & service management... service. Yeah, I'm not terribly creative with names. :)

The plan is to continue with the proposal submitted to Google and on the Ubuntu wiki, with the exception of replacing the existing gnome-system-tools and system-tools-backends with these new software pieces.

Here's a small mockup:

jobadmin-mockup.png

The main window on the left shouldn't feel too unfamiliar: select a service on the left, and view its status on the right. Clicking the Service Settings button will bring up the dialog on the right. This dialog is one of the special parts of the project: it adapts to whatever service you want to manage. The details for these "service-level settings" aren't finalized, but it will most likely read settings from a directory such as /usr/share/jobservice/sls in an i18n-able XML-based format. I think initially we'll ship some settings for common system services, though eventually it would be great to see packages shipping their own for easy administration.

So far I've gotten the main window to display a list of services. Doesn't sound like too much, but there's a lot of framework there for developing the rest of the features.

One of the key things I'm keeping in mind developing jobservice is that backends should be easily interchangeable. Currently there are three planned backends: sysv, upstart_0_6, and upstart_0_10. More than one backend can be in use at a time; on a Maverick system you'll likely have upstart_0_10 and sysv active. When systemd is made available, it should be pretty easy to write a backend for it.

We'll have PPAs available for Lucid and Maverick as soon as things start to stabilize. Eventually, jobs-admin and jobservice should be available in the Maverick archives. If things turn out well, perhaps you'd even see this in main or on the CD. (I'm not sure if I'm being too ambitious, here. ;) ) I'm going to write up a full specification which I should have finished tomorrow. If there's someone who can lend assistance in getting this approved, feel free to send me a ping.

There's a lot to do over the summer, but things are looking well on track. I'll keep this blog updated as things start to take shape.

Shoutout to Milan Bouchet-Valat, who maintains gnome-system-tools, for his help in determining the scope of what needed to be done (or not done, in this case) on g-s-t and for helping me realize what direction to take with the project.

And thanks to David Bensimon, who's [very patiently] mentoring me and this project and got me to wake up on time for UDS sessions. (Ah, timezones.) Looking forward to a great summer.

blog comments powered by Disqus
Feed Contact Google+ Twitter LinkedIn GitHub identi.ca OpenID Launchpad