Skip to content

Instantly share code, notes, and snippets.

@coderforhire
Created August 31, 2012 19:03
Show Gist options
  • Save coderforhire/3557471 to your computer and use it in GitHub Desktop.
Save coderforhire/3557471 to your computer and use it in GitHub Desktop.
CONTROLLER
def create
@server = Server.new
Resque.enqueue(ProvisionServer, @server.id)
@server.domain_name = provisioned_server.name
@server.external_ip = provisioned_server.addresses[:public]
@server.internal_ip = provisioned_server.addresses[:private]
@server.flavor_id = provisioned_server.flavorId
respond_to do |format|
if @server.save
format.html { redirect_to @server, notice: 'Server was successfully created.' }
format.json { render json: @server, status: :created, location: @server }
else
format.html { render action: "new" }
format.json { render json: @server.errors, status: :unprocessable_entity }
end
end
end
JOB
require "cloudservers"
module ProvisionServer
@queue = :provision_server
def self.perform(server)
name = SecureRandom.urlsafe_base64(10)
cs = CloudServers::Connection.new(:username => 'user', :api_key => 'some string')
provisioned_server = cs.create_server(:name => name, :imageId => 125 , :flavorId => 1)
@provisioned_server = provisioned_server
end
end
~
~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment