class Toxiproxy::ToxicCollection
Attributes
proxies[R]
toxics[RW]
Public Class Methods
new(proxies)
click to toggle source
# File lib/toxiproxy/toxic_collection.rb, line 10 def initialize(proxies) @proxies = proxies @toxics = [] end
Public Instance Methods
apply() { || ... }
click to toggle source
# File lib/toxiproxy/toxic_collection.rb, line 15 def apply(&block) names = toxics.group_by { |t| [t.name, t.proxy.name] } dups = names.values.select { |toxics| toxics.length > 1 } if !dups.empty? raise ArgumentError, "There are two toxics with the name #{dups.first[0]} for proxy #{dups.first[1]}, please override the default name (<type>_<direction>)" end begin @toxics.each(&:save) yield ensure @toxics.each(&:destroy) end end
downstream(type, attrs = {})
click to toggle source
# File lib/toxiproxy/toxic_collection.rb, line 44 def downstream(type, attrs = {}) proxies.each do |proxy| toxics << Toxic.new( name: attrs.delete('name') || attrs.delete(:name), type: type, proxy: proxy, stream: :downstream, toxicity: attrs.delete('toxicitiy') || attrs.delete(:toxicity), attributes: attrs ) end self end
upstream(type, attrs = {})
click to toggle source
# File lib/toxiproxy/toxic_collection.rb, line 30 def upstream(type, attrs = {}) proxies.each do |proxy| toxics << Toxic.new( name: attrs.delete('name') || attrs.delete(:name), type: type, proxy: proxy, stream: :upstream, toxicity: attrs.delete('toxicitiy') || attrs.delete(:toxicity), attributes: attrs ) end self end