Warning Livedoc is no longer being updated and will be deprecated shortly. Please refer to https://documentation.tjhsst.edu.


From Livedoc - The Documentation Repository
Revision as of 19:56, 7 October 2013 by 2015jholtom (talk | contribs) (Designed for the TJ Computer Systems Lab)
Jump to: navigation, search



  • Scheduler + Databased (MySQL)
  • Web Frontend

Scheduling Process

  1. API Request
  2. Do we currently have resources to service?
  3. If yes -> pick first vm
    • mark active and timeframe
    • power on if not already on
    • retrieve connection details
    • increase resource in use count
  4. If no -> Determine next available VM that can service request
    • Mark for use in {x} minutes
    • Set callback to send e-mail to user and complete step 3 now that we have sufficient resources
  5. Return the user the associated details depending on Questions 2 - JSON to web interface

Admin Interface

  • Pool management
    • Add VM's to pool
    • Modify types of requests
    • Reset user requests and make overrides
  • Resource Overview

Database Structure

  • User TABLE
    • User ID
    • Current Allocation
    • Request count
  • Resource TABLE
    • id
    • name
    • type
    • host
    • status
    • time_requested
    • length


  • Add advance reservation

Packages Required

  • Python-libvirt
  • Flask
  • PeeWee Python ORM
  • APScheduler
  • python 2.7
  • Python-gobject
  • gobject-introspection
  • simplejson (python)
  • MySQL-python

Install Guide

  1. Serve up the static folder with your choice of webserver with php support
  2. Edit php variables in static/authenticate.php to fit your LDAP/AD environment
  3. Place the root of the Flask application in api @ /api Suggested method: Apache ProxyPass
  4. Set all the variables to your environment in api/scheduler/config.py
  5. Create the database tables by executing createtables.py
  6. Add resources using createresource.py
    • Optional: Add users via createuser.py for statistics tracking. username and ID should correlate with LDAP.
  7. ...
  8. Profit.