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

Difference between revisions of "Cepheus"

From Livedoc - The Documentation Repository
Jump to: navigation, search
(cepheus)
m (Install Guide: categorize)
 
Line 66: Line 66:
 
# Create the database tables by executing <code>createtables.py</code>
 
# Create the database tables by executing <code>createtables.py</code>
 
# Add resources using <code>createresource.py</code>
 
# Add resources using <code>createresource.py</code>
#* Optional: Add users via <code>createuser.py</code> for statistics tracking. username and ID should correlate with LDAP.<br />
+
#* Optional: Add users via <code>createuser.py</code> for statistics tracking. username and ID should correlate with LDAP.
 
# ...
 
# ...
 
# Profit.
 
# Profit.
 +
[[Category:Obsolete Page]]

Latest revision as of 16:41, 26 February 2016

Roadmap

  • Scheduler + Databased (MySQL)
  • Web Frontend
  • REST API

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

Improvements

  • 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.