Skip to content

Instantly share code, notes, and snippets.

@fairchild
Created June 20, 2011 04:48
Show Gist options
  • Save fairchild/1035142 to your computer and use it in GitHub Desktop.
Save fairchild/1035142 to your computer and use it in GitHub Desktop.
simple ruby newserver api model
require 'rubygems'
require 'httparty'
require 'pp'
class Newservers
include HTTParty
base_uri 'https://noc.newservers.com/api/'
default_params :username => 'mfairchild', :password => '4az0XzAw'
# default_params :username => ENV['NEWSERVER_USERNAME'], :password => ENV['NEWSERVER_PASSWORD'] \
format :xml
def self.list_servers()
get('/listServers')
end
def self.list_images()
get('/listImages')
end
def add_server(opts={})
opts={:config=>'small', :os=>'centos5.2'}.merge(opts)
get('/add_server', :query=>opts)
end
def cancel_server(server_id)
get('/add_server', :query=>{:sererID=>sererID})
end
def create_image(opts={})
raise "must supply an image name and serverID" unless opts[:name] && opts [:serverId]
get('/createImage', :query=>opts)
end
def write_image(opts={})
raise "must supply an imageId" unless opts[:imageId]
opts={:serverId=>'small', :imageId=>nil}.merge(opts)
get('/writeImage', :query=>opts)
end
def delete_image
end
def wipe_server
end
def self.list_plans
get('/listPlans')
end
end
puts Newservers.list_servers.to_yaml
puts '------------------'
puts Newservers.list_images.to_yaml
puts '------------------'
puts Newservers.list_plans.to_yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment