Fix bgp resource for puppet 3
Change-Id: I1178ac50e7b204ac9aa874cc2ce6fbb86859e8ba
This commit is contained in:
parent
ca72b4db0a
commit
954d1cf69f
@ -11,6 +11,18 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
|
||||
def create
|
||||
|
||||
if resource[:bgp_neighbors].class == Hash
|
||||
bgp_neighbors_resource = [resource[:bgp_neighbors]]
|
||||
else
|
||||
bgp_neighbors_resource = resource[:bgp_neighbors]
|
||||
end
|
||||
|
||||
if resource[:bgp_advertised_networks].class == String
|
||||
bgp_advertised_networks_resource = [resource[:bgp_advertised_networks]]
|
||||
else
|
||||
bgp_advertised_networks_resource = resource[:bgp_advertised_networks]
|
||||
end
|
||||
|
||||
define_connection(resource[:midonet_api_url])
|
||||
|
||||
# Get the edge router uuid
|
||||
@ -29,15 +41,8 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
"remote_asn" => bgp_neighbor["asNumber"] }
|
||||
m << n
|
||||
end
|
||||
|
||||
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
|
||||
tbd_peers = m - bgp_neighbors_resource
|
||||
tba_peers = bgp_neighbors_resource - m
|
||||
|
||||
tba_peers.each { |a| call_add_bgp_peer(provider_router_id, a['ip_address'], a['remote_asn']) }
|
||||
tbd_peers.each do |d|
|
||||
@ -53,12 +58,6 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
j << k
|
||||
end
|
||||
|
||||
if resource[:bgp_advertised_networks].class == String
|
||||
bgp_advertised_networks_resource = [resource[:bgp_advertised_networks]]
|
||||
else
|
||||
bgp_advertised_networks_resource = resource[:bgp_advertised_networks]
|
||||
end
|
||||
|
||||
tbd_bgp_networks = j - bgp_advertised_networks_resource
|
||||
tba_bgp_networks = bgp_advertised_networks_resource - j
|
||||
tbd_bgp_networks.each do |d|
|
||||
@ -70,7 +69,7 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
# Get routes and see which ones do we need to actually create
|
||||
dup_routes = Array.new
|
||||
existing_bgp_routes = call_get_bgp_routes(provider_router_id)
|
||||
neighbors_remote_net = resource[:bgp_neighbors].map { |x| x['remote_net'] }.uniq
|
||||
neighbors_remote_net = bgp_neighbors_resource.map { |x| x['remote_net'] }.uniq
|
||||
existing_bgp_routes.each do |r|
|
||||
dup_routes << r if neighbors_remote_net.select { |net| net == "#{r['dstNetworkAddr']}/#{r['dstNetworkLength']}" }
|
||||
end
|
||||
@ -83,15 +82,15 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
# Add default routes
|
||||
dup_routes = Array.new
|
||||
existing_bgp_routes = call_get_bgp_routes(provider_router_id)
|
||||
neighbors_remote_ips = resource[:bgp_neighbors].map { |x| x['ip_address'] }.uniq
|
||||
neighbors_remote_ips = bgp_neighbors_resource.map { |x| x['ip_address'] }.uniq
|
||||
existing_bgp_routes.each do |r|
|
||||
dup_routes << r if neighbors_remote_ips.select { |ip| ip == "#{r['nextHopGateway']}" }
|
||||
end
|
||||
# Add routes to remote BGP peers
|
||||
tba_routes = neighbors_remote_ips - dup_routes.map { |dr| "#{dr['nextHopGateway']}" }
|
||||
tba_routes.each do |ip|
|
||||
b = resource[:bgp_neighbors].select { |neighbor| neighbor['ip_address'] == ip }
|
||||
call_add_default_routes(provider_router_id, resource[:bgp_neighbors].select { |neighbor| neighbor['ip_address'] == ip }[0])
|
||||
b = bgp_neighbors_resource.select { |neighbor| neighbor['ip_address'] == ip }
|
||||
call_add_default_routes(provider_router_id, bgp_neighbors_resource.select { |neighbor| neighbor['ip_address'] == ip }[0])
|
||||
end
|
||||
end
|
||||
|
||||
@ -120,6 +119,18 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
|
||||
def exists?
|
||||
|
||||
if resource[:bgp_neighbors].class == Hash
|
||||
bgp_neighbors_resource = [resource[:bgp_neighbors]]
|
||||
else
|
||||
bgp_neighbors_resource = resource[:bgp_neighbors]
|
||||
end
|
||||
|
||||
if resource[:bgp_advertised_networks].class == String
|
||||
bgp_advertised_networks_resource = [resource[:bgp_advertised_networks]]
|
||||
else
|
||||
bgp_advertised_networks_resource = resource[:bgp_advertised_networks]
|
||||
end
|
||||
|
||||
define_connection(resource[:midonet_api_url])
|
||||
|
||||
# Get the edge router uuid
|
||||
@ -137,7 +148,7 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
"remote_asn" => bgp_neighbor["asNumber"] }
|
||||
m << n
|
||||
end
|
||||
result_array.push(m == resource[:bgp_neighbors])
|
||||
result_array.push(m == bgp_neighbors_resource)
|
||||
# Check if advertised networks are the same
|
||||
bgp_advertised_networks = call_get_bgp_networks(provider_router_id)
|
||||
j = Array.new
|
||||
@ -145,7 +156,7 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
||||
k = [ bgp_advertised_network["subnetAddress"], bgp_advertised_network["subnetLength"] ].join("/")
|
||||
j << k
|
||||
end
|
||||
result_array.push(j == resource[:bgp_advertised_networks])
|
||||
result_array.push(j == bgp_advertised_networks_resource)
|
||||
|
||||
# Test if all tests are positive
|
||||
return result_array.uniq == [true]
|
||||
|
Loading…
x
Reference in New Issue
Block a user