Fix the types for midonet gateway type
Change-Id: I1bb96901856173de8d9b5d7d20016d9a2a10467f
This commit is contained in:
@@ -25,13 +25,15 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
|||||||
|
|
||||||
define_connection(resource[:midonet_api_url])
|
define_connection(resource[:midonet_api_url])
|
||||||
|
|
||||||
|
entered_neighbors_parsed = bgp_neighbors_resource.collect { |x| {'ip_address' => x['ip_address'], 'remote_asn' => x['remote_asn'].to_i} }
|
||||||
|
|
||||||
# Get the edge router uuid
|
# Get the edge router uuid
|
||||||
provider_router = call_get_provider_router()[0]
|
provider_router = call_get_provider_router()[0]
|
||||||
provider_router_id = provider_router['id']
|
provider_router_id = provider_router['id']
|
||||||
|
|
||||||
# Assign local ASN to the provider router
|
# Assign local ASN to the provider router
|
||||||
asn = provider_router['asNumber']
|
asn = provider_router['asNumber']
|
||||||
call_assign_asn(provider_router, resource[:bgp_local_as_number]) unless asn == resource[:bgp_local_as_number]
|
call_assign_asn(provider_router, resource[:bgp_local_as_number]) unless asn.to_i == resource[:bgp_local_as_number].to_i
|
||||||
|
|
||||||
# Sync BGP peers
|
# Sync BGP peers
|
||||||
bgp_neighbors = call_get_bgp_peers(provider_router_id)
|
bgp_neighbors = call_get_bgp_peers(provider_router_id)
|
||||||
@@ -41,8 +43,8 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
|||||||
"remote_asn" => bgp_neighbor["asNumber"] }
|
"remote_asn" => bgp_neighbor["asNumber"] }
|
||||||
m << n
|
m << n
|
||||||
end
|
end
|
||||||
tbd_peers = m - bgp_neighbors_resource
|
tbd_peers = m - entered_neighbors_parsed
|
||||||
tba_peers = bgp_neighbors_resource - m
|
tba_peers = entered_neighbors_parsed - m
|
||||||
|
|
||||||
tba_peers.each { |a| call_add_bgp_peer(provider_router_id, a['ip_address'], a['remote_asn']) }
|
tba_peers.each { |a| call_add_bgp_peer(provider_router_id, a['ip_address'], a['remote_asn']) }
|
||||||
tbd_peers.each do |d|
|
tbd_peers.each do |d|
|
||||||
@@ -113,7 +115,7 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
|||||||
# De-advertise floating IP networks
|
# De-advertise floating IP networks
|
||||||
bgp_networks = call_get_bgp_networks(provider_router_id)
|
bgp_networks = call_get_bgp_networks(provider_router_id)
|
||||||
bgp_networks.each do |bgp_network|
|
bgp_networks.each do |bgp_network|
|
||||||
call_delete_bgp_network(bgp_network)
|
call_delete_bgp_network(bgp_network["id"])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -133,13 +135,15 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
|||||||
|
|
||||||
define_connection(resource[:midonet_api_url])
|
define_connection(resource[:midonet_api_url])
|
||||||
|
|
||||||
|
entered_neighbors_parsed = bgp_neighbors_resource.collect { |x| {'ip_address' => x['ip_address'], 'remote_asn' => x['remote_asn'].to_i} }
|
||||||
|
|
||||||
# Get the edge router uuid
|
# Get the edge router uuid
|
||||||
provider_router = call_get_provider_router()[0]
|
provider_router = call_get_provider_router()[0]
|
||||||
provider_router_id = provider_router['id']
|
provider_router_id = provider_router['id']
|
||||||
result_array = Array.new
|
result_array = Array.new
|
||||||
|
|
||||||
# Check if local ASN is the same
|
# Check if local ASN is the same
|
||||||
result_array.push(provider_router["asNumber"] == resource[:bgp_local_as_number])
|
result_array.push(provider_router["asNumber"].to_i == resource[:bgp_local_as_number].to_i)
|
||||||
# Check if BGP neighbors are the same
|
# Check if BGP neighbors are the same
|
||||||
bgp_neighbors = call_get_bgp_peers(provider_router_id)
|
bgp_neighbors = call_get_bgp_peers(provider_router_id)
|
||||||
m = Array.new
|
m = Array.new
|
||||||
@@ -148,7 +152,7 @@ Puppet::Type.type(:midonet_gateway_bgp).provide(:midonet_api_caller) do
|
|||||||
"remote_asn" => bgp_neighbor["asNumber"] }
|
"remote_asn" => bgp_neighbor["asNumber"] }
|
||||||
m << n
|
m << n
|
||||||
end
|
end
|
||||||
result_array.push(m == bgp_neighbors_resource)
|
result_array.push(m == entered_neighbors_parsed)
|
||||||
# Check if advertised networks are the same
|
# Check if advertised networks are the same
|
||||||
bgp_advertised_networks = call_get_bgp_networks(provider_router_id)
|
bgp_advertised_networks = call_get_bgp_networks(provider_router_id)
|
||||||
j = Array.new
|
j = Array.new
|
||||||
|
|||||||
@@ -61,7 +61,9 @@ describe Puppet::Type.type(:midonet_gateway_bgp).provider(:midonet_api_caller) d
|
|||||||
let(:bgp_networks) {
|
let(:bgp_networks) {
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id" => "4a5e4356-3417-4c60-9cf8-7516abcd1234",
|
"id" => "4a5e4356-3417-4c60-9cf8-7516abcd1234",
|
||||||
|
"subnetAddress" => "10.0.0.0",
|
||||||
|
"subnetLength" => "24"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -84,7 +86,7 @@ describe Puppet::Type.type(:midonet_gateway_bgp).provider(:midonet_api_caller) d
|
|||||||
allow(provider).to receive(:call_advertise_bgp_network)
|
allow(provider).to receive(:call_advertise_bgp_network)
|
||||||
allow(provider).to receive(:call_get_bgp_peers).and_return(bgp_peers)
|
allow(provider).to receive(:call_get_bgp_peers).and_return(bgp_peers)
|
||||||
allow(provider).to receive(:call_delete_bgp_peer)
|
allow(provider).to receive(:call_delete_bgp_peer)
|
||||||
allow(provider).to receive(:call_get_bgp_networks).and_return(bgp_networks.map { |e| e['id'] })
|
allow(provider).to receive(:call_get_bgp_networks).and_return(bgp_networks)
|
||||||
allow(provider).to receive(:call_delete_bgp_network)
|
allow(provider).to receive(:call_delete_bgp_network)
|
||||||
allow(provider).to receive(:call_get_bgp_routes).and_return(bgp_routes)
|
allow(provider).to receive(:call_get_bgp_routes).and_return(bgp_routes)
|
||||||
end
|
end
|
||||||
@@ -92,8 +94,8 @@ describe Puppet::Type.type(:midonet_gateway_bgp).provider(:midonet_api_caller) d
|
|||||||
it 'follows happy path (BGP)' do
|
it 'follows happy path (BGP)' do
|
||||||
expect(provider).to receive(:call_get_provider_router)
|
expect(provider).to receive(:call_get_provider_router)
|
||||||
expect(provider).to receive(:call_assign_asn)
|
expect(provider).to receive(:call_assign_asn)
|
||||||
expect(provider).to receive(:call_add_bgp_peer).with(routers[0]['id'], '200.100.98.7', '45237')
|
expect(provider).to receive(:call_add_bgp_peer).with(routers[0]['id'], '200.100.98.7', 45237)
|
||||||
expect(provider).to receive(:call_add_bgp_peer).with(routers[0]['id'], '182.24.63.2', '45235')
|
expect(provider).to receive(:call_add_bgp_peer).with(routers[0]['id'], '182.24.63.2', 45235)
|
||||||
expect(provider).to receive(:call_advertise_bgp_network).with(routers[0]['id'], '200.100.0.0/24')
|
expect(provider).to receive(:call_advertise_bgp_network).with(routers[0]['id'], '200.100.0.0/24')
|
||||||
expect(provider).to receive(:call_advertise_bgp_network).with(routers[0]['id'], '200.0.20.0/24')
|
expect(provider).to receive(:call_advertise_bgp_network).with(routers[0]['id'], '200.0.20.0/24')
|
||||||
expect(provider).to receive(:call_get_bgp_peers).with(routers[0]['id'])
|
expect(provider).to receive(:call_get_bgp_peers).with(routers[0]['id'])
|
||||||
|
|||||||
Reference in New Issue
Block a user