Skip to content
mikldt edited this page May 30, 2012 · 3 revisions

Requirements

Ruby, Rubygems (Sinatra), a compatible webserver
Bash
System utils optional: uptime, ps, munin, etc.

Gems:

  • daemon_controller (1.0.0)
  • daemons (1.1.8)
  • eventmachine (0.12.10)
  • fastthread (1.0.7)
  • ffi (1.0.11)
  • passenger (3.0.12)
  • rack (1.4.1)
  • rack-protection (1.2.0)
  • rake (0.9.2.2)
  • sinatra (1.3.2)
  • sys-proctable (0.9.1)
  • sys-uptime (0.6.0)
  • thin (1.3.1)
  • tilt (1.3.3)

Software Stack

OS-level Utilities
    At boot, checks player directory for any pending files to be installed
Ruby library providing management functionality
System Daemon (written in Ruby)
    Starts the Web App Server & verifies that it is still alive
    Starts the Browser & verifies that it is still alive
    Periodically uses local library methods to check for updates from the server
    Controls screen according to rules downloaded from server
Web app
    Uses local library methods and some configuration logic to provide the methods listed below under “Actions”
Local terminal
    Allows local (TTY/SSH) access to library methods, such as running through configuration.
Local Library Methods
    Set server address / get server information
    Request Temporary ID
    Request Real ID (based on a Temporary ID we already have)
    Check Configuration (based on our Real Instance ID)
    Get Status
    Force Reboot
Actions (Concerto Player App)
    /screen (only to be accessed by localhost)
        if instance ID is set -> redirect to instance for display
        if instance ID not set -> redirect to /configure
    /configure
        if server info not set -> attempt autodetect
            if autodetect succeeds -> proceed with below
            if autodetect fails -> display form (submits to self)
        if server info is set set
            if instance ID is set -> download configuration info, redirect to actual player on server
            else, if no temporary ID set -> request and save temporary ID, proceed with next step:
            if temporary ID is set
                check whether this has been associated with a real ID on the server. If it has, save ID, download configuration info, redirect to actual player
                otherwise, display temporary ID, reload periodically
    /status
        Uptime
        Firmware Version
        Local Resource
        Local process status, etc.
    /force_update
        Cause a request to the webserver to download instance information

Clone this wiki locally