module Netconf::RPC::Standard
Public Instance Methods
commit()
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 37 def commit rpc = Nokogiri::XML( "<rpc><commit/></rpc>" ).root Netconf::RPC.set_exception( rpc, Netconf::CommitError ) @trans.rpc_exec( rpc ) end
delete_config( target )
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 43 def delete_config( target ) rpc = Nokogiri::XML( "<rpc><delete-config><target><#{target}/></target></delete-config></rpc>" ).root @trans.rpc_exec( rpc ) end
edit_config( *args ) { |xml| ... }
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 90 def edit_config( *args ) # :yeield: config_builder toplevel = 'config' # default toplevel config element target = 'candidate' # default source is 'candidate' @@@/JLS hack; need to fix this config = nil options = {} arg = process_args(args) toplevel = options[:toplevel] if options[:toplevel] rpc_str = <<-EO_RPC <rpc> <edit-config> <target><#{target}/></target> <#{toplevel}/> </edit-config> </rpc> EO_RPC rpc = Nokogiri::XML( rpc_str ).root if block_given? Nokogiri::XML::Builder.with(rpc.at( toplevel )){ |xml| yield( xml ) } elsif config rpc.at( toplevel ) << config.dup else raise ArgumentError, "You must specify edit-config data!" end Netconf::RPC.set_exception( rpc, Netconf::EditError ) @trans.rpc_exec( rpc ) end
get_config( *args ) { |xml| ... }
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 63 def get_config( *args ) # :yeield: filter_builder source = 'running' # default source is 'running' filter = nil # no filter by default arg = process_args(args) rpc = Nokogiri::XML("<rpc><get-config><source><#{source}/></source></get-config></rpc>").root if block_given? Nokogiri::XML::Builder.with( rpc.at( 'get-config' )){ |xml| xml.filter( :type => 'subtree' ) { yield( xml ) } } end if filter f_node = Nokogiri::XML::Node.new( 'filter', rpc ) f_node['type'] = 'subtree' f_node << filter.dup # copy filter, don't mess with the original since it may be re-used rpc.at('get-config') << f_node end @trans.rpc_exec( rpc ) end
lock( target )
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 16 def lock( target ) run_valid_or_lock_rpc "<rpc><lock><target><#{target}/></target></lock></rpc>", Netconf::LockError end
process_args(args)
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 48 def process_args(args) while arg = args.shift case arg.class.to_s when /^Nokogiri/ filter = case arg when Nokogiri::XML::Builder then arg.doc.root when Nokogiri::XML::Document then arg.root else arg end when 'Hash' then attrs = arg when 'String' then source = arg end end end
run_valid_or_lock_rpc(rpc_string, error_type)
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 31 def run_valid_or_lock_rpc(rpc_string, error_type) rpc = Nokogiri::XML(rpc_string).root Netconf::RPC.set_exception( rpc, error_type ) @trans.rpc_exec( rpc ) end
unlock( target )
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 21 def unlock( target ) rpc = Nokogiri::XML( "<rpc><unlock><target><#{target}/></target></unlock></rpc>" ).root @trans.rpc_exec( rpc ) end
validate( source )
click to toggle source
# File lib/net/netconf/rpc_std.rb, line 26 def validate( source ) run_valid_or_lock_rpc "<rpc><validate><source><#{source}/></source></validate></rpc>", Netconf::ValidateError end