Web Application providing uniform API to several cloud providers (Vsphere, Azure, ovirt, ...)
GET /computes
POST /computes
GET /computes/:id
DELETE /computes/:id
PUT /computes/:id/power_on
PUT /computes/:id/power_off
PUT /computes/:id/reboot
GET /computes/:id/snapshots
POST /computes/:id/snapshots
GET /computes/:id/snapshots/:id
POST /computes/:id/snapshots/:id/revert
This app is in develomplent - Not production ready
##setup
#create/modify config/database.yml
#create/modify config/lab_manager.yml
rake db:setup
##run app
rerun rackup
(you can install reran globally by: rvm @global do gem install rerun
)
##example usage
#create & poweron virtual machine (compute unit)
curl -i -H 'Content-Type: application/json' --data '{"provider_name":"v_sphere","image":"TA_8x64"}' localhost:21000/computes/
#it returns id of the created compute
#destroy compute with id 1
curl -i -X DELETE localhost:21000/computes/9
#create & poweron virtual machine with custom name
curl -i -H 'Content-Type: application/json' --data '{"provider_name":"v_sphere","image":"TA_8x64", "create_vm_options": {"name":"fooooooooo"}}' localhost:21000/computes/
#create & poweron virtual machine in custom folder it must exist in advance
curl -i -H 'Content-Type: application/json' --data '{"provider_name":"v_sphere","image":"TA_8x64", "create_vm_options": {"dest_folder":"foo/bar/baz"}}' localhost:21000/computes/
#create & poweron full clone
curl -i -H 'Content-Type: application/json' --data '{"provider_name":"v_sphere","image":"TA_8x64", "create_vm_options": {"linked_clone":false}}' localhost:21000/computes/