From c6062b8263faba704fa961927d74d13637433ba4 Mon Sep 17 00:00:00 2001 From: Carl Woodward Date: Sat, 11 Aug 2012 20:55:30 +1000 Subject: [PATCH] Added ninefold load balancers. --- lib/fog/ninefold/compute.rb | 2 ++ .../compute/create_load_balancer_rule.rb | 11 +++++++++++ tests/ninefold/requests/compute/helper.rb | 17 +++++++++++++++++ .../requests/compute/load_balancer_tests.rb | 12 ++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb create mode 100644 tests/ninefold/requests/compute/load_balancer_tests.rb diff --git a/lib/fog/ninefold/compute.rb b/lib/fog/ninefold/compute.rb index b5396aa1d..89a043332 100644 --- a/lib/fog/ninefold/compute.rb +++ b/lib/fog/ninefold/compute.rb @@ -60,6 +60,8 @@ module Fog request :create_ip_forwarding_rule request :delete_ip_forwarding_rule request :list_ip_forwarding_rules + # Load Balancers + request :create_load_balancer_rule class Mock diff --git a/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb b/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb new file mode 100644 index 000000000..c09e44ed2 --- /dev/null +++ b/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb @@ -0,0 +1,11 @@ +module Fog + module Compute + class Ninefold + class Real + def create_load_balancer_rule(options={}) + request 'createLoadBalancerRule', options, :expects => [200], :response_prefix => 'createloadbalancerruleresponse', :response_type => Hash + end + end + end + end +end diff --git a/tests/ninefold/requests/compute/helper.rb b/tests/ninefold/requests/compute/helper.rb index 488dc047c..365704fdd 100644 --- a/tests/ninefold/requests/compute/helper.rb +++ b/tests/ninefold/requests/compute/helper.rb @@ -312,6 +312,23 @@ class Ninefold } FORWARDING_RULES = [FORWARDING_RULE] end + module LoadBalancers + CREATE_LOAD_BALANCER_RULE_RESPONSE = { + "id"=>Integer, + "account"=>String, + "algorithm"=>String, + "cidrlist"=>String, + "description"=>String, + "domain"=>String, + "domainid"=>Integer, + "name"=>String, + "privateport"=>Integer, + "publicip"=>Integer, + "publicport"=>Integer, + "state"=>String, + "zoneid"=>Integer + } + end end end end diff --git a/tests/ninefold/requests/compute/load_balancer_tests.rb b/tests/ninefold/requests/compute/load_balancer_tests.rb new file mode 100644 index 000000000..9219f784b --- /dev/null +++ b/tests/ninefold/requests/compute/load_balancer_tests.rb @@ -0,0 +1,12 @@ +Shindo.tests('Fog::Compute[:ninefold] | load balancers', ['ninefold']) do + + tests('success') do + + tests("#create_load_balancer_rule()").formats(Ninefold::Compute::Formats::LoadBalancers::CREATE_LOAD_BALANCER_RULE_RESPONSE) do + pending if Fog.mocking? + job = Fog::Compute[:ninefold].create_load_balancer_rule(:algorithm => 'roundrobin', :name => 'test', :privateport => 1000, :publicport => 2000) + Ninefold::Compute::TestSupport.wait_for_job(job)['jobresult']['createloadbalancerruleresponse'] + end + + end +end