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)

Methods

Public Class methods

[Source]

     # File lib/dsadmin/admind/ftp_updater.rb, line 109
109:   def initialize(aMirror)
110:         requireEqual("ftp", aMirror.kind)
111:         super(aMirror)
112:   end

Protected Instance methods

[Source]

     # 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

[Source]

    # File lib/dsadmin/admind/ftp_updater.rb, line 35
35:   def command_id
36:         "lftp_mirror"
37:   end

[Source]

    # 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

[Source]

    # File lib/dsadmin/admind/ftp_updater.rb, line 94
94:   def environment
95:         return {}
96:   end

[Source]

    # File lib/dsadmin/admind/ftp_updater.rb, line 64
64:   def exclude_param(aPattern)
65:         ['--exclude', aPattern]
66:   end

[Source]

    # 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

[Source]

    # File lib/dsadmin/admind/ftp_updater.rb, line 55
55:   def param_order
56:         [:connection, :standard, :flag, :exclude]
57:   end

[Source]

    # File lib/dsadmin/admind/ftp_updater.rb, line 59
59:   def standard_params
60:         ['--', '--delete'] + super
61:   end

Private Instance methods

[Source]

     # File lib/dsadmin/admind/ftp_updater.rb, line 115
115:   def default_passwd
116:         @@default_passwd ||= cfg.root.modules.mirror.ftp.default_passwd
117:   end

[Validate]