Jacob Peddicord

SLS introduction

August 16, 2010 at 08:22 PM | categories: Programming, GSoC 2010, Planet Ubuntu, Ubuntu | View Comments

So what is SLS, and how can it be used to change settings? I've talked about it a lot, but what are the practical applications? This 5-minute screencast should give you a general idea: I go through the process of writing a quick SLS XML definition to show it all in action, from a developer point of view.

The complete documentation and reference to SLS is available here and under /usr/share/doc/jobservice. If you're interested at all in using SLS for a service, I highly recommend you check that page out, even if just to skim.

If you maintain or help maintain any system service, be it a media streamer or a web server, do get in touch and we'll see how jobservice and SLS can apply to your service.

Read and Post Comments

Call for testing: jobs-admin

August 03, 2010 at 12:33 PM | categories: jobs-admin, Programming, Planet Ubuntu, Ubuntu, jobservice, GSoC 2010 | View Comments

/assets/16-jobs-admin-cft-aug.png

Google Summer of Code ends this week, which indirectly means that jobs-admin is now ready for testing! Interested testers need only to add a PPA and install a package to begin. Within a few days the packages will be available in maverick universe.

sudo add-apt-repository ppa:jpeddicord/jobs
sudo apt-get install jobs-admin

Essentially, jobs-admin is a replacement for services-admin. Upstart support has been added, along with the ability to change settings on individual services. For example, you can tweak simple firewall settings or enable and disable Apport.

jobs-admin may be launched from the terminal, or can be found under System > Administration > System Jobs. We've hidden most jobs/services that are essential to your system, so ideally you shouldn't be able to break anything even if you wanted to. With that in mind, feel free to give it all a stress test. Shut off jobs you don't want, and change the settings of others. By testing this you'll also be testing jobservice, the daemon which powers it all. Think of jobservice as a "PackageKit" for system services: it's a generic backend to manage jobs no matter whether a system is running Upstart or a basic System V setup.

Bugs can be reported on Launchpad:

http://bugs.launchpad.net/jobsadmin

We're also open for translating:

  • - for most UI elements
  • - for job settings

Any and all feedback is welcome. We'll have a bugfix release in the next few weeks. I won't be responding to reports or feedback until August 16 (Monday), however.

For Maverick, you'll be able to install jobs-admin and have easy access to your system's services. The PPA will be maintained so Lucid users aren't left out. We're hoping to make this the de-facto utility (and framework) for managing services and jobs, and hopefully you'll see this in-place as the replacement for the missed services-admin in 11.04. I'll be working on getting these packages into Debian as well.

Read and Post Comments

More GSoC updates

July 07, 2010 at 05:44 PM | categories: jobs-admin, Programming, Planet Ubuntu, Ubuntu, jobservice, GSoC 2010 | View Comments

It's been a while. Well, in internet years, anyway. I've made a lot of updates to jobservice and jobs-admin in the past few weeks:

  • service-level settings works
  • sporting a new UI
  • speed improvements
  • tons of bug fixes

I'll let the video do the talking (click the image):

jobs-admin-jul.png

Shoutout to Matthew Paul Thomas who provided the feedback for this new interface. :)

You can see service-level settings in action in the video. It's shown for apport and ufw. There's been a little confusion as to what this actually is, so here's a fancy diagram:

jobs-admin-jul-diagram.png

When you click that shiny "Job Settings" button, a lot of things happen. jobs-admin tells jobservice that settings were requested. jobservice then asks each of the backends if they have any settings on that particular service. Then it goes to SLS, which first looks up an XML file, and then uses that data to parse the actual configuration files. This is all compiled together by jobservice and sent back over DBus to jobs-admin, which renders some GTK widgets with this information. When a setting is changed, jobs-admin sends the changes to jobservice, which sends it back to wherever it came from.

SLS doesn't have anything to do with services themselves, just their configuration. When you start, stop, or look up information on a job, that is all handled by the appropriate backend.

Now, there is a PPA somewhere with these changes to play around with, but I won't link it here (though it isn't hard to find). I'd like to get more things together before there's a call for testing, but I won't prevent anyone from using it.

Also: I upgraded this site to Movable Type 5. Let me know if you notice anything broken. :)

Read and Post Comments

jobs-admin & jobservice new feature: it works!

June 16, 2010 at 01:54 PM | categories: jobs-admin, Programming, Planet Ubuntu, Ubuntu, jobservice, GSoC 2010 | View Comments

So this week I've hit a semi-awesome milestone with jobs-admin and jobservice: service management works!

On a Lucid system you're now able to start and stop not only System V services, but also Upstart 0.6 jobs.

jobs-admin-1.png

A demo video is available here.

SysV jobs are currently handled using system-tools-backends, though I may look into doing another implementation that doesn't have any external dependencies.

The Upstart 0.6 backend was pretty tricky: Upstart is able to turn the jobs on and off for us, but to disable them we need to edit the config files under /etc/init. It works, though it may need some more through testing to be sure it's all good.

The Upstart 0.10 backend has not been written yet, as 0.10 currently doesn't exist.

Service-level settings still need to be implemented. This will be tricky to do correctly, but I think it will be a valuable feature.

Finally, if you're feeling brave, branch lp:jobservice and lp:jobsadmin to give things a try, though don't expect everything to work as it should. I'll have a PPA ready within a week for testing once things have stabilized.

Read and Post Comments

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.

Read and Post Comments

Feed Contact Google+ Twitter LinkedIn GitHub