Method: LS4::GatewayService#rpc_get_data_impl

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

#rpc_get_data_impl(version, key) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/ls4/service/gateway.rb', line 96

def rpc_get_data_impl(version, key)
  ar = MessagePack::RPC::AsyncResult.new
  CachedMDSBus.get_okey(key, version) {|okey,error|
    if error
      $log.warn("failed to get a key 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, nil)
      }
    else
      ar.result(nil)
    end
  }
  ar
end