class SNMP4EM::SnmpSetRequest
The result of calling {SNMPCommonRequests#set}.
Attributes
snmp_id[RW]
Public Class Methods
new(sender, oids, args = {})
click to toggle source
Calls superclass method
# File lib/snmp4em/requests/snmp_set_request.rb 18 def initialize(sender, oids, args = {}) # @private 19 @oids = [*oids].collect { |oid_str, value| { :requested_oid => SNMP::ObjectId.new(oid_str), :requested_string => oid_str, :value => format_outgoing_value(value), :state => :pending, :response => nil }} 20 super 21 end
Public Instance Methods
callback(&block)
click to toggle source
Used to register a callback that is triggered when the query result is ready. The resulting object is passed as a parameter to the block.
Calls superclass method
# File lib/snmp4em/requests/snmp_set_request.rb 9 def callback &block 10 super 11 end
errback(&block)
click to toggle source
Used to register a callback that is triggered when query fails to complete successfully.
Calls superclass method
# File lib/snmp4em/requests/snmp_set_request.rb 14 def errback &block 15 super 16 end
handle_response(response)
click to toggle source
Calls superclass method
# File lib/snmp4em/requests/snmp_set_request.rb 23 def handle_response(response) # @private 24 super 25 26 if (response.error_status == :noError) 27 pending_oids.zip(response.varbind_list).each do |oid, response_vb| 28 oid[:response] = true 29 oid[:state] = :complete 30 end 31 32 else 33 error_oid = pending_oids[response.error_index - 1] 34 error_oid[:state] = :error 35 error_oid[:error] = SNMP::ResponseError.new(response.error_status) 36 end 37 38 if pending_oids.empty? 39 result = {} 40 41 @oids.each do |oid| 42 requested_oid = oid[:requested_string] 43 result[requested_oid] = oid[:error] || oid[:response] 44 end 45 46 succeed result 47 return 48 end 49 50 send_msg 51 end
Private Instance Methods
send_msg()
click to toggle source
Calls superclass method
# File lib/snmp4em/requests/snmp_set_request.rb 55 def send_msg 56 Manager.track_request(self) 57 58 pending_varbinds = pending_oids.collect{|oid| SNMP::VarBind.new(oid[:requested_oid], oid[:value])} 59 60 vb_list = SNMP::VarBindList.new(pending_varbinds) 61 request = SNMP::SetRequest.new(@snmp_id, vb_list) 62 message = SNMP::Message.new(@sender.version, @sender.community_rw, request) 63 64 super(message) 65 end