mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[rackspace|compute_v2] fixed bug where server creation was not adding networks
This commit is contained in:
parent
95b3e6e3f3
commit
ecda2b51e8
4 changed files with 33 additions and 1 deletions
|
@ -194,6 +194,7 @@ module Fog
|
|||
def create(options)
|
||||
requires :name, :image_id, :flavor_id
|
||||
|
||||
options[:networks] ||= attributes[:networks]
|
||||
options[:disk_config] = disk_config unless disk_config.nil?
|
||||
options[:metadata] = metadata.to_hash unless @metadata.nil?
|
||||
options[:personality] = personality unless personality.nil?
|
||||
|
|
|
@ -147,6 +147,12 @@ module Fog
|
|||
:volume_ids => [],
|
||||
}
|
||||
|
||||
# add in additional networks
|
||||
options[:networks].each do |network|
|
||||
net_label = self.data[:networks][network[:uuid]]["label"]
|
||||
server["addresses"] = { net_label => []}
|
||||
end
|
||||
|
||||
self.data[:servers][server_id] = server
|
||||
|
||||
response = {
|
||||
|
|
|
@ -23,6 +23,16 @@ module Shindo
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
def wait_for_server_deletion(server)
|
||||
return if Fog.mocking?
|
||||
begin
|
||||
@instance.wait_for { state = 'DELETED' }
|
||||
rescue Fog::Compute::RackspaceV2::NotFound => e
|
||||
# do nothing
|
||||
end
|
||||
end
|
||||
|
||||
def wait_for_server_state(service, server_id, state, error_states=nil)
|
||||
current_state = nil
|
||||
until current_state == state
|
||||
|
|
|
@ -2,11 +2,16 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|||
service = Fog::Compute::RackspaceV2.new
|
||||
cbs_service = Fog::Rackspace::BlockStorage.new
|
||||
|
||||
tests('setup test network').succeeds do
|
||||
@network = service.networks.create :label => "fog_test_net_#{Time.now.to_i.to_s}", :cidr => '192.168.1.1/24'
|
||||
end
|
||||
|
||||
options = {
|
||||
:name => "fog_server_#{Time.now.to_i.to_s}",
|
||||
:flavor_id => rackspace_test_flavor_id(service),
|
||||
:image_id => rackspace_test_image_id(service),
|
||||
:metadata => { 'fog_test' => 'true' }
|
||||
:metadata => { 'fog_test' => 'true' },
|
||||
:networks => [@network.id]
|
||||
}
|
||||
|
||||
tests('ready?') do
|
||||
|
@ -67,6 +72,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|||
@instance.metadata['fog_test']
|
||||
end
|
||||
|
||||
tests("includes #{@network.label}").returns(true) do
|
||||
@instance.addresses.keys.include?(@network.label)
|
||||
end
|
||||
|
||||
tests('#update').succeeds do
|
||||
@instance.name = "fog_server_update"
|
||||
@instance.access_ipv4_address= "10.10.0.1"
|
||||
|
@ -170,6 +179,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|||
@instance.wait_for(timeout=1500) { ready? }
|
||||
end
|
||||
|
||||
wait_for_server_deletion(@instance)
|
||||
|
||||
tests("delete network #{@network.label}").succeeds do
|
||||
@network.destroy if @network
|
||||
end
|
||||
|
||||
#When after testing resize/resize_confirm we get a 409 when we try to resize_revert so I am going to split it into two blocks
|
||||
model_tests(service.servers, options, true) do
|
||||
@instance.wait_for(timeout=1500) { ready? }
|
||||
|
|
Loading…
Add table
Reference in a new issue