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/row.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

56 lines
1.4 KiB
Ruby

module Fog
module Compute
class Ecloud
class Row < Fog::Ecloud::Model
identity :href
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
attribute :other_links, :aliases => :Links
attribute :index, :aliases => :Index
def groups
@groups = self.service.groups(:href => href)
end
def edit(options)
options[:uri] = href
service.rows_edit(options).body
end
def move_up(options)
options[:uri] = href + "/action/moveup"
service.rows_moveup(options).body
end
def move_down(options)
options[:uri] = href + "/action/movedown"
service.rows_movedown(options).body
end
def delete
service.rows_delete(href).body
end
def create_group(options = {})
options[:uri] = "#{service.base_path}/layoutGroups/environments/#{environment_id}/action/createLayoutGroup"
options[:row_name] = name
options[:href] = href
data = service.groups_create(options).body
group = self.service.groups.new(data)
end
def environment_id
reload if other_links.nil?
other_links[:Link][:href].scan(/\d+/)[0]
end
def id
href.scan(/\d+/)[0]
end
alias destroy delete
end
end
end
end