mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
commit
4578aecd53
2 changed files with 17 additions and 9 deletions
|
@ -198,17 +198,18 @@ module Fog
|
||||||
# * BUILD -> ERROR (on error)
|
# * BUILD -> ERROR (on error)
|
||||||
def create(options)
|
def create(options)
|
||||||
requires :name, :image_id, :flavor_id
|
requires :name, :image_id, :flavor_id
|
||||||
|
modified_options = Marshal.load(Marshal.dump(options))
|
||||||
|
|
||||||
options[:networks] ||= attributes[:networks]
|
modified_options[:networks] ||= attributes[:networks]
|
||||||
options[:disk_config] = disk_config unless disk_config.nil?
|
modified_options[:disk_config] = disk_config unless disk_config.nil?
|
||||||
options[:metadata] = metadata.to_hash unless @metadata.nil?
|
modified_options[:metadata] = metadata.to_hash unless @metadata.nil?
|
||||||
options[:personality] = personality unless personality.nil?
|
modified_options[:personality] = personality unless personality.nil?
|
||||||
options[:keypair] ||= attributes[:keypair]
|
modified_options[:keypair] ||= attributes[:keypair]
|
||||||
|
|
||||||
if options[:networks]
|
if modified_options[:networks]
|
||||||
options[:networks].map! { |id| { :uuid => id } }
|
modified_options[:networks].map! { |id| { :uuid => id } }
|
||||||
end
|
end
|
||||||
data = service.create_server(name, image_id, flavor_id, 1, 1, options)
|
data = service.create_server(name, image_id, flavor_id, 1, 1, modified_options)
|
||||||
merge_attributes(data.body['server'])
|
merge_attributes(data.body['server'])
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
||||||
options = {
|
options = {
|
||||||
:name => "fog_server_#{Time.now.to_i.to_s}",
|
:name => "fog_server_#{Time.now.to_i.to_s}",
|
||||||
:flavor_id => rackspace_test_flavor_id(service),
|
:flavor_id => rackspace_test_flavor_id(service),
|
||||||
:image_id => rackspace_test_image_id(service),
|
:image_id => rackspace_test_image_id(service),
|
||||||
:metadata => { 'fog_test' => 'true' },
|
:metadata => { 'fog_test' => 'true' },
|
||||||
:networks => [@network.id]
|
:networks => [@network.id]
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
||||||
@instance.addresses.keys.include?(@network.label)
|
@instance.addresses.keys.include?(@network.label)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
tests('#create').succeeds do
|
||||||
|
pending unless Fog.mocking?
|
||||||
|
original_options = Marshal.load(Marshal.dump(options))
|
||||||
|
@instance.create(options)
|
||||||
|
returns(true) { original_options == options }
|
||||||
|
end
|
||||||
|
|
||||||
tests('#update').succeeds do
|
tests('#update').succeeds do
|
||||||
new_name = "fog_server_update#{Time.now.to_i.to_s}"
|
new_name = "fog_server_update#{Time.now.to_i.to_s}"
|
||||||
@instance.name = new_name
|
@instance.name = new_name
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue