| Class | Dsadmin::Admind::FtpUpdater |
| In: |
lib/dsadmin/admind/ftp_updater.rb
|
| Parent: | MirrorUpdater |
MirrorUpdater variant for updating mirrors via ftp.
Uses the lftp program (lftp.yar.ru/) via a wrapper script (script/lftp-mirror.rb)
# File lib/dsadmin/admind/ftp_updater.rb, line 109
109: def initialize(aMirror)
110: requireEqual("ftp", aMirror.kind)
111: super(aMirror)
112: end
# File lib/dsadmin/admind/ftp_updater.rb, line 99
99: def build_statistics(status, stdout, stderr)
100: self.transfer_size = 0
101: self.error_msg = stderr[/^.*?\bfailed:.*$/] unless(status.success?)
102: end
# File lib/dsadmin/admind/ftp_updater.rb, line 69
69: def connection_params
70: res = Array.new
71:
72: res << "--user"
73: res << (mirror.remote_user or "anonymous")
74: res << "--pass"
75: res << (mirror.remote_passwd or default_passwd)
76:
77: res << "--host"
78: res << mirror.remote_host
79: res << "--port"
80: res << (mirror.remote_port or "21")
81:
82: res << "--rdir"
83: rdir = mirror.remote_dir.sub(/\A\/+/, '/')
84: rdir = rdir.sub(/\/+\z/, '')
85: res << "#{rdir}/"
86:
87: res << "--ldir"
88: res << File.join(mirror_path, mirror.local_dir)
89:
90: return res
91: end
# File lib/dsadmin/admind/ftp_updater.rb, line 64
64: def exclude_param(aPattern)
65: ['--exclude', aPattern]
66: end
# File lib/dsadmin/admind/ftp_updater.rb, line 40
40: def param_name(flag)
41: case(flag)
42: when Mirror::F_DELETE_EXCLUDED then nil
43: when Mirror::F_COMPRESS then nil
44: when Mirror::F_HARD_LINKS then nil
45: when Mirror::F_PARTIAL then nil
46: when Mirror::F_PRESERVE_PERMS then nil
47: when Mirror::F_DEREFERENCE then "--dereference"
48: when Mirror::F_DEBUG then "-vvv"
49: else
50: log.bug("Unknown mirror update flag: #{flag} for '#{mirror.name}'")
51: ""
52: end
53: end
# File lib/dsadmin/admind/ftp_updater.rb, line 55
55: def param_order
56: [:connection, :standard, :flag, :exclude]
57: end
# File lib/dsadmin/admind/ftp_updater.rb, line 59
59: def standard_params
60: ['--', '--delete'] + super
61: end