class Junos::Ez::StaticRoutes::Provider
Provider
collection methods
Public Instance Methods
build_catalog()
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 154 def build_catalog @catalog = {} @catalog end
build_list()
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 146 def build_list @ndev.rpc.get_configuration{|xml| xml.send(:'routing-options') { xml.static { xml.route } }}.xpath('//route/name').collect do |item| item.text end end
xml_at_top()
click to toggle source
XML top placement
# File lib/junos-ez/system/st_routes.rb, line 31 def xml_at_top @name = "0.0.0.0/0" if @name == :default Nokogiri::XML::Builder.new {|xml| xml.configuration { xml.send('routing-options') { xml.static { xml.route { xml.name @name return xml }} } }} end
xml_change_action( xml )
click to toggle source
XML property writers
# File lib/junos-ez/system/st_routes.rb, line 87 def xml_change_action( xml ) if @should[:action].nil? xml.send( @has[:action], Netconf::JunosConfig::DELETE ) return true end xml.send( @should[:action] ) end
xml_change_active( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 97 def xml_change_active( xml ) xml_set_or_delete_element( xml, 'active', @should[:active] ) end
xml_change_gateway( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 101 def xml_change_gateway( xml ) # delete existing entries ele_nh = :'next-hop' # clear any existing values, and return unless there are any new ones ... xml.send(ele_nh, Netconf::JunosConfig::DELETE) if @has[:gateway] return true unless @should[:gateway] ## adding back the ones we want now ... if @should[:gateway].kind_of? String xml.send( ele_nh, @should[:gateway] ) else @should[:gateway].each{ |gw| xml.send( ele_nh, gw ) } end end
xml_change_install( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 121 def xml_change_install( xml ) xml_set_or_delete_noele( xml, 'install' ) end
xml_change_metric( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 133 def xml_change_metric( xml ) xml_set_or_delete( xml, 'metric', @should[:metric] ) end
xml_change_readvertise( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 129 def xml_change_readvertise( xml ) xml_set_or_delete_noele( xml, 'readvertise' ) end
xml_change_resolve( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 125 def xml_change_resolve( xml ) xml_set_or_delete_noele( xml, 'resolve' ) end
xml_change_retain( xml )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 117 def xml_change_retain( xml ) xml_set_or_delete_noele( xml, 'retain' ) end
xml_get_has_xml( xml )
click to toggle source
XML property readers
# File lib/junos-ez/system/st_routes.rb, line 48 def xml_get_has_xml( xml ) xml.xpath('routing-options/static/route')[0] end
xml_read_parser( as_xml, as_hash )
click to toggle source
# File lib/junos-ez/system/st_routes.rb, line 52 def xml_read_parser( as_xml, as_hash ) set_has_status( as_xml, as_hash ) ## :gateway unless (next_hop = as_xml.xpath('next-hop')).empty? if next_hop.count == 1 as_hash[:gateway] = next_hop.text else as_hash[:gateway] = next_hop.collect{|i| i.text } end end unless (active = as_xml.xpath('active')).empty? as_hash[:active] = true end unless (action = as_xml.xpath( 'reject | discard | receive' )).empty? as_hash[:action] = action[0].name.to_sym end unless (metric = as_xml.xpath('metric')).empty? as_hash[:metric] = metric.text.to_i end xml_read_parse_noele( as_xml, 'retain', as_hash, :retain ) xml_read_parse_noele( as_xml, 'install', as_hash, :install ) xml_read_parse_noele( as_xml, 'resolve', as_hash, :resolve ) xml_read_parse_noele( as_xml, 'readvertise', as_hash, :readvertise ) end