1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ecloud/models/compute/nodes.rb
Todd Willey 4ffab4b18f [ecloud|compute] Replace /cloudapi/ecloud with a configurable path.
This is so the Live Specification can be accessed, which is expecially
helpful in learning the ins and outs of Verizon's Enterprise Cloud. The
Live Specification is available at /cloudapi/spec, and the hardcoded
paths were hindering using it.
2013-10-29 01:09:04 -04:00

43 lines
1 KiB
Ruby

require 'fog/ecloud/models/compute/node'
module Fog
module Compute
class Ecloud
class Nodes < Fog::Ecloud::Collection
identity :href
model Fog::Compute::Ecloud::Node
def all
data = service.get_nodes(href).body
if data[:NodeServices]
load(data[:NodeServices][:NodeService])
else
load([])
end
end
def get(uri)
data = service.get_node(uri).body
new(data)
rescue Fog::Errors::NotFound
nil
end
def create(options)
options[:uri] = "#{service.base_path}/nodeServices/internetServices/#{internet_service_id}/action/createNodeService"
options[:protocol] ||= "TCP"
options[:enabled] ||= true
options[:description] ||= ""
data = service.node_service_create(options).body
object = new(data)
end
def internet_service_id
href.scan(/\d+/)[0]
end
end
end
end
end