[Soc-coordination] Report 3 — Lyncee - A Debian virtual image web tool

Miguel Gaiowski miggaiowski at gmail.com
Mon Jul 2 00:53:34 UTC 2012

Third Debian Report
Project: Lyncee - A Debian virtual image web tool

The project I'm working on is  to create a web interface that lets the
users create custom virtual Debian  images. The project can roughly be
separated as backend and frontend, and I've been working on the latter
these past two weeks.

The frontend is a web interface  where the user will be able to select
all the configuration wanted for the virtual image. The build this web
application, I'm using Python with Django.

Django makes it very easy to deal with the underlying database system,
allowing   me    to   focus   on   functionality    rather   than   DB
idiosyncrasies.  I've created a  model of  the configuration  the user
inputs. Django translates this model into a database scheme.

I've also  created templates for the  user interface, that  is what is
shown to  the user. First  of all, a  form where all the  settings are
selected. Some of these settings are:

- image name (just an alias to identify this image)
- architecture
- boot_append (extra options for grub)
- chroot_scripts (scripts that will on first boot)
- filesystem (ext3, ...)
- hostname
- mirror
- packages (list of packages)
- password (root password)
- release (squeeze, ...)
- target (filename for the image, not sure if this will be kept)
- vmsize (size of disk image)
- user (user will have to be logged in actually)

For now,  the only other  template is to  see the status of  the image
creation. I've written  all the code to get the  request from the user
through the form, process it and store in the database. Also, with the
ID given to the user, he can check for the build status.

I'm  a little  behind the  schedule I  wrote in  my proposal.  That is
because  I didn't  expect  the classes  I  was taking  to  be so  time
demanding. I  had some exams and  lots of assingments in  the last two
weeks,   so   I  couldn't   work   as  much   as   I   wanted  on   my
project. Fortunately, classes ended yesterday, so now I'm free to work
on Lyncee and catch up with my scheduled work.

What's next: I will be  linking together the backend I've written with
the frontend. This is simple, I  only need to call the backend when we
receive a request. I need to write some code for the backend to update
the status of  the creation in the database, so the  user gets to know
how his image build is going.

For now,  the templates are very  spartan, I intend  to prettify them,
making the interface more intuitive  and appealing. Also, now the user
needs to upload  a file with the names of all  packages wanted. I will
change  this, letting  the user  choose the  packages directly  on the
page. An autocomplete field would be awesome to select the packages.

All my code is hosted on alioth. The project is at [0].
The git repo is at [1].

[0] https://alioth.debian.org/projects/lyncee/
[1] git.debian.org/git/lyncee/lyncee.git

Miguel Gaiowski

Miguel Fco. A. de Mattos Gaiowski

More information about the Soc-coordination mailing list