/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/transport/ftp/__init__.py

  • Committer: Robert Collins
  • Date: 2009-05-23 20:57:12 UTC
  • mfrom: (4371 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4441.
  • Revision ID: robertc@robertcollins.net-20090523205712-lcwbfqk6vwavinuv
MergeĀ .dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
"""Implementation of Transport over ftp.
17
17
 
18
18
Written by Daniel Silverstone <dsilvers@digital-scurf.org> with serious
31
31
import os
32
32
import os.path
33
33
import urlparse
 
34
import random
34
35
import socket
35
36
import stat
36
37
import time
37
 
import random
38
38
from warnings import warn
39
39
 
40
40
from bzrlib import (
129
129
 
130
130
        auth = config.AuthenticationConfig()
131
131
        if user is None:
132
 
            user = auth.get_user('ftp', self._host, port=self._port)
133
 
            if user is None:
134
 
                # Default to local user
135
 
                user = getpass.getuser()
136
 
 
 
132
            user = auth.get_user('ftp', self._host, port=self._port,
 
133
                                 default=getpass.getuser())
137
134
        mutter("Constructing FTP instance against %r" %
138
135
               ((self._host, self._port, user, '********',
139
136
                self.is_active),))
439
436
        if mode:
440
437
            try:
441
438
                mutter("FTP site chmod: setting permissions to %s on %s",
442
 
                    str(mode), self._remote_path(relpath))
 
439
                       oct(mode), self._remote_path(relpath))
443
440
                ftp = self._get_FTP()
444
441
                cmd = "SITE CHMOD %s %s" % (oct(mode),
445
442
                                            self._remote_path(relpath))
447
444
            except ftplib.error_perm, e:
448
445
                # Command probably not available on this server
449
446
                warning("FTP Could not set permissions to %s on %s. %s",
450
 
                        str(mode), self._remote_path(relpath), str(e))
 
447
                        oct(mode), self._remote_path(relpath), str(e))
451
448
 
452
449
    # TODO: jam 20060516 I believe ftp allows you to tell an ftp server
453
450
    #       to copy something to another machine. And you may be able
597
594
 
598
595
def get_test_permutations():
599
596
    """Return the permutations to be used in testing."""
600
 
    from bzrlib import tests
601
 
    if tests.FTPServerFeature.available():
602
 
        from bzrlib.tests import ftp_server
603
 
        return [(FtpTransport, ftp_server.FTPServer)]
604
 
    else:
605
 
        # Dummy server to have the test suite report the number of tests
606
 
        # needing that feature. We raise UnavailableFeature from methods before
607
 
        # the test server is being used. Doing so in the setUp method has bad
608
 
        # side-effects (tearDown is never called).
609
 
        class UnavailableFTPServer(object):
610
 
 
611
 
            def setUp(self, vfs_server=None):
612
 
                pass
613
 
 
614
 
            def tearDown(self):
615
 
                pass
616
 
 
617
 
            def get_url(self):
618
 
                raise tests.UnavailableFeature(tests.FTPServerFeature)
619
 
 
620
 
            def get_bogus_url(self):
621
 
                raise tests.UnavailableFeature(tests.FTPServerFeature)
622
 
 
623
 
        return [(FtpTransport, UnavailableFTPServer)]
 
597
    from bzrlib.tests import ftp_server
 
598
    return [(FtpTransport, ftp_server.FTPTestServer)]