Skip to content
This repository has been archived by the owner on Jun 5, 2020. It is now read-only.

Commit

Permalink
Merge pull request #61 from nanliu/ticket/10369
Browse files Browse the repository at this point in the history
(#10369) Add routing domain support for poolmember

Reviewed by: Nan Liu <nan@puppetlabs.com>
  • Loading branch information
nanliu committed Nov 18, 2011
2 parents 05d6099 + bc8bda1 commit a50ddb6
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions lib/puppet/provider/f5_pool/f5_pool.rb
Expand Up @@ -76,7 +76,21 @@ def member
methods.each do |method|
value = transport[member].send("get_#{method}", resource[:name]).first
value.each do |val|
result["#{val.member.address}:#{val.member.port}"][method] = val.send(method).to_s

# F5 A.B.C.D%ID routing domain requires special handling.
# If we don't detect a routine domain in get_member, we ignore %ID.
# If we detect routine domain in get_member, we provide %ID.
address = val.member.address
noroute = address.split("%").first
port = val.member.port

if result.member?("#{address}:#{port}")
result["#{address}:#{port}"][method] = val.send(method).to_s
elsif result.member?("#{noroute}:#{port}")
result["#{noroute}:#{port}"][method] = val.send(method).to_s
else
raise Puppet::Error, "Puppet::Provider::F5_Pool: LocalLB.PoolMember get_#{method} returned #{address}:#{port} that does not exist in get_member."
end
end
end

Expand All @@ -91,7 +105,7 @@ def member=(value)

members = resource[:member].keys

# Should add first to avoid clearing all members of the pool.
# Should add new members first to avoid removing all members of the pool.
(members - current_members).each do |node|
Puppet.debug "Puppet::Provider::F5_Pool: adding member #{node}"
transport[wsdl].add_member(resource[:name],
Expand Down

0 comments on commit a50ddb6

Please sign in to comment.