Module: OMGF::Regurgitator

Includes:
Regurgitator::FileInfo, Regurgitator::ListKeys
Defined in:
lib/omgf/regurgitator.rb

Instance Method Summary collapse

Instance Method Details

#_log_err(env, m, e) ⇒ Object



19
20
21
22
# File 'lib/omgf/regurgitator.rb', line 19

def _log_err(env, m, e)
  l = env["rack.logger"] or return
  l.error("retrying #{m} against tracker: #{e.message} (#{e.class})")
end

#_uris!(info) ⇒ Object



34
35
36
# File 'lib/omgf/regurgitator.rb', line 34

def _uris!(info)
  info[:uris].values.flatten!
end

#check_domain!(domain) ⇒ Object



14
15
16
17
# File 'lib/omgf/regurgitator.rb', line 14

def check_domain!(domain)
  get_dmid(domain) or
    raise MogileFS::Backend::UnregDomainError, "#{domain} not found"
end

#mg_get_uris(env, domain, key, get_path_opts = {}) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/omgf/regurgitator.rb', line 38

def mg_get_uris(env, domain, key, get_path_opts = {})
  check_domain!(domain)
  info = file_info({}, domain, key) or return super
  _uris!(info)
rescue Sequel::Error => e
  _log_err(env, "mg_get_uris", e)
  super
end

#mg_list_keys(env, domain, prefix, after, limit) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/omgf/regurgitator.rb', line 24

def mg_list_keys(env, domain, prefix, after, limit)
  check_domain!(domain)
  list_keys(domain, prefix: prefix, after: after, limit: limit) do |x|
    yield(x[:dkey], x[:length], x[:devcount])
  end
rescue Sequel::Error => e
  _log_err(env, "mg_list_keys", e)
  super
end

#mg_size_and_uris(env, domain, key, get_path_opts = {}) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/omgf/regurgitator.rb', line 47

def mg_size_and_uris(env, domain, key, get_path_opts = {})
  check_domain!(domain)
  info = file_info({}, domain, key) or return super
  [ info[:length], _uris!(info) ]
rescue Sequel::Error => e
  _log_err(env, "mg_size_and_uris", e)
  super
end

#regurgitator_init(db) ⇒ Object



9
10
11
12
# File 'lib/omgf/regurgitator.rb', line 9

def regurgitator_init(db)
  @db = db
  file_info_init
end