Google Summer of Code 2013 Ideas

Note

This page is kept for historical purposes. Please check the latest year’s ideas page for the most up to date information.

Welcome to the Oregon State University Open Source Lab Google Summer of Code Ideas page.

Ganeti Web Manager

Ganeti Web Manager is a Django based web application that allows administrators and clients access to their Ganeti virtualization clusters. Through Ganeti Web Manager users can deploy and manage virtual servers. Ganeti Web Manager is being built by the Open Source Lab to support Supercell, a testing cloud for open source projects.

If you would like to get started with playing with Ganeti, we recommend you checkout our Ganeti Vagrant Development/Testing Environment (look at the README for instructions). It uses VirtualBox to create a small Ganeti cluster on your own computer so you can understand the basics. Additionally we recommend you read the Ganeti Walk-through documentation to familiarize yourself with Ganeti. You can also checkout this Ganeti Tutorial Guide to do some hands on command line familiarization.

Visit our irc channel #ganeti-webmgr on freenode for help getting started.

Projects

These projects are only suggested by us. Please feel free to look at the GWM Issue Tracker for more ideas for projects. But please discuss any ideas with us first.

Bulk Operations

Please talk with us about this project before submitting your proposal.

We have started working on some of the Bulk operation tasks but this project would likely be mostly focused on the Bulk VM Creation feature. This will require quite a bit of thought on how the UI works and how it will interact with the templating system we’ve implemented.

Add visualization of clusters, nodes, and or virtual machines

This would be for visualizating how the cluster works and how the virtual machines and nodes interact. It does not use any real-time monitoring data other than what Ganeti provides itself. The goal is to help cluster admins see how their cluster is doing from a visual point of view.

Implement a mobile site

Currently GWM does not offer any mobile site solution. The goal of this project would be to create a mobile version of some of the basic features GWM provides. It wouldn’t offer access to the console for example, but at least access to control the VM’s power state, see cluster status, deploy a new VM, etc.

Vagrant

Vagrant is an open source tool that we use at the lab quite a bit. It currently supports VirtualBox and now more recently VMWare. Vagrant itself is still in a bit of flux over this so we may need to work with upstream on the viability of adding this feature.

Projects

Add Ganeti provider to Vagrant

The project would be to create a Ganeti provider for Vagrant which will allow users to power their virtual machines from a ganeti cluster instead of depending on their local workstation. This is ideal for use cases such as testing an environment with hundreds of VMs. Vagrant upstream recently made a change to their code to that writing a provider would be possible. Ganeti provides an Remote API (RAPI) to manage a cluster from however it doesn’t quite line up with a lot of other providers.

The scope of the project would likely be:

  • Write a basic provider that connects to the RAPI and can deploy/connect to a virtual machine using the normal Ganeti deployment strategy.
  • Try to add other vagrant specific features if the RAPI supports it directly.
  • Attempt to implement importing of boxes into Ganeti (this may not be easily possible).

Openconferenceware-Android

Openconferenceware-android is an open source project we started three years ago to provide an android conference app for Open Source Bridge. Since then its unfortunately been neglected by us and has been mostly taken care of by Igal’s fork of OCW-Android. It was also used at OSCON in 2010. Please also take a look at the project page for background info and documentation.

We intend to re-launch the project and try to merge in the changes that Igal and others have done to try and unify the project.

Projects

Some of these can be merged into one large task:

Merge all forked code into a unified code-base

Test all the code from various forks and try to merge any useful features or commits. Try to generalize any site specific code that might be included in the other projects. Update the documentation.

Add new useful features

We don’t have any specific features we’d like to add but taking a look at the various issue trackers might be a good place to start.

Make the app more flexible to other conference data formats

Right now the application will only work with Openconferenceware’s data format which isn’t very flexible. In the past we wrote a small Django application called ocw-android-oscon-dataservice which screen scraped the OSCON site to generate a format that worked. Its not the most ideal solution but it worked at the time. It would be nice to have a more unified way to make this work whether you’re using Drupal to run a conference or whatever else.

Ganeti Instance Image

Ganeti Instance Image is a guest OS definition for Ganeti that uses either filesystem dumps or tar ball images to deploy instances. The goal of this OS definition is to allow fast and flexible installation of instances without the need for external tools such as debootstrap. It was originally based on ganeti-instance-debootstrap.

Ganeti

Ganeti is an open source project run by Google and used heavily at the lab. It provides a manangement layer on open of various open source hypervisors such as KVM and Xen to provider a stable virtualization platform.

Projects

Improve support for LXC hypervisor

Currently Ganeti has limited support for LXC and has an open feature bug for improving the support. We’d like to work with the upstream project and have a GSoC student work on improving this feature. This would require quite a bit of knowledge of how LXC and Ganeti works so only advanced students need apply. They would likely need to know a fair bit about python as well and possibly a little bit of haskell.

Other OSL Projects

We have other projects that you might be interested in however we don’t have a specific idea in mind for GSoC. You might take a look at their issue trackers and see if any of them interest you. Some are old projects that we haven’t touched in a while because of other priorities so please keep that in mind.

Protein Geometry Database (PGD)

Protein Geometry Database is a specialized search engine for protein geometry. It allows you to explore either protein conformation or protein covalent geometry or the correlations between protein conformation and bond angles and lengths. It is primarily a django project with a lot of javascript logic built into it. This project is a joint venture between the OSUOSL and the Oregon State University Biochemistry department on campus.

Feel free to take a look at the PGD Issue Tracker for ideas but please discuss any potential ideas with us first before pursuing them.

Touchscreen

Touchscreen is a framework for developing interactive kiosk displays. Touchscreen powers the display screen used outside the Open Source Lab’s server room. We use a 42” LCD flat screen, with a 17” touchscreen display to control it. Screens are built using HTML, CSS, and Javascript and the backend is powered via Django. Touchscreen was a GSoC 2010 project and was very successful.

Unfortunately over time the project has been left unmaintained due to staff time and it horribly outdated (i.e. still uses a very old version of Django). We would like to revive the project with some renewed focus. Please take a look at the project and discuss with us any ideas you are interested in.