From 0a266b8d8d8ed8c98af37a1c24a1182a879bbca6 Mon Sep 17 00:00:00 2001 From: Rupak Ganguly Date: Tue, 2 Apr 2013 16:14:36 -0400 Subject: [PATCH] [hp|network] Add router interface methods and tests to router models. --- lib/fog/hp/models/network/router.rb | 20 +++++++++++++++++ tests/hp/models/network/router_tests.rb | 29 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/lib/fog/hp/models/network/router.rb b/lib/fog/hp/models/network/router.rb index 32377203a..bb3af0578 100644 --- a/lib/fog/hp/models/network/router.rb +++ b/lib/fog/hp/models/network/router.rb @@ -19,6 +19,26 @@ module Fog true end + def add_interface(subnet_id=nil, port_id=nil, options={}) + requires :id + begin + service.add_router_interface(id, subnet_id, port_id, options).body['router'] + true + rescue ArgumentError, Fog::HP::Network::NotFound + false + end + end + + def remove_interface(subnet_id=nil, port_id=nil, options={}) + requires :id + begin + service.remove_router_interface(id, subnet_id, port_id, options).body['router'] + true + rescue ArgumentError, Fog::HP::Network::NotFound + false + end + end + def save identity ? update : create end diff --git a/tests/hp/models/network/router_tests.rb b/tests/hp/models/network/router_tests.rb index 835ffeee1..3ed771fbc 100644 --- a/tests/hp/models/network/router_tests.rb +++ b/tests/hp/models/network/router_tests.rb @@ -1,5 +1,10 @@ Shindo.tests('HP::Network | networking router model', ['hp', 'networking', 'router']) do + # needed to test router_interface calls + @network = HP[:network].networks.create(:name => 'fognetwork') + @subnet = HP[:network].subnets.create({:name => 'fogsubnet', :network_id => @network.id, :cidr => '13.13.13.13/13', :ip_version => 4}) + @port = HP[:network].ports.create({:name => 'fogport', :network_id => @network.id}) + attributes = {:name => 'fogrouter', :admin_state_up => true} model_tests(HP[:network].routers, attributes, true) @@ -17,10 +22,34 @@ Shindo.tests('HP::Network | networking router model', ['hp', 'networking', 'rout @router.save end + tests("#add_interface(#{@subnet.id}, nil) - with subnet").succeeds do + @router.add_interface(@subnet.id) + end + tests("#remove_interface(#{@subnet.id}, nil) - with subnet").succeeds do + @router.remove_interface(@subnet.id) + end + tests("#add_interface(nil, #{@port.id}) - with port").succeeds do + @router.add_interface(nil, @port.id) + end + ## deletes the port as well + tests("#remove_interface(nil, #{@port.id}) - with port").succeeds do + @router.remove_interface(nil, @port.id) + end + + tests("#add_interface(#{@subnet.id}, #{@port.id}) - with both").succeeds do + @router.add_interface(@subnet.id, @port.id) == false + end + tests("#add_interface(#{@subnet.id}, #{@port.id}) - with both").succeeds do + @router.remove_interface(@subnet.id, @port.id) == false + end + tests('#destroy').succeeds do @router.destroy end end + @subnet.destroy + @network.destroy + end