Method: LS4::GatewayService#rpc_get_impl

Defined in:
lib/ls4/service/gateway.rb

#rpc_get_impl(version, key) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/ls4/service/gateway.rb', line 73

def rpc_get_impl(version, key)
  ar = MessagePack::RPC::AsyncResult.new
  CachedMDSBus.get_okey_attrs(key, version) {|(okey,attrs),error|
    if error
      $log.warn("failed to get a key or attributes from MDS: key=#{key.inspect}: #{error}")
      $log.debug_backtrace error.backtrace if error.is_a?(Exception)
      ar.error(error.to_s)
    elsif okey
      DataClientBus.get(okey, true) {|data,error|
        if error
          $log.warn(error)
          $log.debug_backtrace error.backtrace if error.is_a?(Exception)
        end
        #data ||= ""
        ar.result([data,attrs])
      }
    else
      ar.result([nil,nil])
    end
  }
  ar
end