Skip to content
A web application that allows students to reserve virtual machines in an OpenStack cloud
JavaScript Python Other
Find file
Failed to load latest commit information.
bin
bootstrap changed template to use labinski name
test
views added check if ip is none then print a message in the table instead o…
.gitignore
LICENSE added license
README.md added check for no jobs so that doesn't error out
celeryconfig.py
htpasswd changed to work without sessions, use REMOTE_USER only, thus must be …
labinski.py added check for no jobs so that doesn't error out
labinski.wsgi still working on celery tasks
labinski_httpd.conf
manage.py added namedtuple for server object in /connetions to help deal with a…
model.py added ports_fowarded to model for first stab at adding iptables ports…
modelapi.py added a database model using elixir, and a few management commands, a…
novaapi.py adding celery
pg_hba.conf adding pg_hba.conf file
pip_freeze.txt not sure...
settings.py added Reservation to import in tasks, added a check for the key_name …
tasks.py added Reservation to import in tasks, added a check for the key_name …

README.md

The Labinski

The Labinski is a virtual computer lab that runs on top of OpenStack using the python novaclient.

The Name

Labinski means "lab in sky", ie. a virtual computer lab in the "cloud."

Requirements

  • An OpenStack cloud (Not as hard to get as one might think: can be run inside a vm with devstack)
  • A database that is supported by SQLAlchemy (eg. postgres)
  • python (developed on python 2.6.6 in CentOS 6)
    • Novaclient
    • Celery
    • Bottle
    • Others...see pip_freeze.txt

Usage

  • Create a database that is supported by SQLALchemy (ie. postgres/mysql)
git checkout https://github.com/curtisgithub/labinski
cd labinski
  • Edit the settings.py file, make appropriate changes
  • Edit/create the openstackrc.py file, make appropriate changes
python manage.py reset
python manage.py loadtestdata
python manage.py runserver
  • Open a web browswer and login to localhost:8080
Something went wrong with that request. Please try again.