From fd41afa8f23d7982334b3b8aad0337c2d4b45740 Mon Sep 17 00:00:00 2001 From: Carl Woodward Date: Tue, 25 Sep 2012 14:19:14 +1000 Subject: [PATCH] Add assign list to load balancer rules and update load balancer rule for Ninefold. --- tests/ninefold/requests/compute/helper.rb | 33 ++++++++++++++ .../requests/compute/load_balancer_tests.rb | 43 +++++++++++++++---- 2 files changed, 68 insertions(+), 8 deletions(-) diff --git a/tests/ninefold/requests/compute/helper.rb b/tests/ninefold/requests/compute/helper.rb index a76dc39fd..958644829 100644 --- a/tests/ninefold/requests/compute/helper.rb +++ b/tests/ninefold/requests/compute/helper.rb @@ -328,6 +328,39 @@ class Ninefold "state"=>String, "zoneid"=>Integer } + ASSIGN_LOAD_BALANCER_RULE_RESPONSE = { + "success"=>Fog::Boolean + } + LIST_LOAD_BALANCER_RULES_RESPONSE = { + "id"=>Integer, + "name"=>String, + "publicipid"=>Integer, + "publicip"=>String, + "publicport"=>String, + "privateport"=>String, + "algorithm"=>String, + "cidrlist"=>String, + "account"=>String, + "domainid"=>Integer, + "domain"=>String, + "state"=>String, + "zoneid"=>Integer + } + UPDATE_LOAD_BALANCER_RULE_RESPONSE = { + "id"=>Integer, + "name"=>String, + "publicipid"=>Integer, + "publicip"=>String, + "publicport"=>String, + "privateport"=>String, + "algorithm"=>String, + "cidrlist"=>String, + "account"=>String, + "domainid"=>Integer, + "domain"=>String, + "state"=>String, + "zoneid"=>Integer + } end end end diff --git a/tests/ninefold/requests/compute/load_balancer_tests.rb b/tests/ninefold/requests/compute/load_balancer_tests.rb index 5f300cff4..b10930171 100644 --- a/tests/ninefold/requests/compute/load_balancer_tests.rb +++ b/tests/ninefold/requests/compute/load_balancer_tests.rb @@ -3,16 +3,43 @@ Shindo.tests('Fog::Compute[:ninefold] | load balancers', ['ninefold']) do # NOTE: all of these tests require you to have a vm built with a public IP address. tests('success') do - p Ninefold::Compute::Formats::LoadBalancers::CREATE_LOAD_BALANCER_RULE_RESPONSE + before do + @compute = Fog::Compute[:ninefold] + @public_ip_id = @compute.list_public_ip_addresses.first['id'] + @server_id = @compute.servers.all.first.id + @create_load_balancer = @compute.create_load_balancer_rule(:algorithm => 'roundrobin', :name => 'test', + :privateport => 1000, :publicport => 2000, + :publicipid => @public_ip_id) + end + + after do + delete = @compute.delete_load_balancer_rule id: @create_load_balancer['id'] + Ninefold::Compute::TestSupport.wait_for_job(delete['jobid']) + end + tests("#create_load_balancer_rule()").formats(Ninefold::Compute::Formats::LoadBalancers::CREATE_LOAD_BALANCER_RULE_RESPONSE) do pending if Fog.mocking? - compute = Fog::Compute[:ninefold] - public_ip_id = compute.list_public_ip_addresses.first['id'] - create_load_balancer = compute.create_load_balancer_rule(:algorithm => 'roundrobin', :name => 'test', - :privateport => 1000, :publicport => 2000, - :publicipid => public_ip_id) - result = Ninefold::Compute::TestSupport.wait_for_job(create_load_balancer['jobid']) - compute.delete_load_balancer_rule id: create_load_balancer['id'] + result = Ninefold::Compute::TestSupport.wait_for_job(@create_load_balancer['jobid']) + result['jobresult']['loadbalancer'] + end + + tests("#assign_to_load_balancer_rule()").formats(Ninefold::Compute::Formats::LoadBalancers::ASSIGN_LOAD_BALANCER_RULE_RESPONSE) do + pending if Fog.mocking? + assign_load_balancer = @compute.assign_to_load_balancer_rule id: @create_load_balancer['id'], virtualmachineids: @server_id + result = Ninefold::Compute::TestSupport.wait_for_job(assign_load_balancer['jobid']) + result['jobresult'] + end + + tests("#list_to_load_balancer_rules()").formats(Ninefold::Compute::Formats::LoadBalancers::LIST_LOAD_BALANCER_RULES_RESPONSE) do + pending if Fog.mocking? + list_load_balancer_rules = @compute.list_load_balancer_rules + list_load_balancer_rules['loadbalancerrule'].first + end + + tests("#update_to_load_balancer_rule()").formats(Ninefold::Compute::Formats::LoadBalancers::UPDATE_LOAD_BALANCER_RULE_RESPONSE) do + pending if Fog.mocking? + update_load_balancer = @compute.update_load_balancer_rule id: @create_load_balancer['id'], algorithm: 'source' + result = Ninefold::Compute::TestSupport.wait_for_job(update_load_balancer['jobid']) result['jobresult']['loadbalancer'] end