1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

creating via stackscripts with callbacks working

This commit is contained in:
nightshade427 2011-03-08 16:33:02 -05:00 committed by Nicholas Ricketts
parent ad5ec1da27
commit cb2b671c93
3 changed files with 9 additions and 8 deletions

View file

@ -11,8 +11,8 @@ module Fog
def save def save
requires :server requires :server
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
@type, @image, @stack_script, @script_options, @name, @password, @size = @type, @image, @stack_script, @name, @password, @size =
attributes.values_at :type, :image, :stack_script, :script_options, :name, :password, :size attributes.values_at :type, :image, :stack_script, :name, :password, :size
create_disk create_disk
end end
@ -51,8 +51,8 @@ module Fog
end end
def create_disk_from_stack_script def create_disk_from_stack_script
disk = connection.linode_disk_createfromstackscript(server.id, @script.id, @image.id, disk = connection.linode_disk_createfromstackscript(server.id, @stack_script.id, @image.id,
"#{@name}_main", @size, @password, @script_options) "#{@name}_main", @size, @password, @stack_script.options)
self.id = disk.body['DATA']['DiskID'] self.id = disk.body['DATA']['DiskID']
reload reload
end end

View file

@ -4,7 +4,7 @@ module Fog
module Linode module Linode
class Compute class Compute
class Server < Fog::Model class Server < Fog::Model
attr_accessor :stack_script attr_reader :stack_script
identity :id identity :id
attribute :name attribute :name
attribute :status attribute :status
@ -47,15 +47,15 @@ module Fog
private private
def create_linode def create_linode
self.id = connection.linode_create(@data_center.id, @flavor.id, @payment_terms).body['DATA']['LinodeID'] self.id = connection.linode_create(@data_center.id, @flavor.id, @payment_terms).body['DATA']['LinodeID']
reload
connection.linode_update id, :label => @name connection.linode_update id, :label => @name
ips.create ips.create
reload
end end
def create_disks def create_disks
@swap = disks.create :type => :swap, :name => @name, :size => @flavor.ram @swap = disks.create :type => :swap, :name => @name, :size => @flavor.ram
@disk = disks.create(:type => @type, :image => @image, :stack_script => @stack_script, :password => @password, @disk = disks.create(:type => @type, :image => @image, :stack_script => @stack_script,
:script_options => @script_options, :name => @name, :size => (@flavor.disk*1024)-@flavor.ram) :password => @password, :name => @name, :size => (@flavor.disk*1024)-@flavor.ram)
end end
def create_config def create_config

View file

@ -4,6 +4,7 @@ module Fog
module Linode module Linode
class Compute class Compute
class StackScript < Fog::Model class StackScript < Fog::Model
attr_accessor :options
identity :id identity :id
attribute :name attribute :name
end end