Skip to content

icanb/Tango

 
 

Repository files navigation

Welcome to Autolab

Tango

Tango is a standalone, RESTful Web service that provides autograding services for Autolab. This is the main repository that includes the application layer of the project.

Tango allows submission of jobs that are to be run in pre-configured VMs. Tango also supports different Virtual Machine Management (VMM) systems by providing a high level VMM API. Users can implement the high level VMM API for a hypervisor or VMM of your choice such as KVM, Xen, Docker or EC2.

Tango was started as part of the Autolab project at Carnegie Mellon University and has been extensively used for autograding programming assignments in CMU courses.

Getting Started

The easiest way to get started with Tango is by installing it on a vanilla EC2 Ubuntu instance. The detailed instructions can be found here.

Tango has a REST API which can be used for job submission and other administrative tasks. The documentation of the API can be found here

In order to run Tango locally, the VMM API needs to be implemented such that jobs run locally. This is currently work in progress.

A brief overview of the Tango respository:

  • tangod.py - Main tango program
  • jobQueue.py - Manages the job queue
  • preallocator.py - Manages a pool of preallocated VMs
  • worker.py - Shepherds a job through its execution
  • vmms - VMM system library implementations
  • restful-tango - HTTP server layer on the main tango

Testing

To test whether Tango is running and accepting jobs, a tango command-line client is included in clients/ along with sample jobs.

Contributing

Contributing to Tango is greatly encouraged! Future issues and features will be posted on Github Issues. Also look at Contributing to Autolab Guide for guidelines on how to proceed. Join us!

License

Autolab is released under the Apache License 2.0.

Using Tango

Please feel free to use Tango at your school/organization. If you run into any problems, you can reach the core developers at autolab-dev@andrew.cmu.edu and we would be happy to help. On a case by case basis, we also provide servers for free. (Especially if you are an NGO or small high-school classroom)

About

External standalone, RESTful job service

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 89.1%
  • C 9.6%
  • Other 1.3%