class TortoiseLabs::VPS
Attributes
disk[R]
id[R]
ips[R]
mac[R]
memory[R]
name[R]
nickname[R]
node[R]
swap[R]
user[R]
Public Class Methods
get(id)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 220 def self.get(id) vpshash = JSON.parse(TortoiseLabs::Client.get("/vps/#{id}"))["service"] self.new(vpshash) end
list()
click to toggle source
Class methods
# File lib/tortoiselabs/vps.rb, line 184 def self.list json = JSON.parse(TortoiseLabs::Client.get("/vps/list")) return nil if json.empty? vpses = Hash.new json["vpslist"].each do |vps| obj = self.new(vps) vpses[obj.nickname] = obj end vpses end
new(vps)
click to toggle source
Instance methods
# File lib/tortoiselabs/vps.rb, line 50 def initialize(vps) @node, @name, @mac, @memory, @disk = vps["node"], vps["name"], vps["mac"], vps["memory"], vps["disk"] @nickname, @id, @swap, @user = vps["nickname"], vps["id"], vps["swap"], vps["user"] @ips = Hash.new vps["ips"].each do |iphash| obj = IP.new(iphash) @ips[obj.ip] = obj end end
plans()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 204 def self.plans result = JSON.parse(TortoiseLabs::Client.get("/vps/signup")) plans = Array.new result["resource_plans"].each do |p| obj = Plan.new(p["id"], p["disk"], p["memory"], p["name"], p["price_btc"], p["price_usd"], p["swap"]) plans << obj end plans end
regions()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 197 def self.regions result = JSON.parse(TortoiseLabs::Client.get("/vps/signup"))["regions"] regions = Array.new result.each { |r| regions << Region.new(r["id"], r["name"]) } regions end
signup(regionid, planid)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 215 def self.signup(regionid, planid) result = TortoiseLabs::Client.post("/vps/signup", {:region => regionid, :plan => planid}) end
Public Instance Methods
create()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 121 def create result = TortoiseLabs::Client.get("/vps/#{@id}/create") result.parsed_response["job"] end
delete_iso(isoid)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 177 def delete_iso(isoid) result = TortoiseLabs::Client.post("/vps/#{@id}/hvmiso/#{isoid}/delete") hvm end
deploy(image, rootpass, arch = "x86_64")
click to toggle source
# File lib/tortoiselabs/vps.rb, line 93 def deploy(image, rootpass, arch = "x86_64") # arch can be either x86_64 or i386 # Image is one of the values returned by the templates method above unless image =~ /_login\.xml$/i image = image + "_login.xml" end result = TortoiseLabs::Client.post("/vps/#{@id}/deploy", {:imagename => image, :rootpass => rootpass, :arch => arch}) jobs end
destroy()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 111 def destroy result = TortoiseLabs::Client.get("/vps/#{@id}/destroy") result.parsed_response["job"] end
hvm()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 147 def hvm result = TortoiseLabs::Client.get("/vps/#{@id}/hvm").parsed_response JSON.parse(result)["isolist"] end
jobs()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 131 def jobs res = TortoiseLabs::Client.get("/vps/#{@id}/jobs.json").parsed_response jobs = Hash.new res.each do |jobhash| begin obj = Job.new(jobhash) jobs[obj.id] = obj rescue NoMethodError => err # occurs when there are no jobs end end jobs end
monitoring=(boolean)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 74 def monitoring=(boolean) if boolean result = TortoiseLabs::Client.get("/vps/#{@id}/monitoring/enable") else result = TortoiseLabs::Client.get("/vps/#{@id}/monitoring/disable") end boolean end
monitoring?()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 83 def monitoring? vps = JSON.parse(TortoiseLabs::Client.get("/vps/#{id}")) vps["service"]["monitoring"] end
new_iso(isoname, isouri)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 171 def new_iso(isoname, isouri) result = TortoiseLabs::Client.post("/vps/#{@id}/hvmiso/new", {:isoname => isoname, :isouri => isouri}) hvm end
nickname=(newnickname)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 68 def nickname=(newnickname) options = {:nickname => newnickname} result = TortoiseLabs::Client.post("/vps/#{@id}/setnickname", options) @nickname = result["nickname"] end
powercycle()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 126 def powercycle result = TortoiseLabs::Client.get("/vps/#{@id}/powercycle") result.parsed_response["job"] end
running?()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 106 def running? result = TortoiseLabs::Client.get("/vps/#{@id}/status.json") result.parsed_response["running"] end
set_boot_order(bootorder)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 158 def set_boot_order(bootorder) result = TortoiseLabs::Client.post("/vps/#{@id}/hvm/setbootorder", {:bootorder => bootorder}) result.parsed_response["isolist"] end
set_iso(isoid)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 152 def set_iso(isoid) result = TortoiseLabs::Client.post("/vps/#{@id}/hvm/setiso", {:isoid => isoid}) hvm end
set_nic_type(nictype)
click to toggle source
# File lib/tortoiselabs/vps.rb, line 164 def set_nic_type(nictype) # nictype can be e1000, virtio-net or rtl8139 result = TortoiseLabs::Client.post("/vps/#{@id}/hvm/setnictype", {:nictype => nictype}) hvm end
shutdown()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 116 def shutdown result = TortoiseLabs::Client.get("/vps/#{@id}/shutdown") result.parsed_response["job"] end
templates()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 88 def templates result = TortoiseLabs::Client.get("/vps/#{@id}/deploy") JSON.parse(result)["templates"] end
to_s()
click to toggle source
# File lib/tortoiselabs/vps.rb, line 64 def to_s @nickname end