From ca72b4db0ab52af985bb795daf6fdd7be290034a Mon Sep 17 00:00:00 2001 From: Alex Ruiz Estradera Date: Wed, 5 Oct 2016 11:05:09 +0200 Subject: [PATCH] Adapt the midonet gateway type for Puppet3 compatibility Change-Id: Ib83cbe5d8882daf5a5a5089065052d19beeee9e7 --- .../midonet_gateway_bgp/midonet_api_caller.rb | 11 +++++++++-- lib/puppet/type/midonet_gateway_bgp.rb | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/puppet/provider/midonet_gateway_bgp/midonet_api_caller.rb b/lib/puppet/provider/midonet_gateway_bgp/midonet_api_caller.rb index 6e95aeb..71587ac 100644 --- a/lib/puppet/provider/midonet_gateway_bgp/midonet_api_caller.rb +++ b/lib/puppet/provider/midonet_gateway_bgp/midonet_api_caller.rb @@ -29,8 +29,15 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do "remote_asn" => bgp_neighbor["asNumber"] } m << n end - tbd_peers = m - resource[:bgp_neighbors] - tba_peers = resource[:bgp_neighbors] - m + + if resource[:bgp_neighbors].class == Hash + bgp_advertised_networks_resource = [resource[:bgp_neighbors]] + else + bgp_advertised_networks_resource = resource[:bgp_neighbors] + end + + tbd_peers = m - bgp_advertised_networks_resource + tba_peers = bgp_advertised_networks_resource - m tba_peers.each { |a| call_add_bgp_peer(provider_router_id, a['ip_address'], a['remote_asn']) } tbd_peers.each do |d| diff --git a/lib/puppet/type/midonet_gateway_bgp.rb b/lib/puppet/type/midonet_gateway_bgp.rb index b7ba11f..e0d7881 100644 --- a/lib/puppet/type/midonet_gateway_bgp.rb +++ b/lib/puppet/type/midonet_gateway_bgp.rb @@ -95,6 +95,9 @@ Puppet::Type.newtype(:midonet_gateway_bgp) do ] " validate do |value| + if value.class == Hash + value = [value] + end unless value.class == Array && value.length > 0 raise ArgumentError, "'%s' is not an array" % value else